この記事は RevComm Advent Calendar 2024 の 9 日目の記事です
はじめに
RevComm では Github を使用して開発を行っており、コードレビューの依頼も PR で行われます。Github の PR の画面では変更差分の表示ができるのでレビューにも使えるのですが、個人的にはエディタを使用してレビューするのがお勧めです。
この記事では、エディタを使用してレビューすることのメリットをご紹介します。
エディタでのレビューとは
この記事におけるエディタでのレビューとは、エディタで変更差分を表示することを意味します。VS Code など最近のエディタでは拡張機能をインストールすることで、エディタ上で変更差分を表示することが可能です。
ちなみに私は Neovim を使っており、octo.nvim という拡張 (を自分で改造したもの) でレビューを行っています。Neovim 上でレビューコメントも追加・編集ができてとても便利です。
エディタでレビューすることのメリット
Github 上でのレビューに対して、エディタでレビューすることのメリットをいくつか挙げます。
- 普段使い慣れているエディタを使用することで様々な操作をスムーズに行える (Vim を使っている人は特に)
- ブラウザ内検索に比べて、よりリッチな検索を行える
- 静的解析がおかしな点 (不要なライブラリのインポートや、スペルミスなど) を見つけてくれる
これらのメリットのほかに、レビュー観点から見たメリットもあります。
以降ではレビュー観点から見たエディタを使用するメリットについて説明します。
レビューの観点から見たエディタを使用するメリット
レビュー観点は様々あると思うのですが、私はレビューを行う際、コードを縦と横に見ることを意識しています。
縦に見る
縦に見るとは、変更箇所の前後を見ることです。
個人的な感想ですが、レビューで変更箇所単体に大きな問題が見つかることはほとんどないです。問題がある場合の大半は、変更箇所の前後の処理との組み合わせにあります。
説明のために以下の例を見てみます。
x: str = "Nanika no atai" # 既に定義されている変数 use_x1(x) # X を使用している箇所 + #### ここから変更箇所 ################## + # x を特定のフォーマットの文字列に変換 + x = format_to_xxx(x) + #### ここまで変更箇所 ################## use_x2(x) # X を使用している箇所
この例では、変数 x
の文字列を特定のフォーマットに変換する変更を入れており、フォーマット単体ではおかしな点はありません。
しかし、この変更箇所の前後では変数 x
を使用しています (use_x1
と use_x2
の関数)。もし、use_x2
がフォーマット前の値を期待していたらどうなるでしょうか?逆に use_x1
もフォーマット後の値を期待していた場合はどうでしょうか?このような場合、変更したコードをそれぞれの関数の呼び出し前後に移動する必要があるでしょう。
この例の場合、縦に見るとは x
を変更した箇所の前後で x
を使用している部分に注目するということです。
このように縦にコードを見るには、Github の PR 画面では少し大変です。Github の画面では変更箇所の前後の行はデフォルトで非表示になっているからです。これらを表示するには画面を何度もクリックする必要があります。エディタを使う場合、前後の処理を確認するのに特別な手順を必要ありません。この観点からすると、縦に見るにはエディタを使うと非常に効率的です。
横に見る
縦の次は横ですが、これは簡単に言うと変更したファイル以外のファイルも見ることです。
具体的な例をいくつか挙げます。
- 変更した関数等を参照している全ての箇所で、変更内容がどのような影響を与えているか確認する
- 変更対象と類似したコードが存在していないか確認し、存在している場合はそちらにも同様の変更が必要か確認する
エディタを使用してこれらの観点でレビューを行う場合、LSP を使用して参照箇所にコードジャンプしたり、grep 相当の検索でリポジトリ内を検索すると効率的に行えます。
Github でも参照している箇所を一覧化してくれたりはしますが、エディタを使用した方が少ない手間でコードジャンプが可能です。
まとめ
コードレビューにエディタを使用するメリットをレビューの観点から紹介しました。
ブラウザ上でも Github Codespaces を使うとブラウザ上で VS Code を開き、レビューをすることもできます。しかし、普段開発で使用している設定・拡張を用意する手間を考えると、手元のエディタでレビューをすることが個人的にはおすすめです。
エディタを利用することでより効率的にレビューすることが可能になると思いますので、ぜひ一度試してみてください。