看過微雨心晴(X-Brave)的對架構(gòu)、框架、基礎件三者關系的論述后,我陷入了一陣不安和恐慌之中。
發(fā)現(xiàn)我原來對軟件框架的理解還是那樣的淺溥,并由此想起,應該不只我一個是這樣,我想大多數(shù)的開發(fā)人員在從普通的程序員向架構(gòu)設計轉(zhuǎn)型時都會遇到的這樣的問題,在闡述的這個問題之前有必要將這三都的關系描述一下(這里就直接引用微雨心晴(X-Brave)的描述):
從層次結(jié)構(gòu)來看,軟件架構(gòu)是從整體上來看軟件設計開發(fā)的,框架通常是從較高的層次來實現(xiàn)或者被選擇來實現(xiàn)軟件的架構(gòu),基礎件/類是更小的軟件元素,只是更加的強調(diào)通用。 三者之間存在微妙的關系,以至于確實容易引起人們的混淆。實際上,試圖完全的割裂它們即使不是錯誤的做法,也常常不是良好的設計:三者之間存在緊密的依賴關系.
我很贊同這種說法,現(xiàn)在我來描述我以前設計系統(tǒng)框架時的問題所在:
最初在第一次擔任框架設計時,總是從功能類出發(fā)。
即:先考慮系統(tǒng)有哪些復雜而又頻繁使用的類,對這此類進行分包,歸類,并命名為UTILS。
然后再是對系統(tǒng)分層,分包,幾乎沒有多少中間接口,相臨層之間總是緊耦合的調(diào)用,造成了層與層的改動牽連邊過大。
寫出來的框架就像工具包一樣,由一大堆看起來沒有聯(lián)系的類堆積而成。
后來,經(jīng)歷過一次大項目后,開始關注一些建模理論以及開源框架,對先前的框架設計思想產(chǎn)生極大的沖擊,開始關注系統(tǒng)的整體搭配,接口解耦,代碼重用,自動化控制程度有所提高。
但感覺問題還是依然很嚴峻,主要表現(xiàn)在:對系統(tǒng)的把握層次仍然偏低(從代碼角度出發(fā)),缺乏對系統(tǒng)整體的抽象能力和建模能力。對零散的業(yè)務規(guī)則難以抽象出很好的業(yè)務模型并以與系統(tǒng)架構(gòu)結(jié)合起來。
總的來說我經(jīng)歷了兩個階段:1。以公用基礎件為核心的積木式開發(fā) 2。以局部框架結(jié)構(gòu)(實現(xiàn))為起點,分層整合的泛射式開發(fā)(最明顯的問題就是層層之間不成一體,項目越大越到后期就越松散變得越來越難以控制)
目前,開始將目光從系統(tǒng)業(yè)務層面出發(fā),以架構(gòu)為主,逐步向框架結(jié)構(gòu)設計過渡的方向發(fā)展,但這時常令我感到力不從心,畢境理論歸理論,現(xiàn)實中還需要豐富的實踐經(jīng)驗去累積。
posted on 2005-05-20 16:44
狂人思維·成都 閱讀(1527)
評論(3) 編輯 收藏 所屬分類:
JAVA技術(shù) 、
J2EE應用 、
工作間