Upgrade to Pro — share decks privately, control downloads, hide ads and more …

コードレビューと私の過去と未来

jx.matsushita
September 28, 2024

 コードレビューと私の過去と未来

References:

Googleのソフトウェアエンジニアリング
/ Titus Winters, Tom Manshreck, Hyrum Wright 編 / 竹辺 靖昭 監訳 / 久富木 隆一 訳 / O’REILLY 2021.11

脳に収まるコードの書き方 – 複雑さを避け持続可能にするための経験則とテクニック
/ Mark Seeman 著 / 吉羽 龍太郎, 原田 騎郎 訳 / O’REILLY 2024.06

Making Software
/ Andy Oram, Greg Wilson / O’REILLY 2011.09

エクストリームプログラミング
/ Kent Beck, Cynthia Andres 著 / 角 征典 訳 / オーム社 2015.06

iki-iki - https://scrapbox.io/iki-iki/

jx.matsushita

September 28, 2024
Tweet

More Decks by jx.matsushita

Other Decks in Programming

Transcript

  1. 13 どうしてこうなったのか 画面イメージのみで共有された設計がなかった 引数や返り値の型が書かれていなかった ちょくちょく混じるTypo(farst→first など) 単数系と複数形の区別が適当 抽象度がバラバラ 使用していないファイルをコミットする インデントがバラバラ

    CIがなかったので自動テストが通っていない状態でレビュー依頼をされていた レビュワーの指摘の全てをレビュイーが修正していた 自動テストがない実装 変数名が適当(itemsとitem_listが同じスコープ内に存在した) 時間をかけてプライベートメソッドのテストを書いていた 実装の範囲が広い(フロントエンドの実装とバックエンドの実装が含まれていた)
  2. マスター タイトルの書式設定 変更はちょうど良いサイズに comfortably sized change コードレビューを楽にするプラクティス 大きなコードの変更は手戻りの危険もあるばかりか、レビュワーの欠陥発見能力 の低下につながってしまう。 タスクが小さすぎて実装をするよりレビュー依頼のドキュメントを書く時間の方

    がかかる様なことは本末転倒だが、数時間から長くても一日で実装が終わるくら いの大きさに設計を分割する。 変更がちょうど良いサイズになる様にするとレビューが楽になる。 実装の途中で設計に不備が見つかり変更のサイズが大きくなりそうな場合は相談 して分割できないかを検討する。
  3. マスター タイトルの書式設定 コメントするけどLGTM looks good to me with commented コードレビューを楽にするプラクティス

    ラベルを使う際に対応が必須かどうかを一緒に書く。 [Q | 回答が必要] [MUST | 修正しないと承認できない] [IMO | 採用してもしなくても良い] [NITS | 無視して良い] [FYI | アクションは不要] IMO,NITS,FYIはコメントとしてつけるが、LGTMとしてApproveしてしまう。 採用されて複数回Approveすることもある
  4. マスター タイトルの書式設定 コードレビューの類型 • グリーンフィールドレビュー • 完全に新しいコードのレビュー • 新しいコードまたはプロジェクトは、コードレビューとは別に相当な 量の設計レビューを経ることが求められる。コードレビューは、過去

    に既に行われた設計上の決定について討議するための時間ではない • 挙動の変更、改善、最適化 • バグ修正とロールバック • リファクタリングと大規模変更 • 機械の生成した変更であってもレビューを要する Googleのソフトウェアエンジニアリング (p.213-)
  5. マスター タイトルの書式設定 References Googleのソフトウェアエンジニアリング / Titus Winters, Tom Manshreck, Hyrum

    Wright 編 / 竹辺 靖昭 監訳 / 久富木 隆一 訳 / O’REILLY 2021.11 脳に収まるコードの書き方 – 複雑さを避け持続可能にするための経験則とテクニック / Mark Seeman 著 / 吉羽 龍太郎, 原田 騎郎 訳 / O’REILLY 2024.06 Making Software / Andy Oram, Greg Wilson / O’REILLY 2011.09 エクストリームプログラミング / Kent Beck, Cynthia Andres 著 / 角 征典 訳 / オーム社 2015.06 iki-iki - https://scrapbox.io/iki-iki/