前臺與後臺並舉,最近一年將要研究的技術

2007年是IT界不尋常的一年,網絡的泡沫視乎又長起來了,在JDON裏潛水日久,也大概偷窺出一些天下大勢走向,現在在此下定決心:
首先先分析現在的形勢,軟件界主流是web開發,這web的地位大概可以保持十年甚至更久,由此可見web的技術是十分有必要的學習的。我們可以走兩條路線:一,外功派;二內力派。外功派以研究別人源碼,必修課如JPetStore和Jive,通過短期讀書自己寫些項目學習框架等知識硬啃下來,核心是TDD,修爲時間相較短,外功也分多層,從第一層語法,第二層代碼結構,第三層系統架構,一直深入都最深層,就是相互整合,宏觀比較,這一路走來還真是不容易;相較外功,內力的修煉就更難了,主要是提高自己的OO設計水平,走國際化道路,接觸老外一些開源項目,E文提高,核心是DDD,設計模式與層次概念,一般需要5-6個項目後纔會提升一個層次。
外功的門派衆多,有前臺與後臺技術之分。前臺技術衆多,現今的趨勢是ajax,但不會持久,最大原因是ajax對搜索引擎不友好,沒有商業價值的東西市場很難做大,90%的公司做web化的目的就是爲了宣傳,ajax方便是方便,是一堆大雜膾,不過代碼好醜陋,本身就是ria的過渡應用,JS這種語言也走不遠的,雖說現在輕視JS將來找工作會吃盡苦頭的,但身爲一名java面向對象的程序員,始終覺得Js這種過程式的語言有違面對對象的意願,DWR或者prototype是必須掌握的,FLEX等是flash應用,不用說,效果是最好的,而flash又侷限於瀏覽器,如果瀏覽器的性能不改進和網絡帶寬瀏覽速度等的問題,flex和微軟的Waml是沒前途的。XML是下任的顯示標準,不過覺得XML做顯示不好,這樣的話數據就與邏輯,顯示混雜起來,本來XML就是數據友好而不是顯示友好的,不推薦;其他RIA應用其實不用多說,因爲不熟悉,不過Sun One的重點之一JAVA FX(另一個是groovy)可以關注一下,Java Me的替代品,打算畢業的時候就去做一個Java Fx的課題,sun你要在我畢業前把Java Fx弄出來阿!
後臺的技術繁雜,武林盟主J2EE稱霸多時,以可重用,可伸縮,可維護,可靠安全穩做複雜的企業應用之位,不過框架繁多,不太統一,struts1.x統一日久,web框架需要新的有活力的框架,jsf,tapestry,wicklet,webwork等等,業務層選擇就比較少,不過也有spring/ejb/seam/國內的jf,持久層hibernate/jpa/toplink/ibatis,他們都是優秀的框架,但也各有優缺點,將後的框架走勢個人認爲是官方的jsf+seam+ejb+jpa和開源的tapestry(與ajax融合最好,不過難學,開源的web框架競爭很大)+spring(一直遊離標準之外)+hibernate(一直都很好),ssh的經典架構已經日落黃花了;
soa的發展還很幼嫩,web service很有市場,axis是肯定要學的,而且還要去鑽研soap,rest其中之一的,現在還是相爭對峙的階段阿。呵呵,只能等真正的標準出來吧。
Rails的出現,的確對java的陣營出現了衝擊,衝擊對我來說也是很深的,不過它們也有很多致命的弱點,如控制層與業務層的混合,缺乏i18n與l18n的支持,令我很難相信ruby可以追趕java,只不過它的成功思想被很多框架所借鑑,有zope,catalist,php的框架,但它們比ror還不夠成熟,而且我們看到的是java是兩極發展的,官方受開源組織的影響走向簡單化,而在soa方面,java比.net,corba之類的做得還大,我們可以從EBI看到了java重新想稱雄的決心。另一方面,PHP這種定位明確的語言,與ROR有着功能上的重定位,其爭鬥是必然的,感覺PHP還得努力超越ROR,PHP5纔剛支持ROR,會不會被新軍突起的ROR幹掉呢?說不定。。不論如何,它們爭的是小中型的開發,複雜的應用使用ROR和PHP是很不明智的,它們只會使你的代碼混亂,滿布邏輯與控制,最後陷入維護困難的陷阱之中,而且我覺得它們開發效率說比java會2-10倍的說法十分好笑,一個具有熟練經驗的SSH程序員開發WEB應用,配合上優秀的項目管理優化工具,開發效率會比ROR之類的應用慢嗎?當然,Ruby社區也不缺乏很多Java的高手,也包括了OO大師,說實話,Ruby是比Java更面向對象,掌握ROR也是比較重要的。同時,java內有類rails的gails框架,絕對可以做得比ROR更好,grails也是要努力學習的對象。

都談完基本的WEB技術了,到一些傳統的但又比較實際的技術,如服務器,數據庫,tcp/ip programming,shell programming,算法,opensolaris等等,其實ORM已經解決了數據庫的問題了,不過一些簡單的存儲過程還是要會寫。要學習shell是爲了與xxnix接軌,服務器方面主要是weblogic與tomcat,聽聞websphere配置十分繁瑣,ibm的東東就算了,不敢去碰,還是weblogic好....算法是面對筆試的,不過本來我的算法不怎麼樣,其實我對算法很反感的,與OO相比,算法就是一個異類,包裝在業務層,一般的應用需要的時候卻不是很多。。opensolaris同shell,熟悉unix,而且還想贏一筆sun的獎金。。
總結
前臺
ajax(重點了解js與xml)
DWR
Java FX(其實也不算是前臺的技術,客戶端技術)
後臺
seam
ejb3.0
tapestry
rails
grails
其他
數據庫使用(主要是mysql與oracle)
opensolaris 10
算法
shell編程
內功
DDD
設計模式
自寫MVC框架
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章