増子良太のブログです

増子良太が書いているブログです。テーマをしぼらず、思いついたものをただひたすら書いていきます。

ジーズアカデミーのソースコードレビューを担当して意識したこと

      2015/12/16

この記事は ジーズアカデミー Advent Calendar 2015 の 11日目の記事です。

ジーズアカデミーにて受講生の JavaScript と PHP の課題のソースコードレビューをするという貴重な経験をできたので、ソースコードレビューを担当する際に意識していることを書きたいと思います。

ジーズアカデミーとは?

そもそもジーズアカデミーってなんなの?という方は、ジーズアカデミーのホームページ で見てみてください。

「セカイを変えるGEEKになろう。」

キャッチコピーがかっこいい!

ようするにデジタルハイウッドが運営するエンジニアの養成学校ですね。

ソースコードレビュー担当になった経緯

ジーズアカデミーの主席講師で立ち上げ当初から関わっている 山崎さん から、

ソースコードレビューをしてくれる人を探しているという相談を受け、面白そうなのでお引き受けしました。

山崎さんとは前の会社の同僚で、山崎さんも私もそれぞれ別の道を歩いているのに、

こうして思い出して頼ってくれるのは非常に嬉しいです。

ソースコードレビュー担当は何をするのか?

ジーズアカデミーではほぼ毎回授業の後に課題が出されます。

ただ、受講生のみなさんはHTMLも書いたことがない人だったり、PHPは初めてという人も多く、

このソースコードで合っているのか?動いているけどもっと良い書き方はないのか?

そんな部分を解消するのがソースコードレビュー担当のお仕事だと思っています(間違っていたらどうしよう・・・)

受講生の人に期日までに課題のソースコードを所定の形でおいてもらい、そのソースコードをレビューします。

レビューが終わったらそのソースについての指摘事項や褒め言葉などをコメントします。

わからないことなど質問があれば回答したりもします。

ソースコードレビューをするときに意識していること

やっと本題!

ソースコードレビューする時に意識していることは下記3点だけです。

  • なるべく優しい / 丁寧な言葉で書く
  • レビューの粒度は一定以上にしない
  • 質問があれば調べた上で答える

なるべく優しい / 丁寧な言葉で書く

ソースコードレビューってそもそもチェックしてもらうもので、

一度レビューする側になればレビューされることのありがたさだったり大変さだったりをわかるけど、

そうじゃない限りはレビューされて上から物を言われる感じになります。

さらに普段授業に出ている先生ならまだしも、私は授業には出ていないため、

別に有名でもないおっさんが上から目線でくだらない指摘をしまくってくるというふうに受け取られてしまいそうで。。。

なので、なるべく優しい言葉、丁寧に説明するというのを意識しています。

なぜインデントを合わせる必要があるのか? なぜ変数が$a とかじゃダメなのか?

この処理はこうしたほうがスマートに書けますよ、っていうのもちゃんと説明もつけます。

じゃないと、理由がわからないのに指摘だけされるのはものすごく腹が立ちますよね。

レビューの粒度は一定以上にしない

正直行って、ソースコードレビューに正解なんてありません。

プロジェクトや現場のルールなんかで、ソースコードの書き方は変わります。

インデントの数だったり、カッコをif の後にそのまま続けるのか、改行してから入れるのかなどなどキリがありません。

また、1つの関数の長さだったり、変数の長さや関数の名称ルールなど、チェック項目を作れば無限に作れます。

でも、ジーズアカデミーに来ている人たちはそんなことを覚えに来たわけではなく、

早く自分のアイディアを自分の腕で実現したいという人が多いのだと思います(推測だけど)

だから、細かいところばかり指摘されるとうわっ!めんどくさい!ってなってしまうのは非常にもったいない。

プログラミングってもっと楽しいものだし、楽しみながら覚えて欲しい!

今だとCIツールとかにソースコード投げると自動でソースコードチェックしてくれて、細かいところまでビッシリ返してくれるものもあるけど、

あれやられたら、、、仕事じゃない限りはテンション下がりません?

インデントは揃っているか? $a、$bなど意味がわからない変数/関数名が使われていないか? エラーになりそうな箇所はないか? etc…

その程度にして、なるべくモチベーション高く、プログラミングを覚えてもらいたいと思っています。

質問があれば調べた上で答える

上記の2つは基本的には受け身で、自由にプログラミングして覚えてもらうためにやってます。

でも、受講生の中にはもっとこの辺が知りたい! この書き方もっとスマートにしたい! などなど

もっと!もっと!という現状のレベルに満足していない人もいます。

そういう人はソースコードにドキュメント ( テキストやワード ) がついていて、

この辺が実装できていないとか、どうしたらここの実装がスムーズにできるのか?とか、質問が飛んできます。

ソースコードレビュー担当なので、そういった質問は授業中に先生に聞いて!って回答もありかと思いますが、

せっかく質問してくれているので、そういう人には調べて私からも回答するようにしてます。

こうしたほうがロジック的に行数も少ないし、簡素化できるから修正変更に強いよ!とか

他の人のレビューでは教えないところまで教えたりします。

本当はそれぞれの人のレベルにあったレビューができればよいのでしょうが、

何十人もいる中で全員に合わせるというのは難しいですが、

こうやって手を上げてくれるとこちらもやりやすくて、ついつい時間かけちゃいます。

ソースコードレビューをしてみて感じたこと

人のソース読むのって楽しい!!!

同じ課題なのに、人によって全然書き方がちがったり、

想像もしない付加価値 ( 機能 ) つけてきたり、読んでいて楽しい場面が多いです。

特に課題はクリアしつつ、機能を追加してくれる人たちは、これはどんな機能なのか?

え!?この機能必要!?ってのもたまにありますが、そーきたかー!といつも楽しんでます。

もちろんソースの書き方も、こんな実装できたんだ。。。ってこちらが学ばせてもらうことも非常に多く、

自分の経験値も上げれるし、人の役にも立てるので、やってみてすごく良かったです。

「いつもレビューありがとうございます」とドキュメントで言われた時にはテンション上がるし、

自分が指摘した箇所が実は間違っていて、それを受講生に指摘しなおされたりするときには反省もするし、

黙々とソース書いてるだけじゃできない体験ができました。

山崎さんありがとうございます!

これからも少しでも受講生の手助けになれるように必死でレビューします!

 

 - その他