【適当】モチベーションを維持しながら開発する方法
注: このブログでは内容の正しさを検証する気がないので真に受けると後悔するかもしれません
エモくなったのでCIが頑張ってる間に書く
🎉 一週間かけてやっとCI通過🎉
— coordeは起きれない (@coord_e) 2018年12月26日
今回1週間ぐらいCIが通らなくて病んでしまったので(なんてか弱い心!)、そこからちょっと教訓じみたものを捻り出しました
それは何かというと: (自分からの距離)x(1サイクルにかかる時間)が大きい環境で試行錯誤をしない
※主観しかないので、任意の文の先頭に"coordeの場合は"をつけていただければ幸いです。
自分からの距離 is
コードが走る場所と自分の、心理的な距離
イメージとしては ローカル<コンテナ内<リモート<CI
になる
このパラメータは、
- シェルが使いたいときに使えるか
- こちらからの操作に対するレスポンスが早いか
- ファイルシステムにアクセスできるか
- 物理的な距離
- など
で評価される気がします。知らんけど。
1サイクルにかかる時間 is
結果が得られて、次の行動を決定するまでにかかる時間
。多分。
ビルドするのに時間がかかるプロジェクトならこれが大きくなるし、Dockerイメージのビルドとかもでかい。
これが大きくなる最悪のパターンとしては機械学習がある(と思う)。
(自分からの距離)x(1サイクルにかかる時間)が大きいこと is
CIで機械学習する
とか、CIで大きなプロジェクトをビルドする
とか
どうやって小さくするのか
まあCIでビルドするな!なんて無理な話なので、近くの環境でうまくいくことを保証してから遠くに持っていけばいいと思う、するとCIで試行錯誤する範囲が小さくなるので...
なので僕の場合はDockerイメージに固めて、ローカルでうまくいったDockerfileをCIに使わせることで心の健康を取り戻しました。やったね。
まとめ
Dockerを使い始めたら何もかもがうまくいくようになりました ここ一週間の苦労が嘘のようです (10代男性)
— coordeは起きれない (@coord_e) 2018年12月26日
ブログではなるべく敬語ではなく普通に書こうと思っていたんだけど、難しい...やめるか