え〜、そんなに短いんだ。
フレームワーク(FW)よりビジネスのほうが長生きなので、フレームワークに依存しないコードが書きたいな、と。
もっともFWのサポート期間とはなんだろう?期間が過ぎても動くものは動いているし、PHPとかアップグレードしなければ(!)大丈夫なはずだし。脆弱性は最初から入ってないという仮定も必要だけど。本来、プロジェクトで一番大事な部分はFWというより、それ以外の部分だと思う。それ以外の部分、と言うのはMVCでのモデルというところか。あるいはDDDで言うドメインというところか。
その部分をどう書くのかな、と最近考え始めた。
■DDDとDCI
モデルやドメインといえばDDD。あるいはDCI。
ただDDDとかDCIなど、どうPHPコードに落とせばいいのだろうか?どう書くと、仕様が分かりやすい、テストしやすいコードになるのか。今のところさっぱり。
■FWとのインターフェース
モデル・ドメインを分離して書いても、フレームワークとのインターフェースは必要だ。ここがFW依存になるので、何かを挟む、ということになるのだろうか?
モデルを、ひとまずエンティティと考えれば、エンティティとフレームワークとの接点は、
*Persistence、
*Validation、
*Presentation、
それと、DBやHTMLフォームはテキストベースなので、エンティティとテキストの変換機能も必要かも。これぐらいあれば、簡単なことなら出来そう。
■ちょっと作ってみた
この1年以上PHP5.3で新フレームワークを開発していたら、受注した仕事がPHP5.2ばかり。ということで、PHP4時代から使っているライブラリで開発する羽目になった。
頭にきたので、FWモデルを書いてみた。
モデル内で、PHP4時代(コンストラクターがクラス名とかw)のオブジェクトをnewしまくりながら、ぱっと見は格好良いクラスに見せかける。もうテスタビリティとか無視してざざっと書いてみた。
時間がない中で、わけの分からんことを始めたので、方針はブレるしで、ひどいコードだが、考え方自体は気に入ってます。
ただ、このまま機能を追加してゆき、コードや複雑性が増えてゆき、結局FWモデル自体がフレームワーク化してしまうという未来が見えなくもないですが。
0 件のコメント:
コメントを投稿