コードレビューで大事なのは、読めないコードを「読めない!」と言える勇気だと思う

一見読めないコードでも、「読めない」と言うと何だか負けた気になって、頑張って読んでコメントしようと思ったりしますよね。しませんかね。でも、コードレビューで大事なのは読めないコードを「読めない!」と言える勇気だと思います。

当たり前だけど、読めないコードが負債化する

読める、読めないというのには、まずスキル的な観点もあると思います。スキルがないと、そもそも読めない。技術不足から「このコードを読めない俺のスキルをまず疑う」と考えて「読めない」と言えないケースがあります。

その裏返しに、スキルがあるので読めてしまうというケースがあります。「ああ、そういう風に書くのね」「まぁ、もっと良い書き方がある気がするけど・・・」しかしスキルがある人が読んだ場合、スキルがある人は良い書き方も知っているので、「ちょっと読みにくくない?」とコメントすることは、ままあります。つまりスキルがある人は「読めない」と言えるのです。

つまり「『読めない』と言えない」のは、読んだコードが難しくて読めなかった人になります。

コードが難しい、読みにくいケースとして、

  • そもそも冗長に書きすぎていて本質が見えにくい
  • 再帰など華麗に使いすぎていて一見処理が分かりにくい
  • メタプログラミングすぎて結果を想像しにくい

といった、書き方の巧拙によるケースが挙げられますが、総じて大事なのは読み手が「読みにくい」と思ったインプレッションであり、読みにくいと思われたコードは未来永劫読みにくいコードで在り続ける可能性があります。最終的には触らぬ神に祟りなしという扱いになる。

そういう可能性が残される以上、たとえスキルがなくて読みにくいと思ったにせよ、「読みにくい」という意思表示をする勇気を、コードに関わるメンバーが持つのは大事なことだと思います。単にスキルがなくて読みにくいと感じた場合は、成長の機会になります。本当に読みにくいコードだった場合は、コードがもっと良くなる機会になります。いずれにしても、悪いことはないんですよね。