欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

[原]近一年的J2EE历程(从2005.4~2006.2的总结) Ajax企业应用框架交通Struts 

程序员文章站 2022-07-12 15:59:09
...

终于,工作也将近一年了,从4月份的开始实习,到现在,唉,经历的不知道算多不多,学到的也不知道算多不多,反正现在就写一篇总结,对自己有个认识吧。
2005年4月份的时候,辞掉了一家在厦门工资还算不错的公司,进入了现在所在的这家公司实习,那时候是很肯定的觉得自己做的没有错,现在呢,我还是认为选的没错,只可惜,工资一下子就少了600多了。中间也拒了几家有些名气的公司,说实在,有时候还真不能百分百肯定,那时候选这家公司是否是最正确的选择。
总体上,被录用的做技术的公司的,进去分别是做这三种技术的东西,一家是Windows mobile,一些是.net,还有现在这家的J2EE。.net能学多少东西是不知道啦,不过前半年里在开发J2EE时,觉得自己真的学到很多,工作了半年以后,就有点迷茫,自己学的够吗?
4月份在这家公司是以实习的身份进来的,在实习的这段时间里,学会了struts和hibernate的基本应用,也用这些框架做了几个小模块,由于中间要用到了一个统计图,去了解并采用了jfreechart,也算是顺便学了这个开源包吧。等我向项目经理确认我可以像其他员工那样完成任务时,才结束实习,回到学校。
7月份毕业出来,回到这家公司时,一开始做的,就是维护公司自己的OA系统。第一个周是做原有模块的修改工作,因为在学校玩了一段时间,刚开始做的时候还真有一点生疏。
第一周的任务完成后,开始上手了,接下来,就开始增加两个新的客服模块了。这两个模块用了三周完成,这三周里面,也学会了一个不刷新技术(后来才知道,这叫AJAX),并在剩余的时间里面,比较大的收获就是掌握struts-menu这个开源包的普通应用。
8月份的前两周,开始做一个薪资审批的流程,也算是第一次接触工作流了。这次做的这个模块,并没有学到什么新的技术,就是业务逻辑很复杂的编码,但是想想自己也刚工作没几天,这对我来说,益处还是很大的。
接下来的一个月里,做的是OA上添加一个跟企业的运营平台整合的企业注册模块,这个模块一开始看业务还是很简单的,后面功能慢慢添加,竟然做了一个月才完成,期间抽空了解了一个在线编辑HTML的东西,而我想主要的,这个模块有很多突发事情和意外要考虑,跟以前做的那些相比,这次的这个模块,才是真正煅炼程序员能力的编程吧。已经到9月份的中旬了,那个注册企业模块也终于完成了,现在回想起来,做那个模块用的最有技术含量的东西,应该是Ajax吧(我并没有用什么开源的框架,如果现在有人要嘲笑我说,“你只是简单的一些不刷新,也叫Ajax,真搞笑”,那我只能说,果然不只文人相轻,做技术的也看不起做技术的。
刚做完这个企业注册模块,项目经理问我说:“你以前用过.net吧。”我告诉他是的。没想到,一个任务就来了,把一个aspx+C#做的短信业务管理网站修改一下,因为里面都是适合SQL Server的数据库,而且用到很多存储过程,现在想迁到Oracle上。而一周后,终于把这个项目改成适合于大部分数据库的,去掉所有存储过程,增加了日志功能。这次的这个任务并没有煅炼到什么J2EE的能力,不过也算再熟悉了一下.net,再次感受了.net的人性化,可惜有些功能还是没有Jbuilder好。接下来,又是修改了一个用EJB做的工程中的一些模块,和调整了OA中的一部分功能。期间也搭建了一个Tapetry的工程,算是感受了他一把,不过还是觉得它没有struts好用。
接下来的这个月,是我学得最多的一个月了,公司想把以前的C/S二层结构改为Delphi做界面层,用Java做中间服务层,最后再数据库服务器。他们最先考虑到的是,用Web service。于是我的任务就下来了,研究一下Web service,看能不能做一个框架满足公司的要求。我起先则是用axis搭建Web service,后面发现,它实在是太复杂了,我们想要的,是一个轻便的东西。
于是就开始研究SOAP,因为Web service就是用SOAP传输消息的。SOAP然后是javaxml,接着是dom4j。后面自己产生一个想法,如果客户端传递一个XML过来,里面描述了要调用的类名,方法名,以及传递的参数对象。服务端解析XML出来,利用反射和序列化XML转化为本地化持久类,调用这个方法,再把方法返回的对象转化成XML返回给客户端,那么不就可以实现客户端*调用Java的类。
有了这个想法就很兴奋,开始付诸行动。很幸运的是,我把这个框架做出来了,那时候真的很兴奋,因为在我以为,那个类型的框架还从来没有看见过,甚至想把它放到网上开源去。后来才意识到,其实我做的这个就是轻量的没有规范的Web service。既然这样,后面又给它增加了类似wsdl的功能,而后在优化过程中,增加了cache,大大提高了速度。测试了一下,完成同样的功能,它的速度是axis web service的十几倍,呵呵呵呵呵,那个叫兴奋啊。那也是一次性把Java的几项关键技术一起学了顺便用上。
做完这个框架后,又做了两个项目,一个交通查询的,一个社区。这两个项目倒也没有像上回研究Web service那样令人兴奋的感觉了,不过还是学了很多开源的东西和技术。交通查询很多次用到Ajax,也在做这个项目的期间,学到了几项J2EE技术,在一次用JavaScript做树状控件的时候,大大了提高了Javascript一把。而在此,也总结到,其实懂不懂一些新技术并不是主要的,新技术很容易就可以用起来,而难的,就是决定用哪些技术,哪些模式,直至如何来设计自己的框架。很幸运的,在做那个社区的时候,我有了这个机会。
除此以外,做这个社区的时候其他令人激动的事情,就是写了几个复杂的标签,学到了velocity和全文搜索Lucene了。
之后,就是发生一些跟技术无关的不如人意的事情了。