這篇文章在一定程度上是對前面幾篇文章的一個總結。
一個成功的通用框架必須是為廣大具有不同的需求、技能和背景的開發人員而設計的。框架設計師面臨的最大挑戰是為這些多樣化的用戶群提供即簡單又功能強大的框架。
- 要設計即功能強大又易于使用的框架。
80/20原則。 要把精力集中在框架中使用最為頻繁的部分(20%) - 要明確地為具有不同編程風格、需求、技能以及使用不同編程語言的開發人員設計框架。
- 要了解哪些使用多語言框架的廣大開發人員。
我們往往會只為自己設計API,而沒有清楚地考慮用戶的真正需求。
漸進框架
針對不同的使用場景,為不同的開發團體提供不同的產品,這種多框架的方法在某種程度上說是成功的,比如MS有Visual Basic程序庫,有Win32程序庫,也有MFC和ATL,但它也存在嚴重的缺點:多框架使得使用某個框架的開發人員難以將他們的知識轉移到下一個技能等級或使用場景(這通常需要另一個框架)。
- .NET框架所做的是把VB、MFC、ATL、ASP等這些模型統一起來。無論開發人員使用何種編程語言或者選擇何種編程模型,可供使用的API始終都是一致的。
一個更好的方法是提供漸進框架(Progresive framework)。 從無到有,慢慢積累知識,并應用到以后更高級的使用場景中去。 - .NET框架就是一個漸進框架。
漸進框架的目標是覆蓋廣大的開發人員,但并不是所有可能的開發人員。
這也應了沒有十全十美這句話:不可能滿足每一個開發人員的需求。
框架設計的基本原則:
對用戶而言,真正的開發效率來自能夠輕易地創造非凡的產品,而并非來自能夠輕易地創造垃圾。
- 場景驅動設計原則
- 低門欄原則
- 自說明對象原則
- 分層架構原則