2008年5月4日 星期日

O14 設計與重構就像光與影的共存

設計的人雖然已經作出可行的系統結構,但是實作者是否有與設計者一致的觀念是一個問題,設計者對於這個系統的想法能不能傳承給實作者是一個問題,另外實作者撰寫程式時臨時發生的錯誤又是一個問題。

對於實作上較沒經驗的人,即使提供已經設計好的Method,實作時還是會發生責任錯置的狀況。在大陸的專案裡,有個集合物件本身擁有多個子物件,在需要記下所有子物件的現在狀態的功能實作時,把狀態記錄在集合物件而非要求各個子物件記錄自己的狀態。這是一個很明顯的責任錯置。

即使是設計相當有經驗的人只要一時閃神放錯地方,未來還是得重構。在設計的時候,我起初把數種不同元件的event處理都放到相同的Package裡,後來裡面Class實在太多太雜,只好依所屬元件再分開到幾個package存放,使其成為一對一的對應。

設計是把完成功能的動作放置到最適合的地方,但是沒人設計時能一直保持分工正確的,也沒有人寫程式不會出錯的,因此我們必須不斷地檢視自己所作的設計並予以調整。設計與重構就像是光與影的共存時常會發生,這也是我一直堅持要設計出只需移動方法就能完成重構的系統架構的原因。

沒有留言:

張貼留言