blog.fuktommy.com

迷ったらラップしとけ的な 実装とか、実装に近い設計部分なのだけど、かっちりと作るべきところと、遊びを持たせて作るべきところがあって、逆になりがちなところでもあるし、気をつけていきたい。(べき、は...

迷ったらラップしとけ的な

実装とか、実装に近い設計部分なのだけど、かっちりと作るべきところと、遊びを持たせて作るべきところがあって、逆になりがちなところでもあるし、気をつけていきたい。(べき、は言いすぎだが)

かっちりと作るべきなのは個々の機能で、これらは1関数1機能の原則を守るべきだし(どっちもfunctionだ)、引数の型も厳密にしておくべき。PHPだとDBをselectした結果だの、XMLやJSONをパーズした結果だのが配列(連想配列)で扱うことができるので、つい引数も連想配列にしてしまうが、型だけみてると、なんというテーブルを、どんな風にselectした結果なのか見えてこない。面倒なように見えるがオブジェクトでラップすべき。

一方、遊びを持たせるのはどこかというと、個々の機能を連結するところ。ここをついかっちりと作ってしまうことが多い気がする。目の前の問題を解決するためのフレームワークを作るのだ、という発想になったら危険信号。目の前の問題は常に変化するはずだし、フレームワークはそう簡単には変化させられない(と思うんだけどねえ。設計うまい人はまた違うのかな)。なんかのインタフェースを実装したオブジェクトがこんな値を返すんだ、と思ってたら、メタ情報を持たせられないとかね。XMLをパーズした結果の連想配列を返すようにしてたけど、やっぱりXMLファイルのタイムスタンプも欲しいとかなったらどうするのか、とかとか。こういうのもやっぱりオブジェクトでラップしておくと便利だったりする。
Copyright© 1998-2014 Fuktommy. All Rights Reserved.
webmaster@fuktommy.com (Legal Notices)