官术网_书友最值得收藏!

  • 敏捷開發(紀念版)
  • (美)羅伯特·C.馬丁等
  • 819字
  • 2023-08-31 19:23:40

簡單設計

XP團隊總是盡可能把設計做得簡單和富有表現力(expressive)。此外,他們只關注本輪迭代中計劃完成的用戶故事,不擔心將來的事情。相反,他們在一次次迭代中演進系統設計,讓當前系統實現的用戶故事保持最優的設計。

這意味著XP團隊不大可能從基礎設施開始工作,他們不會優先選擇數據庫或者中間件,而是選擇以盡可能簡單的方式實現第一批用戶故事。只有當某個用戶故事迫切依賴基礎設施時,才會考慮引入。

下面有三條XP咒語(mantra)可以用來指導開發人員。

1.首先考慮可行的、最簡單的方案

XP團隊總是盡可能尋找針對當前用戶故事的最簡單的設計。在實現當前用戶故事時,如果可以用平面文件(7),就不去用數據庫或者EJB(企業級Java Bean);如果能用簡單的套接字連接,就不去用ORB(對象請求代理)(8)或者RMI(遠程方法調用)。多線程能不用就不用。團隊盡量考慮用最簡單的方法來實現當前的用戶故事。然后,挑一種能實際得到且盡可能簡單的解決方案。

2.其實將來也用不著

你說得都對,但我們知道總有一天需要數據庫,總有一天需要ORB,也總有一天得去支持多用戶。所以,我們現在就得為這些東西預留位置,是吧?

如果在確切需要基礎設施之前拒絕引入會怎么樣呢?XP團隊會對此認真考慮。他們開始時假設不需要那些基礎設施。只有當有證據或者至少有十分明顯的跡象表明現在引入這些基礎設施比繼續等待更加劃算時,團隊才會引入基礎設施。

3.有且只有一次

不能容忍重復的代碼。只要發現重復的代碼,他們就會來個“消消樂”。

導致代碼重復的因素有很多,最明顯的是用鼠標選中一段代碼后到處粘貼。一旦發現重復的代碼,XP程序員就會定義一個函數或基類來消除重復的代碼。有時,兩個或多個算法非常相似,但又有些微妙的差別,XP程序員會把它們變成函數或者運用模板方法(參見第14章的)。無論源頭在哪里,只要發現重復,就要消除。

消除重復最好的方法是抽象。畢竟,如果兩種事物相似,必定可以通過某種抽象來進行統一。消除重復的行為會迫使團隊提煉出許多的抽象并進一步減少代碼中的耦合。

主站蜘蛛池模板: 吉木乃县| 都兰县| 荆门市| 甘德县| 安阳市| 庆元县| 石首市| 靖远县| 华亭县| 百色市| 东兰县| 信宜市| 巨鹿县| 鹤庆县| 北碚区| 宜城市| 包头市| 沅江市| 江源县| 澜沧| 乳源| 秭归县| 堆龙德庆县| 凤冈县| 汤原县| 望江县| 卓尼县| 武定县| 安远县| 扎囊县| 香港| 明水县| 丹巴县| 防城港市| 锡林浩特市| 东平县| 呼和浩特市| 济南市| 安国市| 宁安市| 尼玛县|