記者:在我參加各種技術大會,包括去年北京Java10周年大會時,跟許多技術人員交流、聊天的時候,他們都反映Apusic的啟動速度非?,很快就啟動了,和同類產品相比非常突出?磥硎褂谜邆儗λ焖賳拥奶攸c非常喜愛。據我了解,Apusic的代碼只是其它產品的幾分之一,是因為這個原因嗎?你設計時是怎么想的?
袁紅崗:很多人不理解,為什么Apusic和其他產品比起來代碼規模上要小很多,但使用起來并沒有感覺到有什么功能缺失呢?這里要涉及到軟件使用上的一個“二八原則”,即80%的使用者通常只會用到一個軟件20%的功能。象微軟的產品個個都是巨無霸,但對某個產品真正做到完全精通的可以說寥寥無幾。以Word為例,平時我們只是用它來寫寫文檔,很多高級功能其實根本用不上。在Apusic應用服務器的開發上我們也是遵循同樣的原則,我們將盡可能地將整個軟件產品最重要的20%的功能做好、做完善,以保證大多數用戶的需求,剩下的80%功能將根據需要逐步增加。譬如國外產品很早就有的集群功能我們最近才推出來,并不是我們沒有能力實現集群功能,而是在我們看來,集群并不是解決性能問題的最好方案,只有在真正大并發請求下集群才會展現它的優勢。因此,我們把集群功能歸結為低優先級需求,只有在其他方面的性能和穩定性有了很大提高后再來考慮集群。
另一個使Apusic運行輕便的重要原因在于軟件架構的設計。架構是一個軟件的靈魂,好的架構將延長軟件的生命力,輕松應付各種變化。Apusic的架構在2001年時就已定型,以微內核和多路復用為其核心,歷經產品多次重大升級而未影響核心體系,展現了頑強的生命力。相反,如果架構設計不合理,每次升級都要對架構進行調整,勢必引入大量冗余代碼,使整個產品臃腫不堪。
第三個原因在于代碼編寫的簡潔性上。莎士比亞有一句名言:“簡潔是智慧的靈魂”,在科學界同樣也推崇簡潔性,麥克斯韋方程組簡潔深刻,被譽為是上帝譜寫的詩歌,愛因斯坦的著名公式E=mc^2更是將簡潔性發揮到了極致。程序設計語言不僅僅是為計算機運行而設計的,它也是一種思想表達工具,甚至比自然語言更簡潔、深刻、無歧義。我平時很少寫文檔,因為我認為代碼本身就已經表達了作者的思想。當我看到簡潔優美的代碼時,我認為是在讀一篇美麗的詩篇,并為作者深邃奔放的思想所折服。相反,當看到混亂、繁復而無章法的代碼時,我相信作者的思想同樣是混亂的。
記者:去年你曾預言J2EE正在迎來一次劃時代的變革,關鍵詞是EJB,對此你能再做一次闡述嗎?
袁紅崗:J2EE可以說是這幾年發展非?焖俚囊粋應用開發平臺,這和Java這種靈活、方便、開放、跨平臺的語言具有不可分隔的聯系。Java是一個講求實用的語言,所有對應用開發有用的特性都被吸收進來,成為Java平臺的一部分,而那些花稍但無實際作用的特性被摒棄。Java的類庫豐富、開發社區完善等特色標志著它還將在相當長的時期內保持旺盛的生命力。
J2EE可以說是在Java平臺中應用最為廣泛的技術,而且正在逐步走向成熟。JCP組織在總結了過去J2EE實踐中的經驗和教訓,在將來的Java EE 5.0規范中將對J2EE技術做一個相當大的調整,其中最受影響的就是EJB規范。過去EJB給人的感覺過重,而且開發過程復雜,不易維護,因此在實際項目中使用EJB的很少。在EJB3中,EJB的開發方法將徹底改變,不再使用Home, Remote接口等概念,而采取輕量級的開發模式,以Java 5.0中引進的annotation作為EJB描述工具,特別是實體Bean的角色將被重新定位,使其單純擔負起O/R Mapping的作用。所有這些舉措都是為了使EJB的開發過程更加簡單、效率更高、維護更方便。
在Web開發方面,Java EE 5增加了新的JSF規范,這是一個類似于struts之類的web開發框架,但比它們更方便。JSF基于事件及UI組件模型的開發方式顛覆了傳統的web開發習慣,結合開發工具的支持,將使其更接近于一個真正的MVC編程環境。使用JSF開發表現層現在看起來更象swing編程,基于UI組件的模型能夠把web界面定制的很多工作獨立出來,廠商可以針對具體的目標定制更多更好用的組件。而我們作為國產中間件廠商,比國外廠商理應更了解國內客戶的需求,因此我們的應用開發平臺Apusic Studio將成為以JSF為基礎的一個強大的web應用開發平臺。
記者:現在很多應用已經轉移到所謂的輕量級J2EE方案上去了,比如Spring,已經紅了快兩年了,F在才推出Java EE 5.0是不是來得太晚些了?怎樣預期Java EE對于整個產業的影響?
文章來源于領測軟件測試網 http://www.kjueaiud.com/