Upgrade to Pro — share decks privately, control downloads, hide ads and more …

コミットメッセージ駆動開発

 コミットメッセージ駆動開発

コミットメッセージ駆動開発とは、コミットメッセージに合わせてコードを書く開発手法であり、コーディングのシングルタスク化を促すことで生産性の向上を助けるプラクティスです。

---

リンク

2 ページ目
Twitter(X) @IzumiNoritaka
https://twitter.com/IzumiNoritaka

3 ページ目
Bing Image Creator
–Please create a pop and catchy illustration that says "Single-Tasking". Please use pastel colors with pink as the base color. Please use Japanese fonts with rounded corners.
https://www.bing.com/images/create/please-create-a-pop-and-catchy-illustration-that-s/1-6658fe2b99764c3f81b70cf0e64d7032?id=SWwkZIUxSdnRkClkAfAo7w%3d%3d&view=detailv2&idpp=genimg&thId=OIG3.iUXm6YRijvSgNRA5Ya1B&FORM=GCRIDP&mode=overlay

6 ページ目
Multitasking: Switching costs.
American Psychological Association, March 20, 2006
https://www.apa.org/topics/research/multitasking

Avatar for Noritaka IZUMI

Noritaka IZUMI

June 03, 2024
Tweet

More Decks by Noritaka IZUMI

Other Decks in Technology

Transcript

  1. 3 私がコードを書く上で大事にしていること 出典 Bing Image Creator –Please create a pop

    and catchy illustration that says "Single-Tasking". Please use pastel colors with pink as the base color. Please use Japanese fonts with rounded corners. https://www.bing.com/images/create/please -create-a-pop-and-catchy-illustration-tha t-s/1-6658fe2b99764c3f81b70cf0e64d7032?id =SWwkZIUxSdnRkClkAfAo7w%3d%3d&view=detail v2&idpp=genimg&thId=OIG3.iUXm6YRijvSgNRA5 Ya1B&FORM=GCRIDP&mode=overlay
  2. 16 1. やることリストを作成する 手書きでもテキストファイルでも 初めから完璧でなくてもよい 実装中・昼寝中にも思いついたら その都度追記すればよい # 機能 A

    のバグ修正 - テストに仕様変更を語らせる - パラメータのバリデーションを追加(不足してるから # 機能 B の実装 - とりあえず空 API を作って 200 を返す - 固定レスポンスを返す - 本の在庫取得処理をユースケースへ - ユースケースで固定値を返す - 在庫を DB から取得するようにする - パターン増やしとか異常系、ここは後で考えるか~~~
  3. 2. コミットメッセージを書く 空コミットを積む 17 git commit --allow-empty -m "[wip]fix(user): リクエス

    トの password フィールドがバリデーションから漏れていた ので追加したった" # --allow-empty で空コミットが可能
  4. 3. コードを書く コミットメッセージに集中する 何か他のこと(コード関連)を思 いついても、やることリストに書 くだけにして、すぐ実装に戻る 18 if apple >=

    100: if banana >= 100: if cherry >= 100: if dragon_fruit >= 100: do_lightning_talk() else: go_to_bed() else: go_to_bed() else: go_to_bed() else: go_to_bed() foo.py
  5. 4. コミットする 最初の空コミットを修正する 19 git commit --amend --date "$(date)" #

    --amend で直前のコミットを変更 # --date でコミット時刻を変更
  6. CMDD のデメリット • Pre-commit hook が多いと開発スピードが落ちる ◦ CMDD をやるとコミット回数が倍以上に →コミットに時間が取られる

    ◦ Pre-commit を空コミット向けに最適化しましょう • ブランチをそのままマージすると後々見にくくなる ◦ コミットメッセージが明確になると →コミット数が増えがち ◦ リベースやスカッシュマージをしましょう 24
  7. こんな人におすすめ • 調べる、考える以外の時間でコードを書く手が止まってしまう人 ◦ 今やろうとしていることをコミットメッセージに書く →思考が整理される • コミットメッセージを考えるのに 30 秒以上かかってしまう人

    ◦ コミットメッセージに困ったら、コミットを見直さなければならない ←先にコミットメッセージを決めると楽 • 開発スピードが遅いのはスキルの問題だと思っている人 ◦ 自分の考えていることを言語化する習慣をつける →困ったときに判断がしやすくなる 27