2008年4月22日 星期二

O02 絕對不要直接寫程式來作設計

人腦是沒法放置太多資料的,除了極少數過目不忘再加上記憶持久的人,細節的部分到最後不是忘掉就是亂掉。在想要在程式裡執行一個動作的時候,如果遇上記憶沒法串連的情況發生, 放置的動作就有可能不在它應在的位置或是使用到不正確的方式。

程式的設計應該是嚴謹的,每種不同功能的相關動作必須要有一致的風格與寫法,而且必須在整個系統內予以貫徹。每一個動作的使用錯誤都會在切割於這個關聯上時造成必須改動的影響,這是因為在這個切割面上所露出方法的使用是不平整的。一個設計良好的系統,會在Use Case、Tier與Layer的三度空間中儘可能地放置整齊的切割面。

動作責任歸屬與使用方式的錯誤,因為功能還是達成所以可以通過所有的功能測試,但如果到系統開發後期才發現從某個切割面上必須調整,那可不是好玩的事;因為在那之上又堆疊了許多設計,任何下層的方法變動都會連帶造成使用它的方法必須修改。

在一次UI的設計上,欄位希望在輸滿指定長度時將游標移到下一欄位,但是開發的人寫成輸滿長度後要再多打一個字才會移動游標,後來為了改回正確的行為模式修改了很久,因為牽涉到得先檢查最後一字元是否合法以及移動游標時間點的衝突,而多花了不少時間。

維持各個可能切割面露出方法的正確性與一致性,這是直接寫程式作設計時無法滿足的需求;因此我強烈建議在每一個可能切割的地方先行檢驗其Interface與結構。

沒有留言:

張貼留言