2009年2月25日 星期三

T23 養成所有設計都符合準則的習慣

定義元件的佈置規則藉以增加檢測程度的同時,意味著開發人員必須花時間依規定放置程式碼。這意味著開發的效率“可能”與設計準則的數量成反比。許多有能力的設計者對於設計準則的規範都有相當的排斥感,明明可以很快地完成功能卻為了額外的規則而變得綁手綁腳,甚至感覺設計的靈感因之而減少許多。

單就開發與測試而言的確是這樣子,依循設計準則的代價是多花數倍的時間撰寫程式碼,但是結果都是一樣;這也就是之前主管為什麼不想多投入人力作好設計的原因。但是從其他角度來看,元件的對應、封裝與切割可以使設計更有彈性,層次的繼承、佈置與統一能夠讓產出一致化,使用關聯、追溯與收集,都是在需求之外可以得到的好處。

以快速著稱的設計者大多無法利用文件清楚描述他的想法,要求畫出程式流程圖時感覺似乎是想要他的命一般,對於使用的關聯亦無法百分之百地確認。如果能夠發現“快速設計”的代價是犧牲掉這麼多有意義的結果,設計人員應當願意好好佈置好自己的程式碼,讓所有的人都可以快速地明白自己的想法。

開發程式時沒有設計準則的話,大家可能都任意地依照自己的想法做事;規定好設計細節之後,每段程式碼的放置都需要檢查是否符合規則。利用工具程式檢查設計產出是否符合規定,就像在不能闖紅燈的地方安置警察,讓每個人都知道不能做違法的事;儘可能鋪設全面的檢查點,就像檢測食品時用最詳細的檢驗方式,讓黑心產品無法過關而被刷下。

設計人員對自己產出的所有設計都戰戰兢兢地都依照準則放置的話,達成元件化的軟體工廠的目標是指日可待的。

沒有留言:

張貼留言