読者です 読者をやめる 読者になる 読者になる

あらみそかもすぞ

まじめにふまじめ

コードレビュー大会を経験して考えたことと感想文

先日,ソニックガーデンさんのプログラマーさん方とコードレビュー大会をさせていただきました.コードレビュー大会とはその名の通り,お互いのソースコードを交換して,レビューしあうというものです.このコードレビュー大会からとてもいい刺激をうけたので,それを残しておきます.

前提

私は基本的に,学生3,4人+αでチーム開発をしています.ちなみにほとんどエンジニアです.

普段のコードレビュー

普段のコードレビューは,たまった差分を各自がチェックして,気持ち悪い部分を見つけたら,皆で協議して……という感じで行なっています.細かい意見の擦り合わせ(空白をあける,あけないとか)もかねていたりします.

おおよそ毎日顔を合わせて開発を行なっています.それを生かして,開発中にうまく書けない部分が見つかったら,適宜協議・相談を行なっていたりもします.

最近の悩み

ソースコードに「もっとうまく書けそう/汚い気がする」と思う箇所があっても,具体的にどう直せば綺麗になるのか,何が原因なのかがわからないことが最近の悩みです.

そんな私がコードレビュー大会で学んだこと

思考停止はよくない

そりゃそーだ,と自分も思っていたのですが,今回はとても痛感しました.なんで痛感したかというと,指摘されたところが,どれも自分でも気付けたはずなのになんで気付かなかったんだ?ということばかり,なんてことがあったからです.人間って意外と思考停止しているんですね.例えば,

  • Rubyのmapとかを再発明していること
  • DRYを妥協すること
  • クラスの構造が変なのに見て見ぬふりをしていること
  • メソッドの名前から仕事内容が察せないのに,そのままにしておくこと

などなど.こういったことが積もり重なって,汚い雰囲気をかもしだしていたのでしょうか.思考停止って恐ろしい…….

思考停止しないためにどうするべきなのか

だらだらコードレビューの排除

普段のコードレビューを振り返ってみると,見慣れたコードほど妥協や見て見ぬふり(=思考停止)をしてしまう気がします.なので,差分レベルでのコードレビューを短時間集中なレビューにすることで,見慣れたコードになる前に叩いて一定の水準に揃えてしまうのがいいのかな,とか.

それでも,自分たちの技術レベル的に気付けないものはどうしようもない感じがします.

第3者を交えたコードレビュー

そこはやっぱり第3者に頼るしかないような気がします.自分にはない,新しい視点を教えてもらえることは凄く勉強になります.巨人の肩に乗っかった気持ちです.

といっても,実際には仕事の都合などで身内以外の人に見せづらいことが多い気がします.

オープンソースなプロジェクトで武者修行

だったら,しがらみのないソースコードで武者修行をして,目を鍛えて,実開発のソースコードを見直すことで,自分が疑似第3者になれるんじゃないかな,とか思いました. 最近は人のコードを読んだり,オープンソースな開発を行なえてなかったので,これを機に力を入れていきたいところです!

感想文

コードレビューを受ける前はお腹が痛くてしょうがなかったんですけど,いざ受けてみると色んなもやもやがとれてとてもすっきりしました.巨人の肩に乗るってこういうことなのかと実感しました.具体的なアドバイスから,思想の話まで,色んなことを学ぶことができました.こんな熱い時間を過ごすことができて幸せです.これを今後に生かさないわけにはいきません.

お互いにコードを交換したので,もちろんソニックガーデンさんのコードも読まさせていただしたのですが……とても綺麗で綺麗で眼福でした!すげえと皆で連呼.綺麗なものを綺麗だと素直にとれる感性は大切なんだよ,と教えてもらったので,綺麗なコードにどんどんふれて目を磨いていかないといけません.

最後になりましたが,ソニックガーデンのみなさま,濃厚な3時間のおかげでたくさんの教えを頂きました!頑張らなきゃいけないことが山積みですが,できることから頑張っていこうと思います.素敵な経験を本当にありがとうございました!