336 Views
August 19, 25
スライド概要
立秋!若手エンジニアふんわりLT Night!で発表しました
https://wakate-funwari-study.connpass.com/event/361888/
ソフトウェアエンジニア
立秋!若手エンジニアふんわりLT Night! レビュワーになってわかった、生産性を上げるため の Pull Request の書き方 Takuma Kobayashi (@takuma5884rbb) Finatext 株式会社
立秋!若手エンジニアふんわりLT Night! 自己紹介 小林拓磨 X: @takuma5884rbb 2000 年生まれの 23 卒(ギリ 3 年目) Software Engineer at Finatext 1年目からシステムの詳細設計・実 装・運用を経験 主な技術スタック Go, AWS, Terraform 2024 Japan AWS Jr.Champions 趣味は料理・マラソン 2 / 15
立秋!若手エンジニアふんわりLT Night! toB 企業での生成 AI 活用について語る LT 会やります! https://wingarc1st-techevent.connpass.com/event/364370/ 3 / 15
立秋!若手エンジニアふんわりLT Night! ゴール レビューしやすい Pull Request の書き方を学ぶ 4 / 15
立秋!若手エンジニアふんわりLT Night! 開発現場の現状 常に早い開発スピードを保っている リポジトリの数も多い これだけの PR を Open、Review している この状況でレビュワーに回ることが増えると、コンテキストスイッチも多くなる 5 / 15
立秋!若手エンジニアふんわりLT Night! まず、Pull Request とは...何か(ネットリ) 6 / 15
立秋!若手エンジニアふんわりLT Night! Pull Request とは プログラム(ソースコード)の変更を記述する コード差分とコメントによって成り立つ コードを変更すれば、プログラムの振る舞いは変わる よってレビューの観点としては、 変更の要件を満たしているか? 機能的な差分は何か? 外部システムへの影響は何か? ユーザーに与える影響は何か? リポジトリ内における影響は何か? 7 / 15
立秋!若手エンジニアふんわりLT Night! レビュイーの責務 新しいコードの振る舞いが想定通りになっているか? どのような影響を与えるか? 単体テスト 動作確認 影響範囲 最低限 how の正当性は担保すべき 8 / 15
立秋!若手エンジニアふんわりLT Night! レビュワーの責務 新しい振る舞いが要件を満たしているか? コードのエントロピーが余計に増えていないか? how より why 9 / 15
のみの説明なら AI がやってくれる 立秋!若手エンジニアふんわりLT Night! how これだけなら、極論テストが通っていればマージして良さそうにも思える 10 / 15
立秋!若手エンジニアふんわりLT Night! 見えている振る舞いとしては良さそうだが、それが 複数の選択肢の中で妥当であるかは別 11 / 15
レビュワーとしては diff に現れない情報が欲しい 立秋!若手エンジニアふんわりLT Night! 他の選択をしなかった理由 レビュワーの把握していない背景情報 呼び出し側でどのような使われ方をしているか レビュイーの提示がないと、Pull Request のコンテキストを超えて、実際 のコードを読んだり Slack を遡ったりしないといけなくなる 新しい振る舞いを追加するなら、その理由 野放図に追加していくと、リポジトリのエントロピーが増大していく 後から妥当性を振り返る時にも役立つ レビュワーが必ずしも関連コードを読んでいたり、細かい業務的要件を把握してい るとは限らないので、全ての背景情報を把握しているレビュイー(author)が情報を提 供する必要がある! 12 / 15
立秋!若手エンジニアふんわりLT Night! 実例 環境変数を別ファイルから読み出し、config 構造体にセットする実装の PR 複数手法を検討して、結果今ある実装にした理由を記載している 13 / 15
立秋!若手エンジニアふんわりLT Night! AI Agent へのプロンプトにも通ずるところがあるかも や Claude Code といった AI Agent は、プロンプトを解釈したりリポジト リにコードを読んだりして、実装の道筋を立てる プロンプトが適当だと迷ったり変な実装を吐いたりする アーキテクチャの説明を置いて参照させたりするとうまくいく 一括で必要なスコープの情報が揃っていると、レビュワーは迷わずにレビューでき る! Clice 14 / 15
立秋!若手エンジニアふんわりLT Night! まとめ は「コードの変更」+「変更の理由」を表す レビュワーが知りたいのは上記に加え、実装の「なぜ」 3 つの重要な「なぜ」を明記する i. 既存パターンとの違いの理由 ii. 代替案を選ばなかった理由 iii. 実現したい本質的な目的 PR 15 / 15