文芸的プログラミングとかソースとコードを関連付けるとかその辺の2
以下ごっちゃなのでまとめたい 2023/01/28
2として切り出した
まとめると、
いつもどおりフリーライティングしながらあたりをつけていっている
wiperとfixerの2つのスタンスを導いた
各々について具体案をひねり出そうとしている
wiper
fixer
まともな案出てない
sta.icon
ソースに埋め込むか、ポインタを張るか、専用言語で書いてソースやコードに変換するか、どっちも書ける言語を開発するか、
おそらく「成果物」と「検討残骸」「残骸のサマリー」をどう紐付けるかゲー 全部入れると邪魔くさい
分けると対応取れなくなる
ポインタで辿れるようにする?
それとは別に「そもそもわかりやすく書け」もある
DDDもそうだよな(こっちはプログラミング対象となる概念(ドメイン)を言語化してつくってく) 一つ浮かんだ
たとえばDDDでいう「ユビキタス言語に登録されるような用語」レベルでトピックつくって、そのトピックから該当コード引けるようにする
コードには // @topicABC みたいな注釈つけておく
するとこのツールが全部追跡して、書いてある部分全部をトピックページ側にリストアップしてくれる
コミットごとにとか、ソースコメントつきましたとか、issueとか
あれだな、material layerをwatchして、更新があったらknowledge layerに追加するみたいなWatcherモデルは避けられない気がしてきたsta.icon*3
紐づける情報の品質も分かれそう
「知りたい情報はごちゃごちゃでも良い」「見つかれば良い」「見て大体わかればよい」
整ってなくてもいい
Wiperと呼ぶことにするsta.icon
work in progressのwip
常に未完成的なニュアンスのつもり(Scrapboxユーザーなら通じるはずだ!) (fixの対義語はpendingだけど、「保留」はちょっとニュアンス違うよな?)
「整った情報源を見たい、使いたい、拠り所にしたい」
メンテが必要
Fixerと呼ぶことにするsta.icon
----
これはスタンスの違いとして重要なので名前つけますsta.icon
fixerとwiperでとりあえず。
sta.icon 手段ざっと上げていくぞ。既存手段。
ドキュメンテーションコメント
文芸的プログラミング
ドキュメントとコードを一緒に書く
たとえばScrapboxを使えば可能
まあScrapboxは実行環境がしょぼい(Scrapbox上で動けるjsしか書けない)のでこれだけでは開発は完結できないが
文芸的コミット
コミットメッセージで説明する
文芸的diff
ソースの断片を個別につくって、そいつ各々に解説をつけてく
正直これ自体は何をどうするかわかんね(終盤参加マン)
示唆に富むコメントは色々あって、
ライブコーディング時のコンテキストをなんとかして残したい
画像コメントなど画像でメモするのよくやるよねー、でも残せないよねー
コード書く人が暗黙知を残せるとは限らない
nishio.iconさんの「プログラミングでScrapbox的活動をする」
VSCodeを拡張するイメージ
ローカルで動くWiki?
howmのリバイバル
sta.icon
手段考えるぞ
wiper
2レイヤー + コードにポインタを書く案(wiper)
まず「コードのレイヤー」と「メモのレイヤー」を導入する
コードのレイヤーはコードそのもの
srcフォルダに置いたりするよね
メモのレイヤーは、たぶんこんな感じ
メモや画像をガンガンぶちこむ
memoフォルダとか
メモレイヤーでは、メモに対して「トピック」をつける
トピックはタグでもいいし、ファイル名でもいい
トピックAがついたメモ1は「Aに関する話」という含意を持つ
コードレイヤーでは、コメントにて「トピックだけを」記す
code:「kirano algorithm」というトピックを指定している例py
import os
def func1(a, b, c):
p = a+b*13
q = p+c
answer = 3*(p+q)
return answer
---
要するに、メモレイヤーの特定のメモ(たち)へのポインタを、コードコメントの形で張る
---
メモレイヤー詳細
repo1/
src/
test/
memo/
たぶんこういうディレクトリがそのうち慣習になると思うよ(大げさsta.icon)
memo/配下にはメモがおらおらって並ぶ
markdownファイルでもいいけど、スケールしづらい
画像コメントもガンガン残したい
(sta.iconはVSCode内で完結できる仕組みをイメージしている(のでVSCodeの例とかも書く))
あるいはScrapboxの当該ページを開く、みたいにして丸投げしてもよいねsta.icon
いや考えすぎ?sta.icon
2レイヤー + コードには何も手を付けない案
どうやってメモレイヤーから該当コードを特定するか。そしてコード見てる時にどうやって「そいつに該当するメモレイヤーの当該メモ」にまでありつくか
---
コードレイヤーの特定コード部分を示す識別子(permalink的なもの)
メモからコードへのポイント
メモにpermalink的なものを記せばいい
コードから「そのコードの部分に対応するメモ」へのポイント
メモレイヤーに問い合わせるしかないか with コードのpermalink的なもの as a parameter
俺の直感では「たぶんこれ」言うてるねsta.icon*3
なんつーんだろ、メモとコードを関連付ける部分の仕組みが一番ムズイ感じがある……?sta.icon
Scrapboxでページ名変えたときにリンク元が追従されるけど、このアイデア何か使えない?
もっとアトミックにすればええんかなという思いつき
ミニマップポインタ?
アバター
サムネイル
(ポインタって単語がどっからでてきたかもうわからんち
メモリーパレスならぬコードパレスみたいな
コードに場所の概念を導入して上手いこと配置してなんかこう覚えやすくするっつーか
(語彙力
sta.icon
fixer
が、浮かばんねぇ……
---
徹底的なリーダブルコード
「書きやすいし、読みやすいプログラミング言語『Readable』みたいな
まあこれでもどのみち「why」が残らないのでダメなんだけどsta.icon*2
役割設ける感じの何か
プログラマー …… コード書く人
トランスレーター …… コードに対するドキュメントを書く責務を負う人(これを導入する!)
で、プログラミングとはこいつら二人組でつくることを意味するのだ!みたいにする
ペアプロみたいなアプローチだなsta.icon
案外いけるんじゃね?
いやダメか?
プログラマー側が、トランスレーター側との言語化コミュニケーションに耐えられる気がしない
あるいはトランスレーター側が技術的に雑魚すぎてプログラマーのスピードについていけないかもしれない
レビューとの付き合い方を変える路線
たとえば高頻度にするとか?
なんかなー、従来のレビューにとんでもない固定観念が潜んでる気がするんだよなぁsta.icon
最初から高密度にちまちまやっていくのが一番結局は良い、みたいな余地が潜んでいる気がするというか……