こちらはミツモアAdvent Calendar 2022の21日目の記事です。
こんにちは、ミツモア エンジニア の渡邊です。今年もアドベントカレンダーの季節がやってきました。昨年の記事については ミツモアAdvent Calendar 2021 こちらを見てみてください。
セルフレビューしていますか?
みなさんはコードレビュー前にセルフレビューは行っていますか?
確認したつもりでも、ケアレスミスをしたり同じ指摘を2度受けたり… 。
しかし、何か工夫をすれば防げるミスもありそうです。
私はコードレビューで受けた指摘を決めた場所にメモしておいて、レビュー依頼前に確認するようにしています。
そこでそのメモを元にレビュー依頼前のチェックリストを作成してみました。
セルフレビューチェックリスト
チェックリストを確認することで、全てのミスを防げることはできませんが最低限のコードの質を保証することができます。
ここでは、常に確認しておきたい一般的な項目についてリストアップしていこうと思います。
受け入れ要件を確認
- まずは実装したコードがチケットに記載されている機能の受け入れ要件をカバーしているか確認しましょう。
スペルミスはないか
- これはVScodeだとcode spell checkerなどのツールに頼るのが一番効率がよく確実だと思います。
console.logなど不要なコードが残っていないか
- Eslintのルールを追加してもいいかもしれません。
- ルールを設定していない場合は、レビュー前に検索をかけて確認するようにしましょう。
不要なコメントを残していないか
- 後々他の人がそのコメントを見たときに混乱してしまうかもしれません。
- 削除してもいいのかコードを確認したり、本人に確認したり無駄な時間を消費しないように不要なコメントは削除するようにしましょう。
- 一旦書いたコードをコメントアウトしたい時は、後で検索しやすいように
TODO:後で消す
を書くように癖付けしておくといいです。
import文を絶対パスにしているか
- 相対パスになっていると、そのファイルの置き場所が変わるたびにpathを変更しなければならなくなってしまいます。
- 絶対パスにすればimport文をかくファイルの置き場所関係なくパスを書くことができ、可読性も向上します。
命名規則に違反していないか
- プロジェクトの命名規則に則っているか確認しましょう。 e.g. 大文字、小文字、キャメルケース、ケバブケース、複数形、単数形
- 命名規則が一つのドキュメントにまとまっていれば、他のコードではどのように書いているのかファイルをまたいで確認しに行く手間が省けます。また、規則に則って書けばいいのでどのように書けばいいか考える時間を省くことができます。
変数名、関数名に違和感はないか
- 可読性を向上させるには関数名と変数名などを見るだけでどんな処理が行われているのか理解できる必要があります。
- 日本語と英語でニュアンスが異なる場合もあるので自信がない時は一度検索して確認しましょう。
型指定をしていない関数はないか、anyで型指定していないか
- TypeScriptはany型の値に対してどんな操作を行っても型エラーが起きないので、実行時にエラーにつながるバグを検出することができません。
共通化できるところはないか
- 同じような処理を繰り返し書いていないか再度確認しましょう。
- 共通化することでコード数が減り、可読性も向上します。
TSDocは書いてあるか
- TSDocを読むだけで何をしているコードなのか分かれば効率化につながります。
- 公式ドキュメントに様々なデコレータの説明があるのでうまく活用して書くようにしましょう。
- リファクタリングした時に既存のTSDocも修正することも忘れずに行いましょう。
プルリクエストを作成した後にやるべきこと
チェックリストを全て確認し終わったらついにレビュー依頼です!
でもその前に、レビュアーへの配慮としてしてプルリクエストに書いておくべきことがいくつかあります。
質問されそうなところはコメントを残す
- 実装中に追加で修正を加えた箇所や説明が必要そうな箇所など、レビュアーから質問がありそうなところは先にコメントをしておけば、やり取りの削減に繋がります。
- なぜそのようにコードを書いたかなどは、コード上にコメントした方がいい場合もあるので見直しましょう。
仕様通りに動いているが本当に大丈夫なのか不安な時にはコメントで聞く
- 少しでも不安の時は相談しましょう。
- 動いているから大丈夫だろうと無視していると、自分では気づかなかったバグが潜んでいたり、パフォーマンスが低下する可能性があります。
まとめ
以上レビュー依頼前にしておきたいセルフレビューのチェックリストでした。
レビュー依頼前にチェックリストを確認すればレビュアーの負担を軽減し、コードの品質を高めるためのレビューに重点をおくことができます。
最低限のチェックは一人一人がレビュー依頼前に行ってプロジェクトのコードの質を高めていきましょう!
最後に
ミツモアでは様々な職種のエンジニアを積極的に採用しています! ご興味がある方はぜひ気軽に面談しましょう!