generated at
複雑な物の作り方
井戸端/villagepump/@takker#6015834b4bb2e2000062cc60に書いていたけど思ったよりまとまったので転記しておく
Scrapboxみたいなのを実装するで作っているようなゴールが遠い、もしくはとても複雑な物を作るコツはいくつかありますkuuote
あくまで自分のやり方ですが
かなり近い所にゴールラインを設けてそれを何度も更新していく
これの手前にVimで実装されたパーサー、Goで書かれた静的サイトジェネレーター、/villagepump/誰でも気軽にすぐ編集できるWebに書いてあるshokaiさんのツイートそのままのシステムを作って捨てています
prototypeを小さく作って捨てるのがやはり一番ですよねtakker
/villagepump/rapid prototypingは自分が見た手法の中でもかなり影響を受けてますねkuuote
作らないと何もわからないし何も始まらないので捨てるつもりで色々作ってます
常に動く物を維持する
これはRui Ueyamaさんが言っていた
意欲を維持するためにはこれが一番だそう
作業が遅いのでどうしても破壊しないといけないことがあり、安定版のスナップショット撮って使ったりしてました
ここが自分の弱いとこかもtakker
本番環境をそのまま作り変えるので、しばらくぶっ壊れて使えない状態が続く
/takker/takker-scheduler-2の修正時も、本番環境と開発環境を分けずにやったため、しばらく生活リズムがめちゃくちゃになった。今もメチャクチャだけど
細かく問題を分解する
一気に作ろうとすると絶対に頓挫する
考えることが多すぎて爆発する
例えば選択処理を作るとしたら、マウスクリックの処理、範囲の保持、描画と色々考えることがありますが、これを一気に考えるのは/villagepump/特殊能力者でもない限り難しいです
まずは後先をあまり考えずにマウスクリック処理だけを作ります
半分くらい作り終わったら後先も意識している、やっぱ出戻りは痛いからね
これが終わったらコミットして範囲を保持する部分だけを作る
描画は全くせずにconsole.logするとかそんなレベル
これが完成して初めて描画に手を出す
まあ実際の所集中できないので並行して考えていたりはするけど