Slide 1

Slide 1 text

なんでもPull Requestにする 吉祥寺.pm 31 @utgwkk (うたがわきき)

Slide 2

Slide 2 text

自己紹介 ● @utgwkk (うたがわきき) ● 株式会社はてな Webアプリケーションエンジニア ● 主にTypeScriptとReactを書いて 暮らしています

Slide 3

Slide 3 text

今回のテーマ ● 「来年に向けて、今年やったこと、書いたコード」 ● 書いたコード 🔜 Pull Request の話

Slide 4

Slide 4 text

Pull Request (PR) ● PR作ってますか?

Slide 5

Slide 5 text

PRの例 https://github.com/DefinitelyTyped/DefinitelyTyped/pull/60797

Slide 6

Slide 6 text

PRに対するイメージ ● 機能追加 ● バグ修正 ● ドキュメントの修正 ● etc.

Slide 7

Slide 7 text

それだけじゃない ● 日々の暮らしでこのようにPRを作っている、という例をご紹介

Slide 8

Slide 8 text

PoC (Proof of Concept, 概念実証) ● ある機能を実装したい、というときに雑でもいいのでとにかく動くものをPRとして 作っておく ● 実際に作る段階になったら、少しずつ実装を切り出したり整えたりして別途PRを 作っていく ● こうやったらできそう、ここは考えることがありそう、というのを確かめてから本実装 に入れる

Slide 9

Slide 9 text

お試しPR ● 日々、いろいろなことを思いつく ○ こういう機能があると便利なのでは ? ○ こういうふうに実装を整理すると見通しがよくなるのでは ? ● 思い立って時間ができたらカカッと実装してPRを作る ● これいいじゃん、となったら本実装に入る

Slide 10

Slide 10 text

書き捨てスクリプトを使った調査 ● データ量の見積もりや検証などを行いたい場合 ● 手元でスクリプトやワンライナーを使って調査したような内容でもPRとして残してお く ● 調査結果をPRのコメントに残しておく ● あとから再現しやすい

Slide 11

Slide 11 text

マージしないPRによって生み出される価値 ● ここまで紹介してきたようなPRは、必ずしもマージできるとは限らない ○ だいたいマージせずに閉じる ● マージされないことを前提として実装する ○ 雑でもいいから実装する ○ とにかく高速に実装する ○ マージしたくなったら実装を整える ● 実現可能である・見通しが立つようになることに価値があると思う ○ マージしなかったので無駄、ということはないと思う

Slide 12

Slide 12 text

PRを作っておく利点 ● コードを見ながら議論できる ● 手元でcheckoutして動作確認できる ● 進捗の可視化 ○ 手元のブランチだけに残さずPRにする ○ ここまではできた、というのをURL付きで共有できる

Slide 13

Slide 13 text

git stashとの比較 ● stashをあとからapplyするとコンフリクトしがち ○ 開発が進むとapply困難になる ○ PRにしておくとcheckoutして動作確認できる ■ base branchとはコンフリクトするけど ● PRはURLやブランチ名などで共有しやすい ○ stashだと、手元のdiffを共有する、みたいな形になる

Slide 14

Slide 14 text

まとめ ● ここで一句: 万物を プルリクにして 残したり ● いろいろな用途でPRを作っておくと便利 ● 来年もたくさんのPRを作っていくことになるでしょう