それでも自分で書いて自分だけが運用するなら、リャマみたいな気違いじみた書き方しててもいいと思うし、それが BEM の本意なのかもしれないけど、フレームワークとして汎用性を持たせた作りを考えたら、冗長なスタイル構造というのは出来るだけ避けたいと思うわけ。
2013-10-02 17:11:08ルールに厳密に従ってみて実感できたのは、BEMは確かに冗長だけどそれを冗長としか感じられないのはその程度のメリットしか得られていないということ。逆にいうと冗長さを超えるメリットをBEMという開発手法から得られないんであれば採用すんなということですわ。
2013-10-02 17:13:06@roatnek だよねえ。HTML が冗長か、CSS が冗長かをとるなら、断腸の思いで HTML の冗長さをとるかなあ。そっちの方がフレームワーク「っぽさ」を感じる。CSS や Sass がごちゃごちゃしてるのは、よろしくないと思うの。
2013-10-02 17:13:34あんなもん機械向けやろ。ちっともヒューマンフレンドリーじゃない。人が手で書いて目で見てっていう運用が主なんであれば苦痛でしかないに決まってる。
2013-10-02 17:14:11@_346_ div に付けても hn に付けても同じスタイルになる .hdg-foo みたいな基本見出しスタイルを定義しておいて、hn しかなければそれにつけるし、課題のケースなら div に付ける。
2013-10-02 17:14:34@kotarok 今ちょうど話してた人も同じ回答でした。そのぶん CSS が冗長になってなんかそれってバカっぽくない? って話をしていたところです。
2013-10-02 17:15:54@_346_ フレームワークという汎用性に重きをおいたシステムであれば、より多くの人がさわりやすいHTMLにすべてを盛り込むほうがいいからね。でも普段の案件ではHTMLでいろいろやらせずとも、特に頭を悩ませずとも実装できるほうがいいと思う。バシッと1つのclass名で指定とか。
2013-10-02 17:16:12誰が何を見るか(触るか)を念頭に置いて、CSSに秘匿するのかHTMLに盛り込むのか決めてる。拡張性汎用性と呼べば耳触りがいいけど、自分は基本「選択肢は少ない方がいい」と考えているのでそういう運用になるようコードは大体CSSに秘匿する。
2013-10-02 17:18:34@kotarok div.foo > hn と hn.foo が同じスタイルを持つようにスタイルを書くことが冗長だと感じるんですよね。Sass なら extend で解決する話ですけど。
2013-10-02 17:19:29でもBEMの(自ずとそうなる)長ったらしいclass名はとても好きよ。ひと目でそれが何か理解できるからJavaScriptから参照するときすごく楽。名は体を表わしてる。JS用のclass定義も不要やし。すべてのclassをみんなで使う。みんなでそれを呼び合う。そこはすばらしい。
2013-10-02 17:21:43@_346_ ああー、見出しっぽい要素の中にリンクっぽい要素が入ってるんじゃなくて隣接して組み合わさってるようなケースの話ですか。なるほど。
2013-10-02 17:22:36@kotarok @_346_ だとしたら僕ならそれは見出しモジュールのバリエーションというよりはレイアウトモジュールの一種にしてしまいそうですね。
2013-10-02 17:24:52とりあえずこの牢から出たらモジュールカテゴリ的接頭辞に基づくclassネーミングも捨てることにする。blockはblockでしかない。どのblockも対等。そういう認識でいるほうが名づけ上のメリットが大きいことをBEMで学んだので。
2013-10-02 17:31:06