J2EE,我們還需要什麼--給陷於J2EE開發中憂鬱的人們

 
    我想最初作者無非是想吐槽一下而已,卻反映了J2EE程序員的現狀。他們使用着J2EE複雜體系之下如此之多的框架,卻被項目經理或是開發組長催着去快速構建企業應用。程序員的好奇心,在這種高壓狀態下,很容易丟失狀態,憂鬱、煩躁、不得甚解,中國的軟件環境本來就不好,技術人員在老闆眼以及在客戶眼裏裏,都並不是最重要的,客戶滿意了就可以提交收錢走人了,有時候項目公關會更重要,特別是事業單位的應用。但是假如公關的費用高了,那軟件工程中的技術人力成本不就被抽走了麼。所以他們工資普遍偏低,低者有碼農之說,並非空穴來風。
    如果他們有時間,是否會自己動手去構建一個Mysql或是spring框架,增加功力。我覺得很懸,因爲程序員經常加班,難得不加班的時候,對編程已將麻木。。。他們的研究動力完全不存在,因爲就算他們的模塊做得多好,都不會有多高的存在感。只有快速完成模塊通過驗收測試纔是王道,至於真正的質量客戶驗收完才深有體會。
    總會有研究能力強的本科生或是碩士生,一路混到了架構師,站在J2EE的頂端,卻徒生寒意,他們已經不再年輕,卻發現,技術不能在這些項目生意中決定一切。想帶起一班人,自己單幹,卻太多爛事,因爲軟件終究過於複雜,而客戶看重公司經驗積累和品牌。沒有良好的制度,很難。只是守在那個職位,發覺工資是很好領,卻做到疲倦,方案再無創意,因爲無需有多大創新。。---鵬仔注

   在J2EE的代碼生活上,不知不覺,就走了3年多了。一直在摸索,在前進,可是,在內心,不停的糾結着,我們真的需要這麼多框架,這麼多層次,這麼多所謂的一套又一套理論嗎。在我們的開發中,不停的集成添加更多框架,JAR包越來越多,幾個,幾十個,幾M,幾十M,甚至上百M。    

  當初爲啥要用這種那種的框架,爲啥要引入這套那套理論,簡單說,不就是爲了開發更加方便,速度更加快捷,維護更加容易嗎?但是,現在各種框架我們都有了,難道我們的開發真的就快捷了嗎?我們的維護更加輕鬆了嗎?我們的後期擴展更簡單了嗎?不,不是的,至少我感受到的不是這樣的。而且我越來越模糊,Spring是什麼,Ibatis是什麼,Struts是什麼,WebWork是什麼。還有Hibernate,SiteMesh,Velocity,freemarker,Struts 標籤,JSTL等等,太多了,多得讓人眼花繚亂。

   我們要用Spring,爲什麼,他的特性是什麼,原理是什麼?不知道,我想去了解,但是,項目緊張,只能先用再說。

接着,我們又想用Struts,但是Spring MVC呢,這個如何,糾結。花費很多時間比較,最後選擇了一個。這時有人問?爲什麼?你爲什麼要選擇Struts2,而不是Struts1,也不是Spring MVC?他的特性是什麼,原理是什麼?我的神啊!!!!!我不知道,給我一週時間,一定給你一個滿意的回答。

然後呢,數據庫框架,JDBC?Ibatis?Hibernate?JPA?爲什麼?特性?原理?

然後呢?數據庫?Oracle?MysqL?SqlServer?H2?爲什麼?特性?原理?

然後呢?我們還需要什麼?JSP?Velocity?JSTL?XSTL?freemarker?爲什麼?特性?原理?

然後呢?JS用什麼?Jquery?ext?flash?flex?YUI?爲什麼?特性?原理?

然後呢?Ajax用什麼?json?XML?爲什麼?特性?原理?

然後呢?數據檢驗?前臺呢?後臺呢?爲什麼?特性?原理?

然後呢?導出數據用什麼?POI?XML?excel?Word?PDF?爲什麼?特性?原理?

源碼控制呢?CVS?SVN?VSS?爲什麼?特性?原理?

持續集成呢?ANT?Maven?hudson?爲什麼?特性?原理?

日誌呢?Slf4j? Log4j?爲什麼?特性?原理?

Web服務? Web Service - JAX-WS2、CXF? REST- JAX-RS?Jersey?HttpClient?爲什麼?特性?原理?

安全? Spring Security?驗證碼-JCaptcha?Utils-散列?簽名?加密?爲什麼?特性?原理?

緩存?Cache? EhCache?OSCache?爲什麼?特性?原理?

定時任務? Quartz? JDK ScheduledThreadPoolExecutor?爲什麼?特性?原理? 

JMS? ActiveMQ ? Spring JMS?爲什麼?特性?原理?

JMX?Spring JMX?爲什麼?特性?原理?

Email?Spring Email?爲什麼?特性?原理?

報表?Flash Chart - AmCharts?Excel - POI?爲什麼?特性?原理? 

架構質量?Graceful Shutdown?爲什麼?特性?原理?

性能調優? Web2.0頁面優化? Profile工具 - VisaulVM?Yorkit?SQL監控工具 - P6Spy?爲什麼?特性?原理? 

服務器呢?爲什麼?特性?原理?

集羣呢?爲什麼?特性?原理?


我的神啊,做一個項目,要這麼多。“爲什麼?特性?原理?”,我已迷糊了,我已憂鬱了,做了3年了,終於還是迷糊了,終於還是憂鬱了。你能完整的告訴我嗎?

我們的代碼開始層次越來越深,2層,3層,4層,面向接口,面向過程,父類,子類,孫類。。。。當我要修改一個東西時,找MVC的配置,找服務端數據檢驗配置文件,找Spring的配置,找Ibats-SQL配置,改Struts Action,改Service接口,改Service實現類,改DAO接口,改Dao實現類,改Ibats-SQL,如果層次再多下去,還要增加更多。試問,我們維護起來簡單了嗎?真的像傳言中的維護簡單嗎?難道所謂的維護就是頁面上改改嗎?真正的改動了功能,甚至數據庫,維護起來就真的容易嗎?

我終於還是迷糊了,終於還是憂鬱了。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章