MyEnigmaスマートフォン用の表示で見るMyEnigmaとあるエンジニアのブログです。Supportersはじめに個人でコードを書く時には、あまり気にしないプログラミングフローとして、コードレビューがあります。気軽に他人のソフトウェアにコントリビュートできるようになりました。そこで重要なのが、コードレビューです。無限に時間を費やしてしまいがちだと思います。様々な資料が指摘している、コードレビューで注意すべきことを自分用にまとめておきたいと思います。様々なコードレビューツールがありますが、それぞれの特徴をまとめておきたいと思います。変更の背景を理解しやすくなります。Requestベースのコードレビュー機能だと思います。help.github.comgitリポジトリや、issueによるタスク管理などの機能と簡単に連携させることができるので、非常に使いやすいかと思います。Enterpriseを使うと、オンプレでGitHubサーバを立てることもできます。Reviewプラグインを使って、コードレビューをすることが可能です。boardは、Python製のOSSコードレビューツールです。機能も十分とのことです。OSSのコードレビューツールとしては、www.gerritcodereview.comなども有名です。UpsourceUpsourceは、PyCharmやIntelijを開発しているmyenigma.hatenablog.comJetbrains社が開発しているコードレビューサービスです。www.jetbrains.comJetbrainsのIDEをシームレスに連携できるのが、特徴です。Atlassianが開発しているコードレビューツールです。www.atlassian.comJIRAと連携できるのが特徴です。コードレビューで注意すべきことコードレビューで注意したほうが良いと思うことをまとめておきます。レビュワーは完璧主義にならないレビュワーが完璧主義になると、コードレビューの速度が低下し、コードレビューを開始するのをためらうようになります。対象のコードが完璧でもなくても承認した方が良いです。コードレビューは重要な教育の場でもあるので、IMOやNitを使って、参考になる情報を教えるのも重要です。強い気持ちで指摘することも重要です。大まかな設計方針を決めておくことも重要です。大きな設計変更をいいずらくなってしまいます。できるだけ良い部分は褒める良い基本的にコードレビューは、対象のコードの悪い所を指摘する場なので、レビューの雰囲気が悪くなることが多いです。次のコードレビューを出す心理的障壁が低くなります。コードレビューのサイズはできるだけ小さくする大きな塊のコードレビューを依頼すると、レビュワーは全体を理解するのに、時間がかかるため、コードレビューのやり取りが遅くなります。細かい部分まで確認することも難しくなります。できるだけ小さいサイズでコードレビューを投げ、iterativeにコードを改善することが重要です。小さいコードレビューによるコードは、マージがしやすく、Masterとの乖離が起きにくくなります。コードレビューの反応はできるだけ早くする個人の開発の速度を最適化するよりも、チームの開発の速度を最適化することが重要なので、コードレビューを依頼された場合は、できるだけ早く反応するようにしましょう。最低でも、1日以内に反応し、できれば一日のうちに何度もやり取りができると良いです。スタイルガイドを作成し、それに従うようにしましょう。スタイルに関して、議論することは、不毛なことが多いからです。方針が決まったあとに、必ずスタイルガイドに追加しましょう。自動フォーマットツールをチームで共有で使うようにしましょう。レビュワーがレビューで、確認すべきことレビュワーは下記の項目をチェックすべきです。出来るだけ短い文章で、コードレビューを説明する文書を付けて、レビューを開始しましょう。これによりレビュワーの負担がかなり小さくなります。リファクタリングのコードレビューと、バグ修正、機能追加のコードレビューは分けたほうが、レビュワーからは、確認がしやすいです。最初は意味がわからなかった単語をまとめておきます。Requestの略です。自分のリポジトリと、共有のリポジトリにマージしてもらうために作成するコードレビューや議論のことを指します。GitHubを使っているとよく出てきます。コードの修正などを承認するときによく使います。"Approved"を代わりに使う人もいる気がします。opinionの略です。自分なら直すけど、直すかどうかは、おまかせしますという緩やかな指摘をしたい時に使います。些細なコメントという意味。前述のIMOより、より一層コメント感が強い気がします。長いので、(読まなかった)要約を載せますという意味です。長い説明を書く前に、TL;DR.と書いて、結論を箇条書きにするPRをよく見ます。Supportersもしこの記事が参考になり、ブログをサポートしたいと思われた方は、こちらからよろしくお願いします。はてなブログProとあるエンジニアのブログです。Page月別アーカイブスポンサーリンクスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。