アーキテクチャの議論を実装なしで語るのは、非職人のダメなところ。

さいしょに、机上の空論を防ぐために
科学では実験。
ソフトウェア工学では実装。

アーキテクチャの評価は何でする?http://www.atmarkit.co.jp/im/carc/serial/arcthink/04/01.html


この手のアーキテクチャ議論の ネックになる もしくは、語られない部分は

1.人員
2.実質的なコストパフォーマンス
3.つきあい

の3点。

一番大きいのが1の人員。
たとえば、F1ってすごいよね。というアーキテクチャーにしても、それを作れる・使いこなせる
F1ドライバーがいないなら、アーキテクチャーはカローラなどの大衆車にせざるを得ない。


現実問題として、現在の人員で、もしくは、追加予定の人員で、開発可能かどうか?
という議論なしに、アーキテクチャーを議論してもしょうがない。


また、どうように、学習コストや潜在バグの可能性の話もある。


どんなに、すぐれたアーキテクチャーであろうとも、
学習コストが高すぎで誰も使えないとか、

学習コストまでふまえると、既存のアーキテクチャーの方がよいとか。
いうのはよくある。


また、潜在バグの可能性もあり、新しいアーキテクチャーなどは、
論理的には優れているけど、実装はショボかったりする。



こういうことをいうと、学習コストは1度払えばいいのだから、10年間では得をするとかそういう話もあるが
10年後には別なアーキテクチャーができているという議論もあるので。

あくまで対象とすべきは、今実装する物と近々に実装する物である。
とすると、いま抱えている人員にとって、どんなアーキテクチャーがベストか?という話になる。



2.コスト。
人員の話や、学習コストの話、さらには、ハードウェアの物理限界の話。サーバークライアント連携の物理限界の話もある。


クライアント単体でみると、優れたアーキテクチャーでも、サーバーとクライアント逢わせると、優れていない(サーバが輻輳する)ようなアーキテクチャもある。


ようするに。

人員のコスト・学習コスト・ハード・ソフト・期間・サーバー・クライアントなどなど要素数が多いにもかかわらず

アーキテクチャの議論でされるのは、その中のわずか、数ファクタで、話をする人が得意なところだけ。


よって、


結局的には、実装された物からくる経験は、実地というリアルによりすべての要素が検討された後なので、
聞く価値があるが、実装されてない物は、未検討の要素が多すぎて、コストパフォーマンスの要素がトータルで信用できない。


実装してから言ってくれ。




3.つきあい。

どんなに優れたアーキテクチャーでも、資本関係とか、お客様のつきあいとかで使えないこともある。
アーキテクチャーは政治です。

優劣以外にもファクターはいっぱいあるんです。