Slide 1

Slide 1 text

レビューしやすいプルリク
 を作ろう
 
 2022.10.12
 コードレビュー LT会 - vol.3
 
 Fujisawa Chihiro


Slide 2

Slide 2 text

自己紹介
 ● Fujisawa Chihiro
 ● Webアプリ、スマホアアプリ
 ● ゲーム大好き、ポケモン楽しみ
 ● 絶賛就職活動中
 Twitter @chihiro0940 


Slide 3

Slide 3 text

今日のテーマ
 レビューしやすいプルリクを作ろう


Slide 4

Slide 4 text

レビューしやすいプルリクとは?
 ● レビューできるだけの情報が揃っている(情報にアクセス できる)
 ● 見やすい
 ● 正確・・・などなど


Slide 5

Slide 5 text

今日話すこと
 ● どうやって?
 ○ GitHubのプルリクエストテンプレート
 ● どんな情報を?
 ○ テンプレートの中身


Slide 6

Slide 6 text

注意
 ● 今日はGitHubを題材に話します
 ● Qiitaにも似た内容の記事を書いています
 ○ 「テンプレートを使って、より良い情報が入った&レビューしやすいプルリクを」 
 ○ 「【Git】commitの粒度」


Slide 7

Slide 7 text

プルリクエスト
 テンプレート


Slide 8

Slide 8 text

プルリクエストテンプレートとは
 プルリクエストテンプレートを設置することで、プルリクエスト 作成時に本文部分にテンプレートの内容を反映することがで きる。


Slide 9

Slide 9 text

テンプレートなし


Slide 10

Slide 10 text

テンプレートあり


Slide 11

Slide 11 text

テンプレートの作成方法
 テンプレートを設定したいリポジトリに pull_request_template.md という名 前でテンプレートを作成する。
 ファイルの置き場は以下のうちのどこか。
 ● リポジトリルート/pull_request_template.md
 ● リポジトリルート/docs/pull_request_template.md
 ● リポジトリルート/.github/pull_request_template.md
 
 参考: https://docs.github.com/ja/communities/using-templates-to-encourage-useful-issues-and-pull-requests/creating-a-pull-reque st-template-for-your-repository 


Slide 12

Slide 12 text

テンプレートの作成方法
 https://github.com/chihirof/github-template-sample


Slide 13

Slide 13 text

テンプレートの内容


Slide 14

Slide 14 text

内容一覧(案)
 1. タスク概要
 2. このプルリクエストがマージされると何が変わるか?
 3. やらないこと
 4. レビューしてほしい観点
 5. 確認したこと
 6. プルリクエスト作成時のチェックリスト
 7. レビューしてくれる方へ


Slide 15

Slide 15 text

1.タスク概要
 ● このプルリクエストの元ネタであるタスクの概要(背景)をレ ビュアーに説明する
 ● Issueや外部サービスで、タスク、チケット、課題等を管理 していれば、そのリンクを貼るのでもOK
 
 


Slide 16

Slide 16 text

2.このプルリクエストがマージされるとどうなるか?
 ● プルリクエストがプロダクトに与える影響をレビュアーに説 明する
 ● どんな変更を加えたのか、その結果どうなるのか、など
 ○ 画面変更の場合はここにbefore/afterのスクショを貼 るなどもOK


Slide 17

Slide 17 text

3.やらないこと
 ● このプルリクエストでは対応しないことをレビュアーに説明 する
 ○ UIへの表示は次のプルリクエストで対応します、など


Slide 18

Slide 18 text

4.レビューしてほしい観点
 ● レビュアーに特段レビューして欲しい点があれば説明す る
 ○ この変数名、もっといいものがないかな?
 ○ ここの設計、迷ったけどどうでしょう?など


Slide 19

Slide 19 text

5.確認したこと
 ● 動作確認した内容をレビュアーに説明する


Slide 20

Slide 20 text

6.プルリクエスト作成時のチェックリスト
 ● レビューに出す前に確認すべきことのチェックリスト
 ○ チェックボックスにチェックをする
 ● 毎回やらなくてもいいけども、場合によっては必要なことな ど
 ○ 特定の変更がある場合にテストすること
 ○ このファイルに変更があったらこっちも確かめること、 など


Slide 21

Slide 21 text

7.レビューしてくれる方へ
 ● レビュアーに忘れないでほしいこと
 ● (例えば)コメントには優先度をつけましょう
 ○ MUST/IMO/IMHO/nits
 ○ https://qiita.com/kuniyonkunisan/items/2ed8c48ff349e6add45b


Slide 22

Slide 22 text

まとめ


Slide 23

Slide 23 text

プルリクエストを充実させるメリット
 ● レビューを効率よく進められる
 ○ タスク自体に関するやりとりが減る
 ○ 適切なコメントをもらえる
 ■ 「この処理が必要ではないですか?」「そこは次の プルリクでやります」
 ● プルリクエストを書く中で気づくことがある
 ○ 動作確認欄に書きながら「あ、このケース見ていない な・・・」
 ○ 実装中モードから頭を切り替えられる


Slide 24

Slide 24 text

最後に
 ● テンプレートは定期的に見直しを
 ○ チェックリストの中身は常に最新化する
 ● チームで話して試行錯誤していくことが大事
 ○ レビューに何を求める?
 ● 充実したレビューのためにできることは他にもある
 ○ 適切な粒度のコミットに分ける、など


Slide 25

Slide 25 text

その他参考リンク
 ● https://github.blog/2015-01-21-how-to-write-the-perfe ct-pull-request/
 ● https://github.com/thoughtbot/guides/tree/main/code- review


Slide 26

Slide 26 text

ご清聴ありがとうございました!