適切に分節することは難しい
最初から完璧にmoduleを分けて実装するというのは基本的に不可能で、
書いていく中で抽象を発見し、分節し、疎結合にするということができる
知識として知ってる、以前に書いたことがある、既にパターンが見えている
そうであれば、最初から適切に(?)分節できる
アーキテクチャの本とか読んでそのまま応用できないものこれが大きい
著者は経験豊富で、その辺のパターンが見えていても読者はそこに到達できていない
両方の方針を取れることが理想的か
この部分は団子、この部分は適切なmodule分けをしているよ、というのが分かるようにする
団子から徐々に、moduleを切り出せるようになっている
一つの団子の規模を小さく抑えることも意識する
団子が大きくなりすぎると、誰も触れない改修不可能な状態になる
団子は団子でも、小さい団子の集合にできればいい
自分が全てを把握できる範囲であれば、ぐっちゃぐちゃでもそこまで問題にならない
packageごとに分業していれば割と実現できる
が、チーム開発、属人性を落とすことを考えると理想的ではない
「価値を出していること」のみが唯一の言い訳になりうる
長期的に見て、コストのほうが勝るなら、負ける
コストというのは、責任者の開発速度、属人性、諸々
実際、きれいなコードの方がノイズが少なく、創発する際にも邪魔にならない
頭の中のモデルと、コードで表現されるモデルが一致している方が、速く投写できる
これがうまくワークするためには、以下のような仕組みが必要
そもそも分節が乱雑でもスケールする
Scrapboxとかはその典型
そもそも整理を目的としない
勝手に繋がる
適当に書いても最終的に見つかる
気付いた時に即座に修正が可能である
プログラムはこっち、特に静的型付言語の場合
構造を入れることが難しい、ということか?mrsekut.icon