タイトルがすべて。
思いついたら手を動かしてしまう性質なので、秘蔵のブランチを大量に持っている。
秘蔵のブランチというのは、動いたけどチームメンバーを説得するのが面倒とか、テスト書くのが面倒とか、だいたい動いているけどやりきるのが面倒とかで main にマージしていないヤツ。 例えばフレームワークのメジャーバージョン上げるブランチとか、依存ライブラリをより一般的/現代的なものに交換するブランチや、より良い設計を思いついたのでガッと書き換えてしまうブランチが多いかな。
だいたい 1 年所属していると 80 ブランチぐらい溜まるので、週 1 つ以上は何か作りかけてる計算になる。
ローカルブランチの数、プロンプトに出しておくかな……。(秘蔵のブランチが溜まってる
— Takafumi ONAKA (@onk) March 28, 2017
もちろん自分でいいアイディアだと思っているから実装しているので、何か起きたときに「こんなこともあろうかと」と出せるのが強み。 脆弱性が見つかったときとか、データ量が増えたこと等で設計の悪さが発火したときとかに、スッと懐から出して、爆速で修正リリースできることがある。 何かしら問題が起きた後だと、多少の体裁の整ってなさは些細な問題になるので、エイってやりやすい。
秘蔵のブランチというとカッコイイ(?)んだけど、要は仕掛かり品です。在庫。完成させていないのでリリースできない、JIT 生産方式で嫌われるヤツ。稀に繰り出せると最高に気持ちがいいので、ついやってしまうんだよね。。
秘蔵のブランチが火を噴くときがきた
— Takafumi ONAKA (@onk) October 28, 2013
で、一晩グワーッて書いた後に、完成していないと数日〜数ヶ月寝かせることがあって、そういうときは続きは何をやろうとしていたのか完全に忘れているので、最後に TODO.txt を commit しておくようにしている。
例えば
- 本家が対応していないので issue #xxx が解消するまで待ち
- xxx の場合にエラーになるので対策する必要があるんだが、そういう仕組みがまだ存在していない
- model の a-h 始まりまで終わったので、残りの 200 ファイルやる
- 先に Route53 に移管する必要があった……。
- xxx の場合の動作確認まだしていない
- 全員のローカル環境を更新させるのが面倒
とかとか、完成させていない理由を書いてある。*1
TODO を書いておくことによって、次にブランチ一覧を眺めたときに「これ何だっけ」というのが減って、1 年後でも続きの作業ができるというのがオススメポイントです。異動/退職するときも、あと何をしたらいいのかが書いてあるので、続きを人にやってもらいやすい。
秘蔵のブランチを片っ端から _wip 付けて push するお仕事をしている(ゴミの押し付けとも言う
— Takafumi ONAKA (@onk) March 30, 2018
ブランチに限らず、あまりヨシヨシできていないリポジトリは TODO.txt を書いて commit しておくと、次に作業をするときに当時の記憶が蘇りやすい。僕はよく TODO.txt を読んで脳のワーキングメモリに乗せた後に git reset HEAD~1
して作業開始しています。
*1:1 行で済むことは滅多に無いです!それぐらいの障害物なら完成まで持って行ける