Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
コミットするタイミングについて
Search
宮田勉
December 28, 2023
Programming
270
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
コミットするタイミングについて
コミットの粒度を適切にしようとする時のポイントをまとめてみました
宮田勉
December 28, 2023
More Decks by 宮田勉
See All by 宮田勉
コミットメッセージを書く時に気をつけていること
tmiyata
2
390
Other Decks in Programming
See All in Programming
Verilogで学ぶCPU自作入門.pdf
uyuki234
8
4k
大喜利で理解するLLM as a Judge / Understanding LLM-as-a-Judge through Ogiri
rockname
0
190
Everything will be SERVERLESS — 信じて運用した10年の経験値 / Everything Will be Serverless — Lessons Learned from 10 Years of Operational Experience
seike460
PRO
1
750
残高管理から台帳サービスへの進化
artoy
0
150
パーソナライズPodcastを作った話
repunit11
0
120
Domain-Driven Transformation
hschwentner
2
2.3k
Agentic Software Factoryに、すごく賢いIF文を。 / super smart IF statement into the Agentic Software Factory.
rkaga
7
1.9k
IBM Bob Dojo #1 仕様駆動開発入門
oniak3ibm
PRO
0
350
WebRTC映像をAirPlayに対応させる挑戦.pdf
monolithic_adam
0
340
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
550
contenteditable と日本語入力に向き合う
colorful12
0
130
ジョジョの世界をXRで再現する
mofurune
0
120
Featured
See All Featured
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
390
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
2.9k
Unsuck your backbone
ammeep
672
58k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
550
Joys of Absence: A Defence of Solitary Play
codingconduct
1
530
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
610
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
2k
Designing for humans not robots
tammielis
254
26k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
3
4.3k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.5k
A designer walks into a library…
pauljervisheath
211
25k
Transcript
コミットするタイミングについて 宮田 勉
注意事項 • あくまで一個人の考えです • 正解はありません • 私が普段考えていることの共有です
今日の内容 • 導入 • コミットの粒度とは? • コミットするタイミング
コミットとコミットログ • コミット ◦ 変更をバージョン管理ツールに保存されたもの • コミットログ ◦ コミットの集合体
コミットログで出来ること • 過去の変更を振り返れる • 問題があったら、1つ以上前の変更まで戻れる • 既にコミット済みの内容を後から修正できる • 複数のコミットを1つにまとめられる
便利だが、何も考えずにコミットすると... • 1つのコミットの中で色々な変更が入って何をしたいのかがわからない • 1つ1つのコミットが細か過ぎて、繋がりがわからない • 不具合があってコミットを切り戻したいけど、不具合と関係ない所まで切り 戻されてしまう • 日常生活で例えると整理整頓せずに収納しているイメージ
今日の話 • 整理整頓されていれば、探すときに時間かかからない • 保守しやすくなったり、レビューしやくなったりする、という話
コミットの粒度とは? • コミットするときの変更の度合いや規模
コミットの粒度が大きすぎる • 切り戻ししづらい ◦ 一部にバグがあっても、コミットのリバートができない • 修正内容がわかりづらい ◦ 差分が大きくなると、情報量も増える ◦
修正内容がわかりづらくなったり、見落としが発生しやすい 保守しづらく、レビューもしにくい!
コミットの粒度が小さすぎる • コミットが多くなる ◦ 1つ1つのコミットを見た時に、他のコミットとの繋がりがわかりづらい • 切り戻しの数が多くなる 細か過ぎても保守しづらく、レビューもしにくい!
コミットの粒度が適切であると • コミット単位で切り戻しがしやすい • コミット単位での差分が見やすくなる その結果 保守しやすく、レビューもしやすい!!
コミットするタイミング • 1つの作業単位 • 正常に動くタイミング
1つの作業単位の例:コマンド実行 • コマンドやツール等によって自動的に作成や変更が加わる単位でコミット • 以下が区別できる ◦ 人による変更 ◦ コマンド実行による変更
コマンド実行と手動変更が混ざっている例 • コードのフォーマット修正(自動で修正)されたもの • statusがcompletedだったらメールを送らない
コマンド実行と手動変更を分けた例 人の手とそうでない変更が区別つきやすいので見やすい 片方の変更だけ切り戻すこともできる
1つの作業単位の例:ファイル移動やリネーム • ファイルの移動やリネームといった機械的な変更のみでコミット • 上記以外の変更も混ぜると移動やリネームによってクラス名やファイル名な どの修正漏れかどうかがわかりづらくなる ※ファイルの移動やリネームする時に、コマンド実行で変更する場合もあるが、 クラス名の変更と同じコミットにする →1つの作業単位でコミットすることを意識する
1つの作業単位の例:TODOリスト • タスク単位でコミットする • コミットを見ただけで対応内容が想像つく
正常に動くタイミング • エラーが起きない状態でコミットする • エラーが起きる状態だと切り戻せない • アプリのコード修正とテストコードの修正がセットで1つのコミットになっ ていると動作が担保されているので尚良い
まとめ • 保守しやすさ、レビューしやすさもコミットの粒度次第で変わります • コミットする時は、紹介したポイント意識してみてください
参考 • https://qiita.com/jnchito/items/40e0c7d32fde352607be • https://www.codegrid.net/articles/git-tech-1 • https://qiita.com/chihiro/items/04482caebc702e75e84d