中規模以上のプロジェクトのコードを書く時の留意点
個人的なメモ。
階層化したら、それを自分の手で図として描く。
データフロー図を自分の手で描く。
リアクティブなモノを作るなら、状態遷移図(オートマトン)を描く。
1構造に1責務。処理速度の良しあしを動く前から考えない。
構造とコンテキスト(願望)は切り分けて考える。
”構造”がフレームワークのような他者から与えられたモノなら尚更。
構造からあたえられる、数式や形式(データ構造)を組み合わせて願望を作る。
自分の手で描くという点は割と個人的には重要な気がしていて、draw.ioで作図するよりも、なぜか自分の作っているプロジェクトの理解度がより精密になる。
おそらく、たとえばVRChat(バーチャル上で)でろくろを回すよりも、実際に粘土に触れながら教室でろくろを回す方が、そのろくろに対する理解度(完成品へのイメージなど)が良くなるのと似ていると思う。
そういう意味で、draw.ioだと手の動作が”クリック、スワイプ、文字入力”の三種類しか無くなるとかも関係ありそう。
理想は集合のp→qのようなラップ構造を考えて情報の排他性と階層構造を一対一対応させたいが、 現実はそんなこと考えているとずっと手が動き始めないので 個人的には逆効果。とりあえず作ってみて、嫌に感じたらリファクタリングすれば良い。
このリファクタリングの際に手書きの方が、図の修正がしやすい。
形式言語とオートマトンで学んだ状態遷移図は、自分で何か作る時に非常に良い概念でありツールだと肌身で感じます…
思考を数式に落とし込むという意味で。
分岐木も思考の整理として良いツールだと思います。
人の脳はやりたいことのイメージを想像以上に並列的に考えていて、そのA,B,C…をごっちゃにしてる結果、次なる仮説や問題定義ができてないので…