blog.fuktommy.com

まあ継承に関しては「親クラスへの機能追加が頻繁に発生しないこと」が重要だと考えている。そのためには充分に枯れた概念(例えばWebのMVCフレームワーク)の実装だったり、 ごく限られた責務のみ実装...

まあ継承に関しては「親クラスへの機能追加が頻繁に発生しないこと」が重要だと考えている。そのためには充分に枯れた概念(例えばWebのMVCフレームワーク)の実装だったり、
ごく限られた責務のみ実装していることが必要になると思うのだけど、後者を実現するためにはmixinとしての多重継承がないと実用的ではなさそう。

共通部分を親クラスにまとめようという発想は悪手。共通部分は必要に応じて増えていくものだし、共通だと思ったら実は例外があったりして複雑になる。具体例を挙げると、親クラスにメソッドを1つ追加するときには、全ての子クラスが同名のメソッドを持ってないことを確認する必要がある。

特定のプロダクト向けのライブラリ群、あるいはフレームワーク的なものを作って、どう育てていくかというに興味がある。というか、あった。改めて考えてみれば、そういうのが必要になったのは今まで関わってきたプロダクトが少々特殊で、データの持ち方が普通のRDBではないためActiveDirectory系統の技術が活用できないとか、簡単ログインや携帯の画面のためにコントローラの共通部分を厚くする必要があるとか、ビューの機能を厚くする必要があるとか、まあそういう事情があったわけだ。

そういう環境を離れてみると、枯れてる技術の組み合わせで多くのことが実現できるんだよね。そういう事情があってフレームワークを作っていくことにあまり興味がなくなってしまった。

一方で、パッケージソフトウェア的な方向に興味が出てきた。共通ライブラリを作って複数の場所で使うというのと実質的にはあまり変わらない気もするけど、1つのソフトウェアを作って複数の場所で設定だけ切り替えて使えればいいんじゃないかな、みたいな。そこまで一般化したソフトウェアの設計は困難だろうとは思うんだけど、まあやってみたい話ではある。
Copyright© 1998-2014 Fuktommy. All Rights Reserved.
webmaster@fuktommy.com (Legal Notices)