1K Views
January 23, 25
スライド概要
miyamoto naoyuki N High School Student
Gitのcommitの粒度が難しすぎる! #10 札幌開催:はじめてのIT勉強会 in 札幌 @みやもとsprzk
自己紹介 宮本直幸 - Miyamoto Naoyuki N高等学校(北海道情報大学に進学予定) 開発歴2年くらい(javascript, Java) フロントエンド、バックエンド @Msprzk
目次 1. きっかけ 2. commitの目的 3. 感想とまとめ
1. きっかけ
友達と開発しているときのこと...
宮本くんさ、
なんか...commit大きくない?
はい......
1週間後...
宮本くんさ、
なんか...commit小さくない?
2.commitの目的
Commit の目的 commitとは ↓ リポジトリへの変更を記録すること 参考: https://git-scm.com/docs/git-commit
疑問: 記録するだけなら大きさを意識する必要あるの?
疑問: 記録するだけなら大きさを意識する必要あるの? → commitの使い方に関係していると思う!
commit の目的 - Pull Request - merge - revert etc… 作業を確定、もしくは戻すときに必要 キーワードは「過去の作業を確認する」
過去に戻せるってゲームのセーブと似ているな〜
過去に戻せるってゲームのセーブと似ているな〜 →どこでセーブしたらいいかを考えたらヒントが見つかるかも!
commit の目的 例えば... ドラクエで 1. 2. レベル上げてボスに挑む レベル上げたあと街に戻り、セーブしてからボスに挑む ↓ もしボスに負けたとき、2の方がすぐボスと戦えてよい
commit の目的 開発に落とし込むと... 3つの機能を作ったとき 1. 2. 3つの機能を同時にcommit 1つずつcommit ↓ もしどこかで不具合がおきたとき、2の方がリスクが低い(回復しやすい)
commit の目的 例2 恋愛ゲーム 森先輩との好感度!1週間でどれくらい好感度上がる? 1. 2. 重要な分岐っぽい会話(「私のこと、どう思うの?」など)でセーブする すべての会話でセーブする ↓ すべての会話をセーブしたら後でロードするとき大変...
commit の目的 開発に落とし込むと... ある関数を作ったとき 1. 2. 動く部分ごとにcommit 毎行commit ↓ (1でも頻度高いですが)2では、後で見るとき大変すぎる
commit の目的 つまり... どこでやり直したいのかということがセーブでは大事 ≒どこでやり直したいのかということが commit では大事 commit は「どこでやり直したら悲しみ が少ないか」で考えよう
(余談) コーディングは commit から考えてもいいのでは?
commit から考える こんな感じで commit から考えてみたらやりやすそうじゃね...? 題して「commit駆動開発」
4. まとめと感想
まとめと感想 まとめ(宮本的考え) commit は「どこでやり直したら悲しみが少ないか」を 意識する! 感想 書く側ではなく、レビュワー視点から見た良い commit も気になる...!