文芸的プログラミングの限界
takker.iconはUserScriptを文芸的プログラミングで作っているが、scrapboxで書ける便利さより不便さのほうが上回ってきた
ScrapboxでのUserScript開発はスケールしない
とてもつらいこと
version管理ができない
/programming-notes/scrapbox-history-slider@0.2.0と/programming-notes/scrapbox-history-slider@0.2.1のようにタイトルにversionを入れることでなんとかやりくりしているが、大幅な変更しか捕捉できない
ある時点でのコードとその修正内容を明確に記録できない
手戻りが難しい
ある時点で動いていたコードに手を加えて壊してしまったとき、ある時点まで遡ることが難しい
無理やりversion管理しようとすると情報が分断する
現状では、codeを書いてあるページと同じページに更新履歴兼作業ログとして知見をためている
例:/programming-notes/scrapbox-history-slider@0.2.0#60e06d711280f000007cfbed
これはいくつかの点で問題がある
情報の弁当箱になっている
/programming-notes/scrapbox-history-slider@0.2.0というタイトルから、wheel eventでpreventDefault()がうまく動かないことや依存配列にpropsも入れられることなどの情報が書き込まていることを読み取ることができない
versionを変えると更新履歴も作業ログも分断される
新しいversionはDuplicate this pageを使ってhard copyしている
こうするしかない
更新履歴や作業ログをそっくりそのままcopyする
同じ情報が複数箇所に書き込まれるというやばい状態になる
どれが最新なのかわからなくなる
新しいページで新しい作業ログや更新履歴を書き始める
古い更新履歴等が死んだページになる
じゃあどうするのか
codingはGitで管理し、試行錯誤の過程やknown issue、実装したい機能などをscrapboxに書き溜めるのが一番よさそう
要はNotaのscrapbox teamがやっているであろう方法を採る
小規模programmingなら問題ない
即興で短めのコードを書いて試してみる程度ならscrapboxに書いた方が簡単
e.g. /nishio/ReactNを露出してCypressから使う
Denoで即実行できる
事例
/nishio/Movable Ideas
これを行う上で、scrapboxで汎用的に使えるmoduleなんかはグループでつかえるrepoに置くのがいいんじゃないかと思ったtakker.icon
GitHub Organizationを作る提案をしたのはそれが理由
/villagepump/2021/06/17#60ca2b9c1280f00000eb1f58
Scrapboxでプログラミング#6022970fe5172d0000b146ed
コードだけgitで管理するのがまともそう
これが一番じゃないかと思えてきたtakker.icon*3
2023-02-25 /takker/code2svgの誕生により、更に現実的な方法となってきたtakker.icon*4
Git.icon
GitHub.icon
Deno.icon