2008年4月19日 星期六

N19 唯有先為他人著想,自己方能受惠

看別人寫的程式困難點其實在於找不到入口與看不懂處理邏輯,尤其在Component的實作只是直接從Interface後把所有的東西堆積在一個Class裡面時。

Component的設計雛型在D06時已經形成,MVC的設計方法將之修改為MF(Flow)A(Action)C並將之各自定義在專用的Interface裡。以類似SOA的觀念把Flow拉出來,對於設計者而言就變為只要挑選Action裡的方法組合為處理流程,再加上Properties改由外部傳入而不使用內部設定檔、有狀況時只拋出Exception而不在內部作任何處理,讓我的Component具有更高的reuse特性。

這樣的Component想法在2008/04時對開發團隊說明,參加的人也認同我的作法可以解決一些目前還難以解決的設計問題。我特別說明這個作法在設計時因為要把原來直接撰寫的程式拆解到不同Class的方法裡,需要直接撰寫大約五倍的設計時間,但是適當切割的作法可以讓修改除錯的時間減少一半以上,且能應付大多數的需求改變。

設計的人在定義系統時多做點,可以讓未來使用方便而且容易維護,自然可以節省未來親自處理的時間。但是習慣快速寫作的人是否能夠接受這樣的作法,尤其是多花自己時間的作法呢?如果內心的“設計”僵化到難以改變,也許人就已經定型為那個樣子了。

這張圖是我最後定型的Component內部結構。

沒有留言:

張貼留言