最近、仕事で関わっているのが「Strutsをベースにした独自フレームワーク」です。
あちこちに独自フレームワークってありますね。独自フレームワークとなってしまうと色々と覚えることが多くて困ります。
いっぽう、「Strutsで」とだけ決まっているケースだと、決めなければならないことがたくさんあって、これまた困るのですが、これは「開発者が慣れている方法を選べる」という自由度があります。
独自フレームワークを作る場合には、重厚なフレームワークにしないで欲しいものです。
色々な機能を盛り込むのではなく、特化しまくり、決め打ちまくりで作って欲しい。
「製造で多少コストが掛かっても、保守やメンテなど全体を通して、プラスになればよいのだから、製造で手間がかかることだけに注目するな」
というのは分かるのですが、それを指示される製造メンバーは、かなりモチベーションが下がります。
(大体、ほんとに全体的にプラスになるのかって言う話)
独自フレームワークは、ライトでサクッと作れるものにして欲しいと思うのでした。
追記
インターフェースと実装クラスを分けて作り、利用するプログラムはインターフェースを使うという設計。
それはいいんだけど、せっかく実装に依存しない作り方になってといるはずなのに、インスタンス生成の部分を、ファクトリメソッドを上手く作ってなくて、「あまり意味ないのでは?」って思うときがあります。
MyInterface my = (MyInterface) factory.create(MyInterfaceImpl.class);
こういう設計、どうなの?と思ってしまう。
依存関係はこの部分だけになっているから、実装を変える場合には、ここだけ変えればよいという利点はあるものの、
せっかくの実装非依存な設計が、Classを引数とすることで無駄になっている。
DIか、ルール的に自動インスタンス生成されるほうが良いと思うのだけど。
(依存部分が、この一箇所になっているだけマシなんでしょうが)