學(xué)過軟件工程的都知道,軟件產(chǎn)品的生產(chǎn)周期是一個經(jīng)歷若干階段的漫長過程,包括需求獲取 - 設(shè)計 - 開發(fā) - 維護等等。
需求階段 - 總想考慮到所有的問題,或是一切按合同辦事。但在現(xiàn)實中根本不得能,因此很多公司開始提倡“隨需而變”的能力,希望快速的響應(yīng)用戶的需求變化
維護階段 - 總希望自己開發(fā)出來的東西一勞永逸,永遠不要再產(chǎn)生任何麻煩,產(chǎn)生了麻煩也不要找到我。甚至有些項目組的人員開發(fā)出來一大堆不成熟的產(chǎn)品、項目后撒手不管,走人了事,毫無職業(yè)操守,亦是對自身行業(yè)聲譽(至少是國內(nèi)IT服務(wù)提供商聲譽)的一個打擊。真正的項目開發(fā)不應(yīng)該這樣,一定是非常易于維護的,能夠快速地找出問題的所在,或是新需求切入點的所在,然后解決
很明顯,前面提到的兩個問題都要也只能通過設(shè)計和開發(fā)來解決。問題來了,怎樣開發(fā)出的軟件才能快速地響應(yīng)需求,易于維護?可以有很多不相沖突的說法,比如解耦,比如通過POJO封裝數(shù)據(jù)等等。這些東西流行開來以后,很多人有疑問,為什么我的項目中一定要用這些框架?我不用這些框架也可以快速的開發(fā)出我要的功能,而且更加簡單,等等。如果孤立地從設(shè)計和開發(fā)的角度看這些問題,這種說法并沒有錯誤,但是如果從整個軟件開發(fā)的生命周期來看,則不是這樣。當(dāng)然,這里還有一個是否“過度設(shè)計”的trade-off在里面,不過那又是另一個話題了。
再說說各種各樣的平臺吧,它們和框架不同,軟件體系結(jié)構(gòu)中有一種架構(gòu)模型即層次模型,我們現(xiàn)在的TCP/IP協(xié)議棧即屬于這種模型,我們的軟件對于平臺產(chǎn)品的依賴是一種朝向穩(wěn)定的依賴,就好像我們在調(diào)試代碼時往往不會去調(diào)試操作系統(tǒng)API的bug一樣,因此在開發(fā)這種平臺層次級別的產(chǎn)品時就沒有必要再去采用那些為了保障“企業(yè)應(yīng)用”Web軟件生命周期中所采用的方法了,完全可以用最基礎(chǔ),最底層的手段。只要能夠做到高效、穩(wěn)定即可。因此,平臺中間件產(chǎn)品的開發(fā)必須和應(yīng)用軟件產(chǎn)品分開來看,雖然它們可能都在用Java這種編程語言。
@2008 楊一. 版權(quán)所有. 保留所有權(quán)利