HarvestedFrameworkとFoundationFramework (blikiより)

使えるフレームワークを作るには、フレームワークの構築から始めるのではなく、アプリケーションを作ることから始めよう。アプリケーションを作るときには、汎用的なコードを開発しようとしないで、上手に分割され設計されたアプリケーションを作ろうと頑張るものだ。

ひとつアプリケーションを作ったあとで、同じような要求をもつほかのアプリケーションを作る。こんな時は、最初と二番目のアプリケーションの間にある重複に気を配ろう(★)。重複を見つけたら共通領域に入れてやる。この共通領域がフレームワークの前段階になるんだ。

駆け出しのころは前もってFoundationFrameworkを作ってしまうことが多かったです。使えるフレームワークや使えるアプリケーションの拡張ポイントは、2つのアプリケーション(2つの機能でもよい)を作ってみて、その共通点を抽出することで把握・実現できると思います。ただし、僕の場合、FoundationFrameworkによる「失敗体験」が、HarvestedFrameworkを構築するときの大きな力になっています。

結論:過剰な設計による失敗が、シンプルデザインへの悟りの入り口