是两封信,一封来自网友adamed
,一封是我的回复,交流的是初学者如何学习J2EE及SSH的问题,得到adamed许可,这这里发出来跟大家分享,欢迎更多的朋友来交流。
主题: 请教easyjf团队各位大侠
您好,我是一个在职软件开发人员。我是05年开始接触java开发。06年加入北京一家公司到现在。我的工作是做J2EE开发。公司使用SSH架构(Struts-Spring-hibernate)进行开发。
虽然进公司半年但是由于项目原因,真正只做过一个Struts+Hibernate的项目。现在我看了许多关于SSH的书。也看了一些代码,就是感觉自己提高太慢。
偶然机会在CSDN的blog上看到 大侠 的blog知道了EasyJF。很钦佩你们的勇气,敢于开创中国开源项目之先河。
由于接触J2EE时间太短。而现在这样的开源项目名目繁多。看了Spring的一些源代码只感觉头晕到不行。我实在不知道该如何提高自己。所以斗胆给各位EasyJF的朋友写这封邮件,请大家给我一些建议好嘛??(由于公司使用SSH开发。所以不看这些东西还不行。)该大家给些建议该如何学习。
ps:看了EasyJF的介绍我很想参与可惜能力实在有限。怕遭拒绝。
我现在有一颗火热的心想提高,想做技术,想为中国原创出一点力。但我也知道做技术不能浮躁。故请各位帮忙。
adamed
2007-01-09
下面是我的回信:
您好:
感谢你对EasyJF的关注以及对国内开源的支持,国内环境普遍浮躁,因为有太多像春迷这样的人存在,搞得大家都不敢表达自己的思想了,因此还希望以后能继续多对国内开源人给予支持。
关于您来信中说到的问题,我觉得可能是你对java的基础的掌握还不够的原因,简单来说就是内力不够。好比中国传统武侠小说中练武人的内力问题,降龙十八掌这样的绝世掌法,要是没有一定的内力作基础的话,就只能是降蛇十八掌,甚至蛇都降不了。虚竹小和尚的武功也是因为有了高深的内力,才能变得那么牛的。
而修练J2EE武学的内力,我认为大致分为三层,初级层次是JAVA基础,第二层次是OO思想及模式,第三层次是特定领域(如Web开发相关技术规范、Servlet规范、JPA规范、EJB3规范等)、专业知识的学习。有了这些内力,不管他是SSH还是EasyJF,使用起来都会非常容易的。
SSH属于框架,属于工具,也是中间件。他们是用来提高我们的开发效率,提高我们软件产品的可维护性、可扩展性乃至敏捷性的。
他们里面有很我优秀的设计理念及模式应用。比如,
struts属于MVC框架,关键是要了解MVC的概念及大致原理,掌握就很容易了;而hibernate属于orm系统,属于持久层的解决方案,同样需要对ORM的概念及原理有一个总体的了解,必要时可以去查查EJB1及EJB2里面用于持久层的Entity Bean的使用。而spring属于应用程序框架,其核心是IOC容器以及AOP,把这两个核心概念(也可称为大模式)了解以后,再加上一定的内力修为,其它就都不难了。Spring中还集成了很多适用东西(不过这些东西80%的在某一个项目中可能一直用不上),比如对JDBC的封装、自己的MVC、对动态语言的简洁访问等,这些你根据自己的项目情况来选择学习,用到的时候再看看他的文档,一个项目下来应该就能把握。
说了那么多,我累了,你一定也有点晕了,下面结合你的情况,简单发表一点我的建议:
1、用一年的时间慢慢提升自己的内力,然后这期间可以通过下面的方法同步学习使用ssh。
2、看一些国内作者原创的书籍,并运行相关代码,比如孙卫琴的Struts及Hibernate等入门教程,罗时飞的Spring教程。他们的书都通谷易懂,很多属于他们在学习过程中的点滴记录,因此一定非常好懂。不要一下子就去读Rod的《J2EE Without EJB》,或者是Spring开发团队编写的《Spring框架高级编程》,甚至《Spring in action》!由于很多缘故,这些书看了你一定会更晕。
3、下载一些国内原创的SSH应用源码示例。国外有很多这样的,也可以多看看。
4、运行这些框架所附带Example示例,并了解其设计原理,并能简单修改。
5、运行并多看这些框架的测试代码。要像买彩民分析采票走势图那样慢慢琢磨分析。
6、在自己的项目中多动用,熟练使用一个开发工具,如Eclipse,并能掌握程序调试技巧。
最后,关于Spring的学习,可以看看我们最近在编写的《深入Spring 2:轻量级J2EE开发框架原理与实践》的电子版,现在有两章可以下载,比较适合入门,网址是:
http://www.easyjf.com/spring。
另外,我准备你给我的信及我给你的回信放到我的blog上,供大家分享我们的交流,不知道您是否愿意?
祝:学习愉快,工作顺利!
EasyJF开源 大峡
2007-01-10