http://www.martinfowler.com/bliki/FrameworkBuilding.html

フレームワーク構築にリファクタリングは使える?

よくある質問です。簡単に言うと、答えは「使えます」。リファクタリングは、フレームワークの構築に大変有用です。ただし、フレームワークの寿命次第なところがあります。フレームワークをどのように構築するのかという点に関わってくる部分もあります。

こういった疑問を抱く人たちは、フレームワークのユーザーは安定したインターフェイスを必要としていると考えており、リファクタリングなど行えるはずはないと思っています。たしかにインターフェイスを変更すると影響は甚大です。私なりの言葉で言うと、フレームワークは公布済みインターフェイスを備えているのです。公布済みインターフェイスのリファクタリングは面倒です。というのも、そのインターフェイスは既に一般に公開されているため、変更が困難だからです。

これがあまり問題にならないのは、フレームワークに対して行うリファクタリングはたいてい、公布済みインターフェイスに影響を及ぼさないからです。non-publishedの境界内では、自由にリファクタリングできます。ただ残念なことに、これが公布済みインターフェイスだというふうにマークすることは言語の仕様上できません。そのため、公布済みインターフェイスの部分をきちんとセットアップするという余分な仕事をしなくてはいけません。

フレームワークのスタイル

リファクタリングの役目は、どのようにフレームワークを構築するかに関わってきます。多くの人々は、FoundationFrameworkを構築するでしょう。この場合、インターフェイスをできるだけ早くフィックス、公開する必要がります。前述のとおり、これではリファクタリングはあまり役に立ちません。

FoundationFrameworkが必ずしもベストではありません。この方法でミスった事例を数多く見たことがあるからです。思うにHarvestedFrameworkのほうが良いでしょう。これですと、リファクタリングは最強に役に立ちます。

コメント

  • 2004-04-16 (金) 15:05:05 ‘’[[holic]]’’ : “Published Interface” と “published interface”で後者を公開インタフェースくらいにしてしまうと、訳語がすっきりしますかね。”Public Interface” は固有名詞?
  • 2004-04-16 (金) 16:00:16 ‘’[[kdmsnr]]’’ : 少し変えてみました。
  • 2004-05-08 (土) 00:01:26 ‘’[[名無しさん]]’’ : 「FoundationFrameworkはダメだというわけではありません」には違和感があります。文法(?)的にも話の流れ的にも、「必ずしもベストじゃない(良いわけじゃない)」と言っているような気が。