终于,工作也将近一年了,从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了。
之后,就是发生一些跟技术无关的不如人意的事情了。