捨てるものは分ける、捨てないものは固める
背景
scrapboxを長く使っていて、pageが増えた割に、あまり読み返しても意味がなかったpageの割合が増えてきた
scrapboxからHelpfeel cosenseに変わっているが、renameが面倒なので旧名を使っている
こういったようにメンテされない文章も多い
gitから得た着想を元に、pageの分け方を再考しつつ、システム境界について一般化したい
結論
すぐ捨てたいもの、Archiveするものは分けて切り出しておいたほうが扱いやすい
Archive先は1箇所のほうがいい
捨てないものは、固めておいたほうが扱いやすい
分けるのは最後
scrapboxのpageの分け方
pageを分けてしまうと、一覧で見えないので半分捨てたような形になってしまう
十分な情報量が1 pageに蓄積したら、そこで初めてpageを分けるとよい
システム境界も同じ
PoC、proto typingとして一回作ってみる程度のものは、repositoryレベルで分ける
本番レベルで使うものは、極力分けずに始める
十分複雑に、情報量が多くなってきたら、まず論理的に分ける
十分検証してから、システムを物理的に分ける
チーム境界も同じ
最初は1チームで何でもやる
十分1チームの業務が増えてきたら、まず実態として役割を分ける
十分検証してから、チームというラベルを分ける
Shopifyでも似たようなことが言われている
リファクタリングやリアーキテクトを行うベストなタイミングは、できる限り遅く、です。なぜなら、あなたは開発をするとともに、システムとビジネスドメインについて常に学んでいるからです。ドメインの専門知識がないうちにマイクロサービスの複雑なシステムを設計するのは、多くのソフトウェアプロジェクトが陥りやすいリスクの高い行動です。Martin Fowler氏によると、「私が聞いたことのあるほとんどすべてのケースでは、ゼロからマイクロサービスシステムとして構築されたシステムは深刻なトラブルに見舞われています…たとえアプリケーションが十分に価値のあるものになると確信していても、マイクロサービスで新しいプロジェクトを始めるべきではありません」。
翻訳 Shopifyにおけるモジュラモノリスへの移行 #Ruby - Qiita