在离职的最后时刻发上来总结,作为一个一个终结,也作为新的开始......
-------------------------------------
在公司工作已经有一年多了,在这一年的时间里,我经历了“临沂房产365”、“春天巴士”、“slackiss”,并一步一个台阶的走进了java的世界,完成了技术的积累,以及思想的飞跃。在这个过程中,公司为我搭建了一个平台,贾同学是一个引导者,而房同学、范同学则属于三人同行,在这里,感谢那些曾经帮助过我的人,谢谢你们。
一、临沂房产365
临沂房产365是我进入公司后的第一个项目,也是我学习java的第一个项目,采用了比较经典的ssh框架架构。在此之前,完成php程序的时候,完全是面向对象的,没有什么很好的复用性,也没有什么封装。最多就是在被include的文件中写入几个调用数据库的方法,注意这里是方法,还不是类,再加上几句session判断的代码就可以完成一个简单的新闻系统了。所谓的框架就是通过模板思想将php代码与html分离。而struts+spring+hibernate让我知道了,怎么是真正的复用,以及面向对象的好处。经过封装的hibernate,我们处理数据的时候只需要一个getHibernateTemplate()就一切ok了,而且一旦domain设计完毕,配置好对应的xml文件,行了,数据库你就不用管了。再加上打成jar包,那叫一个爽,这才是真正的封装,这才是真正的复用。struts采用的mvc的思想也是以前没有接触过的。虽然说相比于php的混杂到一起的写法,struts的action+xml配置文件+jsp/freemarker要繁琐的多,但是正是这种繁琐,实现了数据组装、控制器、页面显示的分离。让程序在变得繁琐的同时也变的清晰,变得可以多人协作分别开发。这里用到了freemarker技术,他的标签简化了页面层的操作,让显示变的方便容易,再加上其宏的功能,实现了页面的复用,可谓方便至极。
二、春天巴士
春天巴士是做的时间最长的一个项目,从8月份一直到现在。这个项目开始,我除了是一名程序员之外,也同时担任起了美工的工作。我还是很喜欢美工工作的。春天巴士项目让我的web技术有了一个全面的了解。从css到javascript,从struts2到guice\ibatis,从前台的页面缓存到数据库缓存,从eclipse到netbeans,从tomcate到jboss/glassfish,从windows到linux。在这个过程中,有的是广度层面的,而有的则是深度层面的。
eclipse、netbeans、tomcate、jboss/glassfish、guice\ibatis、struts2、sitemesh等等属于广度上的技术积累,可以应用于项目开发,出现普通问题都可以解决。这里想起来刚进公司的时候,每当程序报个错误,就不知道如何是好了,首先不知道出了什么问题,其次就更不知道如何去解决他。想想那时候多么的弱小啊。其实问题很简单,看一下报错信息,eclipse/netbeans一debug万事ok了。所以,完成了自己动手解决问题的一个台阶的迈进。而struts2等
框架也可以熟练使用,完成网站所需的功能。sitemesh完成页面的组装,写一个decorators,想怎么组装页面就怎么组装。让相同的内容抽取在一个页面之中,加上struts2的comment将一些内容组件化,好了,页面完成了高度统一与复用,并且修改起来相当方便。缓存方面属于从无到有的,原来php程序的时候是不考虑什么性能的,因为我以前只是个小程序员(增删该查),而现在通过ibatis的缓存将数据从数据库缓存起来,突破数据库的瓶颈。而通过struts等的缓存方案则可以降低页面请求,节省网络的带宽、减小了服务器的压力,提高了用户访问速度。
css、javascript、java则是深度上的提升,css方面完成了浏览器兼容性的台阶。让网页在多种ff/ie主流版本中保证显示效果。而且也学习了网站css合理规划的相关内容,完成了css的合理规划、嵌套调用。而javascript(以下简称:js)则完成了从函数到类的进阶、yui框架的学习使用。在完成js机器人的功能以后,也完成了js的组织、设计。如何实现js的封装、如何实现js的继承。也了解了java为什么需要set/get方法,其实语言都是相通的。java的深度在于性能和设计。比如在使用hashmap的时候原来都是new
Hashmap(),而现在则会根据实际情况使用new
Hashmap(2)。在遇到java程序报错的时候有可能会设计到框架本身,这时候就需要下载框架源代码,并且通过debug方式调试到框架内部去。有一次遇到一个restful框架的很奇怪的问题,找了半天不知道问题出在那里,下载源代码调试进去,发现原来rest不支持url上面配置成一个单独的“/”。因为他里面的几个if/else判断并不严谨正好会漏掉“/”的处理。不知道这算是框架的bug,还是人家框架就是这样。而在这此的调试中,也让我了解到,原来框架的代码也无非就是if/else,有点区别的不过是他的代码更紧凑,简洁、合理,用一些简洁的语法、写法完成。那么框架就真的只有这些吗?当然不是,框架除了有解决某些问题的代码,还有设计框架所用到的思想,以及实现框架所用到的设计模式。
三、slackiss
上面说到了设计模式,而这正是我在slackiss所学到的东西。slackiss是多个项目相互嵌套调用的项目,他分为客户端和服务器端,客户端也就是一个个的网站,访问服务器端注册了的服务,进行数据的通讯。slackiss通过hessian完成服务器与客户端的远程数据的传输。这里还接触到了wicket、jersey等框架。前者可以实现模块完全的打成jar包,放进去就可以使用,而后者则是一个java的restful
web service的标准实现。
对于设计模式,这里要说一下观察者模式,一个我第一个接触明白的也是唯一一个的设计模式。我以前虽然也明白什么是耦合,但就是不理解,两个模块既然要互相调用,又怎么能够实现松耦合。必然要通过
B b = new B(); b.c();的方式来实现。而通过观察者模式的学习,我真正明白了,如何解决这一问题,怎么就松耦合了。java利用他的接口、继承和静态方法,完成了一个类观察另外一个类的模式,又避免的耦合的发生。而查看Observer类的源代码会发现,其实质就是在notifyObservers方法通过for循环调用观察者的update方法。所以本质上还是通过上面说到的b.c()的方式来实现,但不是在子类上,而是在父类上,从而避免了耦合的问题。因此设计模式也仅仅是一种模式,他无法跨越一些问题,但是他可以巧妙的绕过一些问题。关于观察者模式,这个地址(
http://phpxiaoxin.iteye.com/blog/390583)
有我详细的文章描述。也就是学习了这个模式才让我知道java接口、继承的重要性,而对于服务类和数据类的接口其实对于普通的小型程序是不必要的。
四、政府项目
政府项目是公司承接的一系列的项目,包括oa、cms、portal等。我们小组中共四人,工作计划由架构师完成,我来指挥协调,我们小组完成两个cms和一个portal。
其中cms基于临沂房产365这套程序来搭建完成,美工出来效果图和静态页面,程序员将其制作成模板,加上数据标签即可。
portal部分为购买其他公司的产品,因为产品与需求差别较大,因此与该公司协作进行了一些调整和二次开发。这部分工作由我来完成,由于需要与其他系统结合,还提供了一些webservice来完成数据的获取。用到框架为:jersey/xfile。
对于政府项目,我的感受就是:大家都希望直接用自己产品,最简单的完成需求,将工作量减少到最小。因此在这个时候,技术不是最重要的,重要的是如何协调一致,根据需求,完成功能模块。实现用户想要看到的效果。
综述:
在这一年里,以上的技术让我完成了从php程序员到java程序员的蜕变,也完成了从增删改查的进阶。在完成java一些框架使用熟练应用之后,我感觉到了成长,我也同时意识到了不足。前台美工方面,辛同学的到来让我有了一定的进步,在这里也谢谢她教了我不少东西。我也知道我的水平还需要提高。css/js仍然需要进一步学习,jquery的源码已经看了一部分了,有一定的收获,需要继续坚持看完。而java方面,除了必要的框架需要学习之外,我深深的意识到我java基础只是的不足,以及设计模式的神奇。所以要补足这两块。
分享到:
相关推荐
财务总监 2023年 年度总结 报告及2024年工作计划 财务总监 2023年 年度总结 报告及2024年工作计划 财务总监 2023年 年度总结 报告及2024年工作计划 财务总监 2023年 年度总结 报告及2024年工作计划 财务总监 2023年 ...
IEEE2017年度总结报告。
财务总监年度总结报告及下年工作计划财务总监年度总结报告及下年工作计划财务总监年度总结报告及下年工作计划财务总监年度总结报告及下年工作计划财务总监年度总结报告及下年工作计划财务总监年度总结报告及下年工作...
超级经典可爱的年度总结PPT,可以方便适合各类人员写总结报告,不要错过哦,喜欢喜羊羊的GG,MM,一定要下
2010年公司年度总结汇报专用ppt模板.ppt
半年度总结ppt模板范文2017年中工作总结PPT.pptx
2020年炊具市场年度总结报告.pdf
2017 年度 工作 总结 ppt 模板,漂亮的ppt模板,完美的ppt模板
年度 工作总结 ppt模板 年终 漂亮的ppt模板 适合年终工作总结
年度总结报告年会方案PPT模板.pptx 本资源是一个年度总结报告的PPT模板,涵盖了年度学习总结、年度生活总结、年度工作总结和年度自我成长总结等方面的内容。以下是对标题、描述、标签和部分内容的详细解释: 标题...
年度总结,每年的给老板们的一个交代。体现自己在工作上的价值。
"CRM 产品经理年度总结和规划" 在 CRM 产品经理的角度下,年度总结和规划是一项非常重要的工作。如何写好年度总结和规划?今天,我们将为您详细讲解年度总结和规划的写作技巧和方法。 首先,年度总结和规划需要...
虎年年度总结,参考牛年的,ppt
虎年年度总结,参考牛年的,ppt
虎年年度总结,参考牛年的,ppt
虎年年度总结,参考牛年的,ppt
虎年年度总结,参考牛年的,ppt
虎年年度总结,参考牛年的,ppt
虎年年度总结,参考牛年的,ppt
虎年年度总结,参考牛年的,ppt