コードの短さよりも可読性を重視する

メソッドを入れ子にして複数の処理を一気に終わらせたり、ラムダ式を多用してコードの行数を減らすことに躍起になりすぎないこと。

見た目上のコードの短さを自分のスキルと勘違いしてはいけない。自分を賢く見せようとして小難しいコードを書くより、誰が見ても中身を容易に想像できるコードの方が望ましい。

コードは、書く時間よりも読まれる時間の方が長いものだ。だから「短く書くこと」より「読みやすく保つこと」に重きをおかないと、保守性に欠けて負債になる。


コードを短くする手法としては、変数に代入するのを避け、メソッドチェーンを使って一気に複数の処理を進めることが多いだろう。三項演算子を多用したりすることも考えられる。

そうしたコードは、単純に「変数名」や「メソッド名」といった命名の機会が少なくなり、「処理がされているのは分かるけど、どういう意味をもって行われている処理なのか」は伝わりづらいのだ。

また、そうした一つひとつの処理が分離していないコードの周辺でバグが発生すると、デバッグが難しくなる。もしかしたらメソッドチェーンの間の処理がマズいのかもしれないのに、それを追跡調査しづらくなる。

コードを1行にまとめて書けるとしても、一つひとつの処理ごとにその結果を適切に命名した変数に落とし込んでいった方が、後でそのコードを誰かが読んだ時に「何をしているのか」が読み取りやすくなる。

1行 for 文やメソッドチェーンによるショートコーディングが必ず悪というワケではないが、「この処理によって何を得るつもりか」がコードから読み取りやすい粒度に分割する方が良いだろう。