LGTM! (=Looks Good To Me!):ワタシ的にはOK!
日々の業務の中、私はコードを書く以外にコードレビューも行っています。 コードレビューというのは、ワタシ的にはOK! (LGTM!) というようなコメントを残すだけではないんです・・・ まだ、私もコードレビューの達人ではなく、そうですね、まだまだ学ぶことがありそうです。
コードレビューについてとっても良い資料を読んだことがあったのですが、 どんなキーワードで検索したのだったか思い出せません。
私がコードレビューで一番にすることは、PEP8 compliance なんです。 あまり意味がないことはわかっています。PEP8 はコードのロジックをチェックするわけではないですからね。 PEP8 がチェックするのは、コードシンタックスだけです。インポートされているのに使われていないモジュールはないか、 変数は、空白が多すぎないか、などですね。 しかし、どういうわけか私は、PEP8に従っていることが重要だと思っています。 というのも、コードというのは、書いた人だけはでなく他の人も読むものだからです。 他の人のコードを読むときに、標準ルールに従わずに書かれていたら、と想像してみてください。
書いたコードが PEP8に準拠していると自動で確認するツールはたくさんあります。 私はたいていvimを使っているので、vim-flake8プラグインを使います。 私が enabling flake 8 で書いたこのステップは、ここでチェックしてください。
これが済むと、私はPRのコアロジックを見直しをします。 Djangoの場合、私は views.pyを確認します。 新しい機能である場合は、それが期待通りに動いているかどうか手動のテストを行います。 手動テストがOKであれば、私はこのテストを行うためのコードがあるかを確かめます。
すべて問題なければ、 代わりのユースケース へと進みます。 ここで言う 代わりのユースケース というのは、主なユースケースではありませんが、例えばこの新機能の実行権のない他のユーザーだったらどうか、 ということです。 私はセキュリティ関連の分野から来たので、この概念もそう難しくはありません。 簡単な例としては、ログインユーザーBはユーザーAのパスワードをリセットすることはできないはず、といった感じです。
私はまだ、コードレビューの上達のため、学ぶ必要があります。これまでのところ Ana Balica によるコードレビューが、かなり面白い見方だと思っています。読んでみていただけると良いかと思います。 紹介したかったのに思い出せないコードレビュー資料を見つけたら、このブログ記事を更新します。