見出し画像

コードレビューのときに気をつけている3つのこと

ども、カニカマです。カナダでアプリとかを作ってます。

会社でプログラミングをしていると、コードレビューをし合うという文化があります。
プログラマーにとってはこれはとっても大事で、バグを未然に防いだり、エンジニア同士のコミュニケーションの場でもあります。

コードレビューというのは、自分の書いた変更のコードを本体に入れる前に、シニアのエンジニアなり同僚に見てもらって指摘し合います。
そこで何か問題があれば修正して再度コードレビューをします。
そしてみんなのOKを出ればやっと本体に取り入れられるようになります。

コードレビューは日常的に行っていますが、私が特に心掛けている点を考えてみました。

コードレビューという文化

このコードレビューっていう文化は結構特殊なのかなぁって思ってます。
以前の職種では、自分のやった仕事を全部見てもらって指摘してもらうなんて考えられなかったですね。
しかも上司だけでなく同僚、後輩にもみせて直接指摘するってすごいです。

これはエンジニアという仕事が、ひとつのプロダクトを一緒に作っているという性質上の問題かもしれない。
違う人が書いたコードが同じ製品に取り入れられるので、変なコードがあれば自分の仕事にも大きく影響する。

でも他の仕事でこんなことやっているかなぁと思います。

例えば大工みたいな家を複数人で作ってますみたいな仕事でも、お互いの仕事を見せ合ったりするのだろうか?多少は親方とかは見てるかもしれないね。でも逆に親方の仕事を指摘したりするだろうか?

エンジニアの場合は時にジュニアがシニアの作業を指摘することもあり面白いです。

このコードレビューっていう文化は、お互いの意見や疑問を投げれるいい機会なのでいいなと思っています。

コードレビューで気をつけている3つのこと

僕がコードレビューで気をつけることは以下3つのことです。
1つは「重箱の隅をつつかない」。
もう1つは「お願いの仕方」。
そして「指摘されてもいい」と思うこと。

「重箱の隅をつつかない」はあまり細かすぎるところまで指摘をしないことである。
これをNitpic(ニットピック -細かい点を指摘すること )と言います。
要は特に重要ではないことです。

面白いことにコードにも性格みたいなものが表れます。なので人によってコードの書き方はかなり異なります。
また解決したい問題は1つだけどその解き方はいろいろなやり方法があります。
なので自分ならこう解くなぁってのがあっても、それが間違ってなかったり明らかに効率悪くなければスルーします。

というのも、あまり細かすぎる指摘がバンバン入ると、指摘されているほうのテンションが下がる場合があります。僕的にはそちらの方がチームの生産性だったり士気の問題で重要なような気がしているのでスルーすることがあります。

もちろんそのコードがプロダクトに影響を与える場合や、チームで決めたルールに外れていれば指摘します。ただしそれ以外は人の好みの問題になる可能性があるのであまり細かすぎる指摘は避けています。

人には人の整理の仕方があるので、自分ルールをあまり押し付けないようにしています。
Nitpicがいっぱいあるというのはチームでの書き方の合意がとれてない可能性があります。できるだけコード整形のツールを使ったりして統一するようにするのがいいと思います。
もし他にも気になることがあれば、チームの統一ルールとして書き方を一緒にできるように話し合いを持ちたいと思っています。

「お願いの仕方」は基本的ですが、言葉遣いが重要です。
英語の場合は自分がネイティブではないのと英語の性質上、ダイレクトな言い方になりがちなのですがそれでも気をつけて指摘や提案を入れるようにしています。
強い口調であったりキツイ言い方は相手の士気をかなり下げます。チームにとっては生産性を下げることにしかならないので意味がありません。
こちらがどれだけ正しい事を主張しても、マイナス効果でしかないです。
折角の良い指摘がただの言い合いになっては意味がありません。
なのでできるだけ「こう思ってるんだけど、どうかな?」みたいな言い方にするようにしています。

そして「指摘されてもいい」という指摘される側のスタンスです。
人から指摘された場合はどれだけ細かい指摘でも、できるだけありがたいと思うようにすることです。
もし自分と思想が違ったりした場合や納得できない場合は、理由を明確にして議論をするようにしています。
あくまで指摘はコードに対してで自分に対しての批判では無いということを肝に命じてます。どんなエンジニアでも間違いやウッカリはあるものです。
指摘されたらありがたいと思うようにしています。たまにイラッとする時もありますけどね。。。でもまぁ時間を割いて見てくれたのでありがとうって思うことにしようって。

というわけで

エンジニアのコードレビューってプロダクトにとってもエンジニア同士のコミュニケーションとしても大事だなって話でした。

あまり細かすぎず、言葉遣いに気をつけて、指摘を歓迎できるようになれば、チームのコードレビューが生産性のあるものになるのかなと思います。

指摘しやすい雰囲気であることも重要なポイントで、上手くコードレビューをしあってるチームはいいチームだと思います。
コードレビューでお互いの知識を交換したり議論できればよりお互いのスキル向上にも繋がります。

そういうチームで働きたいですねってことで。

ではでは。

#仕事について話そう


この記事が参加している募集

仕事について話そう

この記事が気に入ったらサポートをしてみませんか?