プラットフォーム開発

2003年5月18日

リファクタリングを使ってプラットフォームを構築できますか?

よくある質問ですが、簡潔に言うと、はい、プラットフォームを構築する際にはリファクタリングが非常に役立ちます。ただし、関係する問題はプラットフォームの運用状況によって異なります。特に、プラットフォームの構築に使用する方法によっても異なります。

この疑問を持つ人の一般的な問題は、プラットフォームのユーザーに対して、安定したインターフェイスが不可欠であるというものです。インターフェイスを変更すると、広範囲に渡って悪影響が出る可能性があります。私の用語では、プラットフォームには通常、パブリッシュドインターフェイスがあります。パブリッシュドインターフェイスは、公開インターフェイスを変更するリファクタリングがかなり難しくなるため、通常はリファクタリングにとって厄介なものです。

この問題が軽視されることの1つの理由は、プラットフォームに対して行うリファクタリングの多くはパブリッシュドインターフェイスには影響しないためです。非パブリッシュド境界内では、自由にリファクタリングできます。残念ながら、通常、言語では公開インターフェイスを明確にマークすることはできません。そのため、通常は追加の作業を行って、適切に公開されたセクションをインターフェイスに設定する必要があります。

プラットフォームのスタイル

リファクタリングの役割は、プラットフォームの構築方法に大きく関係しています。多くの人はFoundationPlatformの概念を持っています。この場合、可能な限り早くAPIを修正して公開する必要があります。つまり、上記で述べた制約により、リファクタリングの有用性は低くなります。

しかしながら、FoundationPlatformが必ずしも最適な方法とは限りません。私はこの方法でプラットフォームを構築した多くの失敗を見てきました。HarvestedPlatformの方がはるかに優れた方法であると思いますし、HarvestedPlatformを構築するときは、リファクタリングが非常に有用です。