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