nishio: KozanebaのソースコードをScrapbox的に管理してる気がしてきた。つまり従来はソースコードはディレクトリによって階層的に整理されていたが、Scrapboxの「リンクをたどる」に相当するVSCodeで「定義にジャンプ」と、Scrapboxの検索欄でのタイトルサジェストに相当するVSCodeの「ファイル名ジャンプ」とそしてそれでも見つからない時の全文検索とがあると、階層構造の重要性が下がる。 VSCodeのリファクタリングメニューのMove to new fileは、ScrapboxのNew pageに相当する。 コードの中の再利用可能な部分や、文章の中の個別言及したい塊を別のページに切り出すコマンドだ。

nishio: で、興味深いのは、Scrapboxは階層構造を全廃したのに対し、僕はソースコードのディレクトリ分けを今でも使ってるということ。階層からたどることがメインのたどりつきかただった時は階層をキチンとメンテする必要があり、人間がキチンとメンテできないから破綻しやすかった。しかしメインでないなら階層構造を雑にメンテしてても「たどりつくための選択肢が増えた」ということでありデメリットが少ない。 new pageでくくりだした時にデフォルトで元のページと同じディレクトリに生成される。 「緩やかに関係ありそうなものがまとまったグループ」になる。

nishio: VSCodeは(少なくともTypeScript環境は)そうやってくくり出したファイルを事後的に別のディレクトリに移動した時に、インポート文を更新してくれるから「移動してもリンクが切れない」「だか気軽に移動できる」「だから最初にどこに作られるかはあまり気にしなくて良い」となる

nishio: なのでWikiシステムに階層構造を入れても、実はよいのではないか。重要なのは「階層をたどる以外の見つけ方」がメインで使えるくらいサクサク動くことなのでは。

nishio: 「FooからもBarからも、呼び出される関数quuxをどこに置くか」→どこにおいても定義ジャンプで飛ぶから問題ない