コーディングの「汎用性の高さ」は誰のためのものなのか?

酒井 琢郎のプロフィール画像
エンジニア 酒井 琢郎

1,624 view

他人のコードはあくまで他人のもの

入社時からHTMLとCSSをコーディングする際は「汎用性高く作るべき」と教わり、認識と命名ルールの統一・再利用しやすい構造・細分化など汎用性を意識してコーディングしてきた。こうすることで別のエンジニアが作ったパーツも自分のもののように扱え、コーディングが楽になると考えていた。しかし、意識しようが他人が作ったパーツはあくまで他人のもので、テコ入れなしでは怖くて使い回そうとは思えない。

「怖い」というのは、ブレイクポイントごとにどういう挙動をするのかわからないから怖くて使えない、という意味だ。これは他人が作ったからであり、理解するためにはCSSを読まなくてはならず、それでは1から作るのと変わらない。結局は誰もが読みやすい汎用性の高いコードを書いても、他人が作ったものをそのまま使い回してページを構築する気にはなれない。強いて言うのであれば、恩恵を受けるのは作者以外がプロジェクトを引き継いだときに理解しやすい、という点くらいだ。

例えばJavaScriptであれば、頻繁に使う関数を毎度作るのも時間の無駄なので、特製のライブラリを構築する取り組みを行っている。プロジェクトで作った関数を各々ライブラリに登録していくという無理のないスタイルで取り組んでいるが、実際に取り込んで使える実用的なものとなっている。ここに登録されるようなJavaScriptの関数は数値型やストリング型など決まった値を返す約束がされている。だから、誰が作ったものだろうと使い回すことができる。一方でHTMLとCSSのパーツは何か値を返すわけでもないし、コードを見ないと全容を把握しきれないから使い回しづらいのではないだろうか。

誰かのメリットになることが大事

ここまで来るとまるで「汎用性を意識したコーディングは無意味だ」と考えているように捉えられるかもしれないが、そうではない。私が思うのは将来のことばかり考えて「汎用性の高さ」に工数をかけ過ぎるのは違うのではないか、ということだ。例えばHTMLの組み方を突き詰めても見た目には表れないしクライアントのメリットになるとは思い難い。それよりは程々なところで手を止めてクオリティチェックに時間を割いた方がクライアントのためと言える。ただ、適度な汎用性はプロジェクトを跨いだときにパーツを使い回すためにも必要だし、これはコーディングスピードの向上にもつながる。どこまで考えるか、さじ加減は難しいが今後も誰かのメリットになるコーディングを心がけたい。

関連する日報

    新入社員が気づいた、プロジェクト改善のヒント

    448 view

    奥原美穂子のプロフィール画像
    奥原美穂子 コンサルタント
    開発効率化:半分の工数で作る工夫

    1,611 view

    酒井 琢郎のプロフィール画像
    酒井 琢郎 エンジニア
    納得感のあるデザイン提案のポイント

    3,867 view

    岡本 早樹のプロフィール画像
    岡本 早樹 デザイナー
    「わかりやすい」ミーティングの3原則

    8,147 view

    本山 太志のプロフィール画像
    本山 太志 コンサルタント
    フリー素材のアイコン・イラストを流用する時のコツ

    3,343 view

    岡本 早樹のプロフィール画像
    岡本 早樹 デザイナー
上に戻る