GHawk

          敏捷軟件開發(fā) 讀書筆記 (1)——設(shè)計的目標(biāo)

          軟件設(shè)計是一種抽象活動,設(shè)計所要實現(xiàn)的是產(chǎn)出代碼。就這一點來說,任何人都會設(shè)計。但是,正如我們?nèi)粘I钪兴勀慷没蛴H身經(jīng)歷,設(shè)計有優(yōu)劣之分。

          從項目管理的角度去理解,設(shè)計是為了滿足涉眾(Stakeholders)的需求。顯然,一個設(shè)計應(yīng)該滿足客戶對系統(tǒng)的功能及非功能需求。但單是滿足了這一點,并不能稱為一個好的設(shè)計。因為開發(fā)者同樣屬于涉眾!而開發(fā)者的需求又是怎樣的呢?至少,應(yīng)該有以下幾條吧:

          • 老板希望軟件交付后,不應(yīng)該有很高的維護(hù)成本。如果開發(fā)人員為了維護(hù)而經(jīng)常出差或者加班且久久不能投入新項目,顯然,換了誰是老板都不愿意這種事情發(fā)生。
          • 開發(fā)人員呢?誰愿意放棄和家人朋友而拼死拼活在單位加班,總是有這么多麻煩事纏著你,煩不煩哪!
          • ……等等

          所以,設(shè)計應(yīng)該盡可能多地照顧到維護(hù)和變更。

          為了兼顧各戶滿意和維護(hù)成本,設(shè)計應(yīng)該不斷挑戰(zhàn)其終極目標(biāo)——松耦合。不管是XP或UP,這個目標(biāo)都不會改變。OO設(shè)計中的五大原則,其根本目的就是降低組件間的耦合度,避免牽一發(fā)則動全身的現(xiàn)象發(fā)生。降低耦合度不僅能夠提高軟件內(nèi)在的質(zhì)量,還能大大減少不必要的編譯時間、減少向版本控制系統(tǒng)提交源碼的網(wǎng)絡(luò)開銷……

          如何鑒別設(shè)計的這一指標(biāo)?軟件工程中有專用的度量:CBO(Coupling Between Objects),那是由公式計算出來的,也有很多工具支持,值得一試。(聽過幾次李維先生的講座,他經(jīng)常拿Together的度量功能炫耀^_^)

          但是,作為一個開發(fā)人員,對手中的代碼應(yīng)該有適當(dāng)?shù)拿舾行浴.吘?,這些代碼是你親手創(chuàng)造的,誰不希望自己的作品得到眾人的贊許?或許能換得一次加薪升職的機(jī)會^_^ 退一步,這可關(guān)系到寶貴的休息時間啊。所以,開發(fā)者應(yīng)該對自己的產(chǎn)品有這樣一種意識:及時修正設(shè)計中不合理的地方。

          敏捷過程告訴我們:在代碼“有味道”的時候進(jìn)行重構(gòu)。“有味道”是代碼正在變質(zhì)的標(biāo)志,很遺憾,能夠使代碼保持原味的防腐劑還沒發(fā)明。為了保證代碼質(zhì)量,及時重構(gòu)是必要的。這就像在燒烤的時候為了防止烤焦,你得坐在爐子前經(jīng)常翻動肉塊一樣。

          如何聞出代碼的味道?認(rèn)真學(xué)習(xí)一下OO吧,別以為OO很簡單,就是繼承+封裝+多態(tài),誰都會。即使是書中記述的五大原則,想要運用自如,也得多感覺感覺才行。很多時候,我們不知不覺就把蛆蟲放進(jìn)了代碼中……

          好了,下一篇:OO五大原則

          posted on 2006-01-06 18:17 GHawk 閱讀(1597) 評論(3)  編輯  收藏 所屬分類: 學(xué)習(xí)筆記

          評論

          # re: 敏捷軟件開發(fā) 讀書筆記 (1)——設(shè)計的目標(biāo) 2006-01-06 21:24 Programmer's Life

          恩,OO系列的文章是很有必要寫寫的,OO說起來簡單,但我覺得現(xiàn)在大部分的仍然停留在面向過程  回復(fù)  更多評論   

          # re: 敏捷軟件開發(fā) 讀書筆記 (1)——設(shè)計的目標(biāo) 2006-01-08 02:05 水狐

          《敏捷軟件開發(fā)》我也有一本、影印版的。
          發(fā)現(xiàn)自己E文夠爛、看不明白啊~~~

          不知道樓主看的是不是 Martin C 的那本~~  回復(fù)  更多評論   

          # re: 敏捷軟件開發(fā) 讀書筆記 (1)——設(shè)計的目標(biāo) 2006-01-09 21:23 GHawk

          就是Martin C的那本^_^  回復(fù)  更多評論   

          主站蜘蛛池模板: 中江县| 灵山县| 集贤县| 漳平市| 夏河县| 满城县| 基隆市| 沽源县| 沾化县| 葫芦岛市| 临泉县| 孝昌县| 财经| 获嘉县| 萝北县| 平阳县| 彭山县| 香格里拉县| 巴南区| 合作市| 荥经县| 永兴县| 吉首市| 清镇市| 临潭县| 扶风县| 锦屏县| 昌吉市| 崇礼县| 淮南市| 海口市| 萝北县| 惠安县| 石渠县| 谢通门县| 寻乌县| 罗源县| 屏东县| 江北区| 金华市| 江安县|