2008年2月17日 星期日

L01 架構設計像鋪路, 涵蓋越廣就讓後人越方便

系統的設計是把一個一個的Use Case與其中的Activitiy依照順序放置到軟體的結構裡,並利用程式的邏輯把它們串連起來以達成完整的功能。對一個Use Case來說,只要按照規則執行過所有的Activity都可以做到,但是要如何放置Activity卻也是需要設計的。

Activity不管怎麼放都能達成功能,但是能輕易地reuse或是快速配合需求的變更卻不是容易的事。我們可以回想自己寫過的程式裡,有過多少次對於介面、物件與方法的合併、拆解與抽取呢?有時候以為某個方法的作法應該不會再有變動而固定下來,卻在不久的將來發現某個問題或是變更需要將那個作法一分為多而硬生生地重新拆解內容;拆解的同時又會發現許多原本也使用這個作法的其他功能又得再想過一次,為了符合新作法的幾個變更結果又造成更多地方需要調整……。

就自己而言類似的問題時常遇到,有時剛寫好的程式在回想時就會隱隱感覺遇到某些情況時將無法應付,修改後也沒法解決全部而以功能可以正常就好來安慰自己。設計的彈性是在維持功能正常前提下同樣必須具備的,把所顧慮到的可能變更納入系統的設計是有能力者應盡的責任, 不做的話其他更沒有經驗的人是完全沒有辦法做出來的。

沒有留言:

張貼留言