[PHP-users 34843] Re: PHPの実装方法について

Ryo Hayashi ryo @ spais.jp
2009年 11月 16日 (月) 23:46:45 JST


林と申します。

> 1.データベースをサービス単位で分割する

サービスではなく、データベースのテーブル単位で分けたほうが汎用性、再利用
性の面で有効だと思います。
逆にサービス単位でデータベースを分けてしまうと、新たな機能が加わるたびに
サービス間の連携を実装レベルで検討しなおさなくてはなりません。
これではそもそも仕様という前提の必要性がなくなってしまいます。

サービスという概念はあくまでも運用的な視点でのみ明らかな要素のはすです。
システム的本質はサービスの根底となるテーブル単位でしか計れなくないですか?
仮にユーザーを定義しているテーブルがあったとして、それをサービスごとにつ
くるのであればそもそも同一化する必要はないわけですよね。

> システムを横断してコンテンツを提供するため、データベースとのデータ操作を共有
>  出来るようシステム単位「データクラス」を作成し、別のシステムからデータ操作をおこなった
>  場合でも単一の結果が得られるようにします。

これこそ正にモデル依存の設計ではないですか?別のシステムからデータ操作を
行っても単一の結果が得られるように実装するならば、システムという概念自体
足かせでしかないはすです。
モデル操作の組み合わせの結果、ひとつのシステムが表現できると考えた方がよ
り合理的だと思います。

そういった面で飯塚さんの仰られるフレームワークをベースにした実装が最も合
理的な選択だと僕も思います。
繰り返しますが、システムは仕組みであって、一連の実装を連続して組み合わせ
た結果起こる事象の結果に過ぎません。
テキストを書き込む機能が存在するので”掲示板”というシステムと表現できるだ
けで、視点を変えれば Twitter になったり、tumblr になるわけなのではないで
しょうか。

そこを前提としてとらえてしまうと、破綻が生じるはずです。なぜなら複数のシ
ステムを立ち上げると言う事は、即ちそれぞれのシステムに加える事の出来ない
要素があるからです。だからこそ複数のシステムで表現しようと思うわけであっ
て、理想的には一つのシステムで全てが表現できればいいはずです。

そう考えると表向きは別のシステムだけど、内部的には一つの仕組みの見せ方を
変えているだけ、と考えた方が理にかなっているのではないでしょうか。

僕の言葉では少し足りない部分がありますので、以下にあげるページをご一読下
さい。
http://old-journal.sooey.com/2008/03/26/717/

飯塚さんが仰られる MVC が今検討されている仕組みに合理的にマッチする事が
ご理解いただけると思います。


┏━┯━┯━┯┯━┓
┃─┤─│─├┤─┨
┠─│┌┤││├─┃
┠─┴┘└┴┴┴─┨
┃     林  亮     ┃
┃  ryo @ spais.jp  ┃
┃http://spais.jp/┃
┗━━━━━━━━┛


PHP-users メーリングリストの案内