理系学生日記

おまえはいつまで学生気分なのか

WEB+DB PRESS Vol.72 読んだ

今回の WEB+DB PRESS、コードレビュー特集だった。
ISBN:978-4774153957:detail

コードレビューのメリットとして、

  • コードの質の向上
  • コードの共有
  • 教育的意義

みたいなこと書いてあった。
人間いろんな考えの人がいるから、コードレビューがないってことが分かると、マジに適当なコード書いて動けば良いやみたいなかんじになるときがある。こういうの防ぐためにも、コードレビューしたほうがいい。そもそもヤバいコードしか書けない人っていうのも一定数いるので、それも防ぎましょうみたいなかんじだった。
あと、コードの共有っていうので、トラックナンバーっていう概念が紹介されてた。トラックナンバー、

そのプロジェクトで何人がトラックにはねられて入院してしまうと、プロジェクトが立ちゆかなくなるか、という人数のこと

だそうで、トラックナンバーが 1 だったら、たった一人がプロジェクトを離脱してしまうと「プロジェクト(おわり)」 みたいになる。これ、あってはいけないんだけど現場では良くある話で、「あっここの動きおかしい」「実装者だれー」みたいなことになりがち。レビュアがその部分の実装おさえておくと、実装者いなくてもだいたいここのロジックがおかしいっぽいからココ直せばいいっていうのがだいたいわかる。
そういうのスゴい気をつけているんだけど、請負案件として外注すると、そういうのしにくくなるから大変だとおもう。詳細設計ちゃんとしてから外注しようね、みたいな話もあるけど、そもそも詳細設計で全部動作を固めるの現実的に無理だとおもうし、価格上昇するから、こういうのウォーターフォールのジレンマだとおもう。
あと、コードの共有って、レビューの目的というよりは副次的なメリットだと思う。実装者間・プロジェクトメンバ間で、ロジックの共有をちゃんとしましょう、横連携しましょうっていうの、別出しで取りくんだ方が良いとおもう。