Hello Work
二年くらい前から hello work という名のマイクロプロジェクトをたまにやっている。大したものではなく、実験や評価用の書捨てコードを書くたび "hello" という単一の git repository に入れて GitHub あたりに置いておくだけ。
新しいテクノロジを試してみる時、よく知らないAPIの使い方を調べるとき、ちょっとしたベンチマークをとるとき。こういうコード、むかしは ~/tmp で適当に作業したり、逆にわざわざ独立したレポジトリを作ったりしていた。前者は書いたコードがすぐどこかに行ってしまう。後者はちょっと面倒なのと、GitHub のレポジトリが増えすぎて収拾がつかなくなる。そこで間をとり細かい書捨てコードをまとめて置く場所を作ってみた。書捨てと言っても時々あとから見直したくなる。そのときコードが決まったところにあると便利。場所が決まっているとコードを書きはじめる敷居も下がる。
もともとは、何か規模のあるコードを書く元気はないけど世の中で流行ってるものを触っておきたい、せめて hello world くらいはしようと始めたもの。だから hello work. 試してみたいテクノロジが目についたら hello work レポジトリの issue に登録しておき、時間のあるときに hello world を書きコミットして issue を閉じる。
最初は単一の hello レポジトリを使っていたものの issue として記録した試したいテクノロジたちがどんどん経年劣化していくのに気づき、今は毎年レポジトリをリセットしている (hello2015, hello2016, hello2017.)
いまは新しいテクノロジを試すよりベンチマークや API の調査など地味な書き捨てが増えた。その結果を活かすのはアプリやサービスなど大きく複雑なコードなのだけれど、実験はスクラッチで小さいコードを書く方がラクだったりする。結果のコードも手元に残しやすいし。
プログラミング力のあるプログラマなら、新しいテクノロジを試すにも単一レポジトリに見合うだけのコード、TODO リストや Wiki くらい規模のあるものを書いたり、逆にちょっとした量の実験コードを躊躇なく書き捨てるのだろう。自分は力が足りず、こういう助けが必要になった。
新しいテクノロジを試すといっても Hello world くらいじゃ何もわかんないでしょ、という指摘はまあまあ正しい。一方でインストールや設定が面倒だとかやたら遅いだとかドキュメントが陳腐化して合ってないだとかエラーメッセージが暗号的だとか、わかることも少しはある。何もやらないよりはいい。だから細かい時間はあるもののまとまったコードを書くガッツがない虚弱諸氏は hello work からリハビリするのも良いと思う。細かいコードを書いてるうちにまとまったコードを書きたくなることもあるし。