IT業界で気づいたことをこっそり書くブログ

くすぶってるアプリエンジニアが、日々気づいたことを適当に綴っていきます(受託→ベンチャー→フリー→大企業→ベンチャー→起業)

プログラムの設計思想には、全体的なものと部分的なものがあるっていう話(その1)

前と別軸の話。

 

otihateten.hatenablog.com

 

これも来年に向けて一つのテーマにしたいです。

設計には全体に及ぶ設計(喩えるなら戦略?)と、部分に適用できる設計(喩えるなら戦術?)があります。
この2つは非常に性質のことなるものですが、なぜか世間では同じく「設計」とかそういう類の言葉で同一視されてしまいます。

 

全体的な設計は、支配的な設計

全体に適用できる思想というのは大体の場合たかだか1つです。
移行期に複数の設計が混ざるケースもありますが、理想的には1つです。
なのでチーム開発の場合、誰かが適当に変更して良いものでは有りません。

 

中間的な設計ものもある(支配度・影響度)

ある一部分に適用するだけだけど、結果的にその影響が全体に及ぶみたいな設計もあります。
私はこの尺度を「支配度」「影響度」「感染力」などと勝手に呼んでいたりします。

もちろんこれは密結合のときの方が起こりますが、疎結合にしてもなお影響度の高い設計というのは生じてしまうものです。
(例えばModelの設計を変えたら全体がガラッと変わってしまいます)

 

研究課題

  • 支配的な設計の悪いところ
  • 支配的な設計との付き合い方
  • どのように支配的な設計を評価するか
  • ある変更の影響度はどの程度かを分かるようにする
  • 設計思想を部分に留める方法
  • 支配によるチーム開発の制御法
  • 引き継ぐときに必要な情報

ここらへんですね。