GHawk

          敏捷軟件開發 讀書筆記 (1)——設計的目標

          軟件設計是一種抽象活動,設計所要實現的是產出代碼。就這一點來說,任何人都會設計。但是,正如我們日常生活中所耳聞目睹或親身經歷,設計有優劣之分。

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

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

          所以,設計應該盡可能多地照顧到維護和變更。

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

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

          但是,作為一個開發人員,對手中的代碼應該有適當的敏感性。畢竟,這些代碼是你親手創造的,誰不希望自己的作品得到眾人的贊許?或許能換得一次加薪升職的機會^_^ 退一步,這可關系到寶貴的休息時間啊。所以,開發者應該對自己的產品有這樣一種意識:及時修正設計中不合理的地方。

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

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

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

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

          評論

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

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

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

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

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

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

          就是Martin C的那本^_^  回復  更多評論   

          主站蜘蛛池模板: 南岸区| 开原市| 大洼县| 苏州市| 京山县| 南安市| 石狮市| 宁晋县| 滦南县| 曲靖市| 将乐县| 阜新| 延庆县| 广汉市| 武汉市| 定兴县| 增城市| 方正县| 砚山县| 五河县| 资中县| 吉林省| 蒙山县| 兴化市| 临湘市| 陇南市| 兴和县| 漳平市| 增城市| 金沙县| 静宁县| 称多县| 西安市| 安塞县| 布尔津县| 华亭县| 泸西县| 蒙阴县| 漠河县| 乌苏市| 岑巩县|