クラス名の命名規定

pixivのCSSで使われるクラス名ルールという命名規則の記事を読んでいた。初見では大規模だとBEMの衝突が絶対に起きない書き方の方が優れているように思えた。しかし衝突するであろうことに警報を出すという形にゆるくすることで、開発者たちに自由を与えるというような目的でこうなっているようだ。ちょっと興味深い。

規模が大きくなると制約を厳しくして安定性を重視する一辺倒だったが、こういう自由さをうまく提供しようという考え方をすることはあまりなかった。具体的にも、変更されることがあまりない、またはわかっている人だけが行うひとまとまりのルートにのみ特殊な命名(_で始める)というのはバランスが良さそうに思える。

コードだけを見てみるとうまくいっているというのは少し驚く。_で始まるところはあまり触らない人と_で始まるところを触る人、と人的リソースが能力や職掌に応じてうまく振り分けられているのかなと想像してる。プリプロセッサーありきという印象もあるが、それはもう問題にはならなそうだ。

CSSにもモジュール化、そしてその先のコンポーネント化の波は来ている。最右翼はBEMのような制約の厳しい命名規則であることは間違いなさそうだが、過渡期の今こそチームにあった命名規則を考えるべきなのかもしれない。