brokendoor(xpchina) 2023年09月15日
1 簡單是關鍵
簡單的設計總是花較少的時間完成複雜的任務。因此記住要總是做有可能完成的最簡單的事情。如果你發現乙個事情很複雜,用簡單的事情替換它。與其在複雜的**上消耗更多的時間,還不如用簡單的**替換,這樣更快,而且更省事。盡可能使事情簡單化,在執行計畫期間,盡可能不增加新的功能。要記住保持簡單的設計是長期堅持的工作。
2 選擇系統比喻
選擇系統比喻是為了通過對類和方法的一致命名,為團隊提供一致的畫面。你的物件名稱對於系統整體設計的理解和**重用是非常重要的。如果能取乙個名字,使它容易猜出來,並且還是正確的,那麼你就是乙個能節約時間的人。選擇乙個涉及廣泛的物件命名的方法而沒有詳細描述,很難獲取對於系統的認識。
例如克萊斯勒汽車公司薪水支付系統象生產線那樣被建造了。福特汽車銷售系統象材料清單那樣被構造了。使用基於你本身領域的美麗的比喻,使它為人所知。但是,除非它相當簡單,別選美麗的比喻。
3 crc 卡片
使用crc(class,responsibilities,collaboration)卡片來作為團隊的設計。crc卡的最大價值在於允許人們從思考過程模式中脫離出來,更充分的專注於物件技術。crc卡允許整個專案組對設計做出貢獻。參與系統設計的人越多,能夠收集到的好主意也就越多。
個別的crc卡被用來描述物件。物件的類寫在卡的最上邊、責任在左邊下邊編成表,每個責任的右邊是協作的類列表。因為以前crc會議是大家全力參與的,通常只需要很少的有類名的卡片,實際上沒有寫出完整的卡片,所以,我們說「要寫」。這個例子顯示咖啡製造商問題的一部分。
crc會議繼續進行,一些人模擬系統和物件交流,把訊息傳給其他的物件。通過一步步處理弱點,問題很容易地被解決。設計選擇可以通過做建議的模擬實驗迅速地做出決定。
如果你發現很多人在講話並且移動卡片,立即簡單的限制站著的人數,把卡片移到下一人。當乙個人座下的時候,其它的人可以站起來。自由討論會議這項工作,常常發生的情況就像當艱難的問題最終被解答的時候,開發組變得吵鬧一樣。
crc卡受到的最大的批評之一是缺乏有記錄的設計。crc卡使設計看上去顯而易見,所以這通常不需要。應該要求永久性的記錄,每乙個類一張卡,每個卡作為文件詳細記錄和保留。一旦預想已經建立和執行,在一段時間內,設計被人記住了。
4 道釘解決方案
為了對技術或設計的難題的做出解答,產生道釘解決方案。道釘解決方案是乙個**潛在解決方案的非常簡單的程式。構造乙個系統,僅僅專注於檢查出現的問題,忽略所有其它的方面大部分的道釘不會保持的足夠好,所以,要打算扔掉它。使用道釘的目標是減少技術性問題的風險,或者,增加使用者故事 評估的可靠性。當技術性的困難阻礙系統開發的時候,在這個難題上配備一對開發者,給上一星期或兩個星期的時間以減少潛在的危險。
5 不要過早地增加功能
保持系統的整潔,把你猜想的額外的素材以後加入。只有10%的額外素材得到使用,所以你在浪費90%的時間。因為我們明白怎樣增加,或者我們想使系統變得更好,所以我們都被**到現在增加功能而不是以後。現在增加功能,似乎更快。但是,我們需要常常提醒自己:實際上我們不需要它。額外的功能將總是使我們開發變慢,而且浪費我們的資源。把眼光放到將來的需求和額外的適應性上。只關注於今天的進度。
6 及時地重新構造
在軟體變的不適用以後很長時間,我們的算機程式設計師仍然保持設計不變。我們繼續使用和重用很長時間沒有維護的**,因為在某種方式下還能繼續工作,我們害怕修改它。但是,這樣去做真的值得嗎?極端程式設計(xp)認為不是這樣。當我們除掉冗餘,刪除未使用的功能,更新陳舊設計的時候,我們進行 重新構造(refactor)。貫穿整個專案生命週期的重構工作節約了時間,保證了質量。
為了保持設計的簡單,避免不必要的混亂和複雜,及時重構。保持**的簡潔、明了,以便它更容易理解、修改和擴充套件。確認每件事情都被表示一次,並且只一次。結果,花更少的時間產生更好的系統。
重構有幾個要點。首先,很難,因為你必須能夠放開你想象中的完美的設計,接受你通過重構偶然發現的設計。你必須認識到你想象的設計只是好嚮導方向,實際上馬上會變得陳舊。
為了吃到大量的樹葉,毛蟲是乙個完美的設計,但是,它不能找到配偶,它在計畫找到它的同類以前,必須把自己變成乙隻蝴蝶。放棄你認為系統應該是什麼或不是什麼的想法,試著留心在你面前出現的新的設計。
設計原則與思想 設計原則
如何理解單一職責原則 srp solid原則並非單純的1個原則,而是由5個設計原則組成,他們分別是 單一職責原則,開閉原則,裡式替換原則,介面隔離原則和依賴反轉原則,依次對應solid中的s,o,l,i,d這五個英文本母 單一職責原則的英文是single responsibility princip...
設計原則 開閉原則
開閉原則的含義是對擴充套件開放,對修改關閉。意思就是在遇到新的需求或者變動的時候,提倡對原 擴充套件使其滿足新的需求,不提倡修改原 來達到目的。乙個專案不可能在開發完畢後就一成不變了,它總會有新的需求或者對老的需求進行更新。這樣就要盡可能的遵從設計原則中的開閉原則,這個原則告訴我們,要盡量避免對原 ...
設計原則 開閉原則
怎樣的 改動才能被定義為 擴充套件 怎樣的 改動才定義為 修改 怎樣才算滿足或者違反開閉原則?修改 意味著違反開閉原則嗎?開閉原則是最難理解,也是最難掌握,同時也是最有用的一條原則。這條原則並不是看幾篇文章,理解了其概念就能掌握和靈活應用的。要想深入理解,掌握這條原則,需要大量的實戰。開閉原則,英文...