okuzawatsの日記

Android / Kotlin / GitHub Actions Enthusiast 🤖

コードレビューにおける「パッと見でわからないので」

コードレビューをしていて、「パッと見でわからないので、〜して欲しいです」とコメントすることがあります。「〜」の部分は、「名前の変更をして欲しい」とか「処理の書き方を見直して欲しい」とかです。実際にコードレビューする時にはもう少し具体的な内容を書きますけど。

「パッと見でわからないのであればわかるまでコードを読め」と言われてしまいそうなので、「パッと見でわからないので」というレビューコメントの書き方は果たして良いのだろうか、ということをしばしば考えます。

現時点では、コードがパッと見でわからないのであれば何らかの改善が必要なので、(改善案を提案しつつ)「パッと見でわからないので」とレビューコメントをするのは正しい、と結論しています。

何故か。

コードは、書かれるよりも読まれる回数の方が多いことが広く知られています(出典不明)。パッと見でわからないコードを読む時、プログラマーは注意深く周辺を探り、時間をかけてコードを解読しなければなりません。一方、パッと見でわかるコードになっていれば、そのようなことで時間を無駄にすることはありません。

プログラマーは、そのコードを書いた瞬間に最もそのコードを理解しています。時間とともに、コードを書いた時の思考は失われて行きます。そのコードを最も容易にわかりやすく書き直せるのは、コードを書いた直後、現実的にはコードレビューを受けている時になるでしょう。

「パッと見でわからない」コードは、修正されない限り「パッと見でわからない」コードであり続けます。即ち、チームの時間(=お金)を奪い続ける負債となってしまいます。レビュワーがコードをパッと見てわからないのであれば、そのコードを今改善することが大きな価値となるのではないか、と愚考する次第です。

#Other

書いている人 😎

profile

茨城県つくば市在住のモバイルアプリケーションアーキテクト(Androidが得意です)。モバイルアプリのアーキテクチャ、自動テスト、CI/CDに興味があります。いわゆる「レガシーコード」のリファクタリング・リアーキテクチャが好きです。

👉 もっと詳しく

著書 ✍

Android 依存性注入 ヒッチハイク・ガイド🧳

Androidアプリでの依存性注入(Dependency Injection)に入門するためのガイダンスです。依存性注入の概念やメリットを理解し、Dagger Hiltを用いてAndroidアプリに適用する方法を解説しています。

販売サイトへ🏃

ソフトウェアデザイン 2023年6月号📚

特集「クリーンアーキテクチャとは何か?」の第5章「モバイルアプリ開発における実践」を執筆しました。

販売サイトへ🏃

Android クリーンアーキテクチャ ヒッチハイク・ガイド🧳

Androidアプリでのクリーンアーキテクチャに入門するためのガイダンスです。クリーンアーキテクチャの概念を理解し、Androidアプリに適用する方法を解説しています。

販売サイトへ🏃

Android ユニットテスト ヒッチハイク・ガイド🧳

Androidアプリのユニットテストに入門するためのガイダンスです。初学者が混乱せずにAndroidアプリのユニットテストを書き始めることができる、ということを目的としています。

販売サイトへ🏃

Android MVVMアーキテクチャ入門🛠

Androidアプリ開発の初学者に向けた、MVVM(Model-View-ViewModel)アーキテクチャの入門書を書きました。初学者の方を確実にネクストレベルに引き上げる技術書です。NextPublishingより出版されています。

販売サイトへ🏃

関連記事 👀

お問い合わせ✉️

Androidアプリ開発、特にレガシープロジェクトに関するご相談はこちらまで📨

お名前

メールアドレス

お問い合わせ内容