在軟件的設計過程特別是架構設計和概要設計過程中
我們不難發現不太可能在整個項目中
一刀切
而采用完全一致的設計細節
一些設計細節常常需要考慮系統可能的性能
系統潛在的變化包括和外部系統的潛在接口(隨著一個客戶有多個系統建立起來
在基礎數據等方面重復勞動大量出現的情況下更加突出)等
這些變化在設計初期不太可能全面而明確的被識別
這個時候
設計上就存在一些不那麼確定的實現
常常體現為更多的接口和代理
有時候需要
考慮
到項目組成員的個性風格
甚至有時候不得不對項目組成員采取的
遷就
方式(如項目巨大壓力下又無法有足夠人手同時也無法說服成員的時候)
這個時候
設計上
可控的靈活性
就體現為提供必要的可選實現
那就意味著在一個設計中存在多條道路來完成同樣的工作
有時候也會存在本來某條設計實現路徑是更好的
但是
礙於項目的實際
你無法期望整個團隊都按照這個更好的思路去做
但是
也可能某些團隊的成員可以有足夠的時間和精力這樣子做的
這個時候
完整的和不完整的選擇實現都共同存在
而且同在一個設計路線上
只是扮演了不同的角色有不同的優先順序
在這些時候
在軟件設計中采用色彩化的設計就是很好的做法
其實
色彩化的設計
說的簡單就是在設計中標示
必需實現
關鍵設計
性能設計
可選實現
等
使得設計能夠有優先級或者更好的關注點
比如
設計人員常常就需要實現或者指導實現
關鍵設計
性能設計
來保證系統的穩健和性能等
這些實踐往往決定了系統的質量根基
必需實現
表明了無論如何項目成員都必須完成的工作
這是強制性的或者說沒有選擇的
可選實現
是滿足優秀的團隊成員的需要的
她體現了設計人員的最佳期望
但依賴於團隊的優秀成員來完成(指在編碼速度和軟件追求上更高的成員)
采用這種色彩化的設計
效果是明顯的特別是對
關鍵設計
性能設計
的識別容易讓團隊更明晰需要面對的技術點從而更好的實現
必需實現
則對團隊加以必要的約束保證團隊盡量的協調
而
可選實現
則指明了系統優化的道路
在實踐的過程中
我對
關鍵設計
性能設計
常常采用綠色來標示
對
必須實現
采用紅色標示
對
可選實現
采用特定設計方式下的默認色彩
也可能還有更細化的色彩標示
但上述的色彩常常已經確定而不會代表不同的意思
設計方式可能是UML
Word
但這些色彩的應用都不會受到影響
色彩化的設計
簡單但是實用
歡迎您也使用她
From:http://tw.wingwit.com/Article/program/Java/hx/201311/25605.html