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,如果层次再多下去,还要增加更多。试问,我们维护起来简单了吗?真的像传言中的维护简单吗?难道所谓的维护就是页面上改改吗?真正的改动了功能,甚至数据库,维护起来就真的容易吗?

我终于还是迷糊了,终于还是忧郁了。

 

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