在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,如果層次再多下去,還要增加更多。試問,我們維護起來簡單了嗎?真的像傳言中的維護簡單嗎?難道所謂的維護就是頁面上改改嗎?真正的改動了功能,甚至數據庫,維護起來就真的容易嗎?
我終於還是迷糊了,終於還是憂鬱了。