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 によるコードレビューが、かなり面白い見方だと思っています。読んでみていただけると良いかと思います。 紹介したかったのに思い出せないコードレビュー資料を見つけたら、このブログ記事を更新します。

ザキ・アクマド

エンジニア、開発担当

2014年10月に入社。セキュリティについては、長い道のりを歩んできたので、以前は作ることよりも壊すことが得意のザキでしたが、現在は、セキュアなアプリケーションを作る理論を実践中。