导读:
我们学习Java大概有3个方向,第一,桌面系统,包括C/S结构;第二,J2ME,面向无限领域,很有潜力的家伙,看看中国的手机用户就知道了。第三,面向企业应用、计算的平台,J2EE.
初次涉及Java领域,感觉到Java入门是好像没有C,C++入门快,工具也没有什么Turbo C,Visual C++好用(自己的破机器实在陪不起JBuilder,贪婪的家伙,以后一定要收拾她)。什么JAVA_HOME,CLASSPATH,虚拟机等概念都是初次基础,旁边的人都很少用Java的。感觉Java就是做Applet的。慢慢的知道了http://java.sun.com ,开始知道Java博大精深。让我不可思议的是JAVA 2,JDK,J2SE,J2EE,J2ME等新名词在自己的脑海里蔓延。慢慢的自己知道了JCP组织是制定Java相关规范的发源地http://java.jcp.org ,于是订阅了一份邮件列表。真是好东西啊,定期有Java的最新动向,所以Java的动态尽收眼里,建议大家也去订阅一份。免费的。自己动手下载了Java(TM) 2 SDK和Java(TM) 2 SDK Documentation后,不懂的就查Java(TM) 2 SDK Documentation,特别好用,也不需要什么手册之类的,建议大家都要有一份。
搭起Java开发环境后,记得还是用UltraEdit编辑并编译的(在其中可以配好Java的编译环境)。慢慢的改用JCreator了。不错,至少很多方面有改进。最开始卖了一套 2本书,还不错。对于入门来说足够了。慢慢的知道是一本好书,后来才知道,有了Java经验后,看这本书特别过瘾,所以现在还经常翻翻。周而复始的看,效果特别好。慢慢的知道了Oreilly公司(http://www.oreilly.com)出的图书不错,很高雅,国内翻译的也还可以(http://www.oreilly.com.cn)。本人收集了很多Oreilly的原版图书,有需要的可以和我联系(Acrobat pdf格式)。慢慢知道了jjhou这个人.(http://jjhou.csdn.net )以及他的个人网站,最让我感兴趣的是jjhou老师写的散文,书评,很有收获,不是为技术而技术。很有趣味性。其中, http://www.epubcn.com 上有很多美丽的图书。
不知道什么时候,要开始干项目了,以前从书上看到的东西,慢慢的在项目中有了很好的机会去温习,慢慢的有了感觉,开始主要是用Swing,开发桌面系统,放置一个按钮怎么也放不好,后来才知道有一个布局管理器。咳,这个婆婆的Java也讨厌的很。开始涉及到数据库访问,JDBC。后来我才知道,Sun的Java网站有一个Java Tutorial。(http://java.sun.com/docs/books/tutorial/ )。同时,也知道了蔡?W?O先生的sleepless in java(http://www.oreilly.com.tw/sleepless/index.htm ),太美了,美的很。 满满的,OReilly, http://www.onjava.com/ 也是不错的地方。都有很多优秀的文章。http://www-900.ibm.com/developerWorks/cn/index.shtml,也很棒。
每次,美美的享用一顿大餐后,也来也觉得自己是不是应该换一种学习方式,因为这样学习效果不太好。比较乱。让我想起了Java Specification,对,我开始研究Java规范了。最开始下载的规范是JDBC Specification,很多概念一目了然,尤其是DATABASE的事务性控制,自己对于她的理解慢慢的有了较为深入的了解。对于开发C/S结构,比如,Swing+JDBC,开发数据库应用系统,让我学会开发两层结构的应用系统。很神气。
也不知道什么时候要开始开发一个网站,基于Linux+JSP+JavaBean+Oracle的系统。很是有意思。为什么这么说呢?因为不同于Swing+JDBC的开发模式,系统之间多了一层(JavaBean,姑且就这么叫吧!嘻嘻);同时,很多开发技术和面向左面系统不一样,比如分页技术。
-------------------------------------------------------------------------------------------------
完成项目后,自己对于Java的很多方面都比较了解了。开始思考一个问题,J2EE是什么东西?。我们学习Java大概有3个方向,第一,桌面系统,包括C/S结构;第二,J2ME,面向无限领域,很有潜力的家伙,看看中国的手机用户就知道了。第三,面向企业应用、计算的平台,J2EE.
在痛苦的抉择后,我选择J2EE..分享J2EE给我带来的快乐。学到现在,最大的感觉,就是: 简单就是美,美就是Java.不会有学MFC的痛苦,也不会有去分析STL的艰辛,网路应用上一点也不逊色于C++。开始进入我的J2EE之旅。
还是下载了一份J2EE规范,一份J2EE SDK。开始研究J2EE,结合http://java.sun.com/j2ee/tutorial/index.html 提供的J2EE Tutorial开始研究了。大概过了1个月,开始有感觉了,也就在这个时候,需要我去完成一个J2EE构架方面的项目。差不多边学编写完成了,很多概念在写完后都不是很清晰,因为东西太多了,主要是基于JSP(Servlet)+Session Bean+EIS构架开发系统。当然也学到很多东西,至少对SB EJB的编写不成问题。懂得了JSP如何调用EJB……..
完成项目后,我开始研究Java Pet Store了,很是过瘾。开始知道了Servlet过滤器,XML方面较为全面的知识,知道了J2EE整个框架中各种技术的实际应用。慢慢的,开始研究WebLogic配置好的Pet Store(也是Sun公司的)。慢慢的分析两者的不同之处。开始对J2EE Specification有了很好的感觉。因为J2EE Specification本身是很严肃的,但Pet Store给出了活力。在反复的学习中,我明白了J2EE构架的70—80%。新的问题又出来了,实际企业中会如何建构一个J2EE系统呢?带着这个问题,我开始分析Core J2EE Patterns,这本书。同时,也有EJB Design Patterns。慢慢的,开始知道了J2EE的魅力所在,知道了J2EE为什么会在企业中得到较为好的认可。大家都知道,设计模式一词,在公司上班,你们的老板会看你的代码吗?会赞赏你的DP很好吗,我想很少。在完成你的工作进度之余,加班,加班,再加班,我想你没有更多的时间去分析研究DP.但,J2EE框架不一样,她内置了很多优秀的设计模式,我们在设计开发、构架一个J2EE系统中用到了很多设计模式。比如,MVC,EJB中封装的DAO设计模式。构架J2E系统用Session Fa?ade,Message Fa?ade设计模式也不会太困难。这也是后来J2EE吸引我的地方。慢慢的我知道了,作为一个J2EE开发者,我们要掌握其中的核心内容。我个人认为,3方面很重要。实施EJB系统常用的架构、设计模式,比如session fa?ade、message fa?ade、DTO等。J2EE系统构架中常用的模式。UML-> EJB,EJB->UML相互映射。现在也一样在研究。
善于享受孤独,幸好还有J2EE!
网络上、书店都提供了很多资料,很多方式都可以得到J2EE方面的资料。如何系统的、高效的学习J2EE这个问题摆在我们面前。比如, 有些人在看完一大堆书后,动起手来时还是不知道怎么开始。等等这些问题是我们最难处理的。如何寻找到一条很好的方式方法呢?
其实, 换一个角度来看,比如,学英语,一共有三个层面的东西,首先是词汇,然后是语法,再者是习惯用法(希望读者能够从程序设计的角度考虑问题,看看这两者有什么相似之处,其实他们的逻辑是一样的)。还比如,上数学课,老师在黑板上解题,大家都很轻松得听懂,自己动手时就会有很多问题。这些看来很简单的问题,其实都包含一个道理:
理论联系实际,理论指导实践。
我们的理论在于,我们要有很好的方法。有些人看了很多书,写了不少程序,水平还是提高得很慢,很难跨越这道难关。还是方法问题。当然,我所谈论的方法,是自己的心得,体会,大家都有自己很独特的方法。没有绝对好、绝对坏的方法,看作用对象是谁。所以这里我们重点看看我这文章中所会提出来的方法。大家来评论评论。
J2EE是现在进行时。我们知道J2EE由很多技术构成,比如,EJB、XML、JDBC、RMI、JSP、Servlet、。。。。等等这些,又包含很多内容。 无论这些具体的技术会怎么发展,怎么变化,我们要抓住主线,那就是掌握J2EE构架的精髓。用什么来分析呢,作用对象自然是J2EE Specification(最新版是1.4,http://java.sun.com/j2ee )!!!当然学习J2EE的前提是你对J2SE有了足够的熟悉了,还有一点,你有很好的态度和兴趣。只看J2EE规范是不够的,最好结合产品和例子去思考,我建议大家用JBuilder 7 +BEA WebLogc Platform 7.0,这种开发模式。为什么这么说呢?首先,JBuilder 7本身的功能就是不错,应该属于主流Java IDE了。其次,BEA WebLogic Platform 7.0对J2EE Specification最新版支持程度很好,同时也较容易获取,用的人也多。第三,开发效率不错。(Borland网站有一份讲述JBuilder 7 + BEA WebLogic 7.0集成开发的文档。PDF格式 。http://bdn.borland.com/article/0,1410,28943,00.html )
JBuilder 7本身提供了很多帮助文档,有PDF格式,也有HTML格式(采用JavaHelp技术制作的),另外书店有一些JBuilder的参考用书,个人认为没有必要,第一,提供的版本都比较陈旧;第二,没有什么内容;第三,一般都是抄袭JBuilder 本身提供的帮助文档。(个人观点,没有任何商业目的)。当然,你的外语差不多要有四级水平,这个可不能没有,至少阅读能力不错(其实也不是这样的,我最开始时也是害怕,但开始投入后,英语资料也很简单,而且很地道!同时提高了您的外语)。WebLogic同样也不错,也提供了很多文档,http://www.bestdown.com 上有一本WebLogic Bible(针对6.1版),国内的BEA公司好像也出了一本,有兴趣地可以去, http://www.china-pub.com 看看。
有了这两者,我们需要找出合适的对象来学习。在这里给出几方面的素材给大家提供参考。第一,在JBuilder 7的安装目录的这个地方,~~:JBuilder7samplesEjbEjb20ESiteWL,有一个很好的例子,ESite。其中用到了Session Fa?ade设计模式,用到了JSP、Servlet、Session Beans、Entity Beans(cmp)等技术,学习过程中不懂得地方可以参考第二。即,第二, http://java.sun.com/j2ee/tutorial/index.html 提供的J2EE Tutorial资料,很不错,Sun公司的。
第三,Java Pet Store,刚开始学习J2EE技术分析该例子有点困难,再者这个例子中的J2EE构架不是很实用,但她给我们展示了J2EE几乎所有的核心技术,同时还提供了一本书,Design Enterprise Applications with J2EE Platform,很不错。第四,对J2EE构架比较了解,对EJB,XML,JSP,Servlet等技术有了较好的理解和程序经验后,建议看看这几本书。《J2EE In Practice》、《Core J2EE Patterns》、《Sun Certified ENT Architect for J2EE - Tech Study Guide》、《Java Tools for Extreme Programming - wiley》、《EJB Design Patterns》、《MasteringEJB 2》、《Enterprise JavaBeans,3rd》,够你看得了:)。
有了上述基础,结合大家做项目中的一些经验,我想水平应该会有不少提高。在初步掌握上述基础后,我们每个人都可以有自己在J2EE中的定位,比如有些开发人员可以考虑把时间花在商务逻辑层、另外一些喜欢花功夫在表示层,更有贪婪的家伙花在J2EE中所有的层。还有Web Services(J2EE 1.4 Specification的重点,估计2003年初推出,今后的重要发展方向)。
同时,大家要注意从软件工程的角度考虑系统设计,实施,建议用用Together!!!要求大家对UML有足够的了解。