书名:Java编程思想
URL: http://www.china-pub.com/computers/common/info.ASP?id=7241
评论:
其实这本书并不适合作为Java入门使用,有位道友人为:看这种书有种看马克思选集的感觉,车轱辘话往返说,本来很简单的概念, 看过他的复杂的例子后,就云山雾绕了。当然,治疗失眠的效果是不错的。
我本人读这本书也是读了N多遍吧,总是感觉无法把握其中一些概念, 不过在实践中碰到一些技术问题,会到书中查询,这样对书的理解不断加深, 但是一直无法理解这本书想说的编程思想到底是什么?已经隐隐约约地感觉到了,但是不能完全抓住。
只有我读了GoF的”设计模式“这本书以后,我才完全把握这本书所说的编程思想, 应该说,这本书是介于Java基础技术和设计模式之间,因为是从技术细节角度出发,并且追求面向对象编程方法, 似乎将一些简单的事情搞得复杂化,主要是因为没有从OO设计高度深入阐明如此复杂化的原因。
书名:设计模式:可复用面向对象软件的基础
URL:http://www.china-pub.com/computers/common/info.asp?id=684
评论:
这本书应该说比Java编程思想还要难读的一本书,对于没有编程经验的初学者真是 如同天书一样,这类读者我还是建议多理解一些Java源码,多练习做一些项目,多学习和把握一些技术细节,当 技术把握到一定程度,量变会产生质变,思维观点会更侧重于设计,这时读这本书会顺利得多。
很多有经验的程序员经常拥有自己朴素的编程思想,如:编程要有灵活性,要有可预见性,但是要害问题是如何实现呢? 读这本书应该说是从理论上帮助你解决这个问题,它提出了通过设计模式或框架来帮助程序实现系统的灵活性、可重用性、可拓展性和可伸缩性(预见性)。
这本书的引言部分很重要,也很通俗易懂,在引言部分阐述了设计是如何支持变化的,设计模式和框架从字面上理解 似乎是限制,不变的意思,是与支持变化正好相反,实际不是这样,设计模式和框架正是用来支持变化的。
一个软件系统可以看成由两个部分组成:“新”和“旧”。所谓“新”就是针对具体应用的新设计和新代码;而所谓“旧”, 就是重用了以前类似功能的软件组件或软件设计,后者正是设计模式和框架大显身手的地方。
读了这本书,确实让有朴素的编程思想的程序员有一种质的飞跃和提高;外国人形容如同“耶稣重生”感觉, 中国人说:好似练习武功中打通了六脉,重新上了一个新层次,又如同禅的一次顿悟,思想的乐趣无不体现其中。
书名:实用J2EE设计模式编程指南
URL:http://www.china-pub.com/computers/common/info.asp?id=8368
评论:
前面两本应该说是OO编程基础,有了前面两本书的“功底”,在学习J2EE/EJB时要轻易得多,因为J2EE/EJB就是一种框架, 可以从EJB/J2EE具体使用和技术学习中体会仔细框架的概念。
这本书是从J2EE具体实践角度重申了系统可重用性、可拓展性和可伸缩性重要性和如何具体实现,实际上,它是一本 教你如何解决具体问题的书,Wrox网站有其中“安全治理模式”一章的PDF版本,它系统阐述了用户注册系统中单点登陆和 和统一验证的J2EE容器实现,通过J2EE容器实现用户注册系统,就无需编制任何Servlet或ServletFilter代码自己来实现 这两个功能,因为它们已经作为模式融入了J2EE框架设计中了。
通过阅读这本书,将设计模式/框架+J2EE实战两者紧密结合起来,真正实现了编程的灵活性和可预见性。当然该书的实战实例还是少了一些,而且目前从设计模式和框架角度探讨实践应用的书籍不多,这里我就“自私”一下, 本人的“java实用系统开放指南”在这方面做了进一步的探索和论述,即将由机械工业出版社出版,敬请关注。
书名:精通EJB (第2版)
URL:http://www.china-pub.com/computers/common/info.asp?id=4515
评论:
前面三本书都是从设计角度考虑推荐的,设计是编程的灵魂,但是只有灵魂没有肉体支持也是虚的,这本书从具体技术原理角度 讨论了EJB的构成原理和使用方法,注重一定要阅读第2版,第2版是针对EJB 2.0,现在普遍使用的是EJB 2.0技术。
EJB的学习分两个方向:使用方法和构成原理,学习EJB使用方法相对简单一点,因此阅读这本书时,要明确你的宗旨,时刻 记住你的方向,推荐初学者先从学习EJB使用方法入手,因此书中有关原理方面的就跳过,等你学会使用EJB后,再返回研究 “为什么这样做”的问题。
EJB学习使用分Session Bean和Entity Bean以及MDB等几种,学习途径建议下列步骤:
1.Session Bean开始学习(不学习实体Bean),通过书中使用方法,在Session Bean中直接调用SQL语句操作数据库。
2.学习J2EE设计模式中的DAO,将第一步的Session直接调用JDBC升级为Session+DAO+JDBC。
3.选择一种持久层技术,假如愿意学习实体Bean,这时可以研究CMP 2.0或BMP,当然也可以学习其它持久层技术如Hibernate或JDO等, 实现Session+DAO+Hibernate等。
最后,该书还介绍EJB集群计算技术,该技术使用EJB的重要原因之一,通过集群技术,可以实现多台服务器的分布式计算,从而 增强系统的计算能力,而这些都无需开发者自己开发这些技术细节,通过EJB容器配置就自动完成,因此,一个EJB应用系统可以单机 运行,也可以迅速方便地扩展为多台甚至几百台服务器上运行,这就体现了EJB强大的伸缩性。
书名:Core J2EE Patterns (Core Design Series): Best Practices and Design Strategies第2版
URL:http://www.china-pub.com/computers/common/info.asp?id=13414
评论:
其实,EJB/J2EE技术本身不复杂,使用也很简单,之所以很多人认为不好用,我认为还是因为其中参入了设计模式和框架概念, 所以还是有必要了解一下J2EE的核心模式,这是第2版的J2EE核心模式。
曾经收购易趣30%左右股份的eBay公司首席架构师John Crupi参与了编写,eBay已经使用了多年的J2EE系统,在这本书中, John Crupi从eBay J2EE实践角度提出了一些新的设计模式,实际就是他们实践经验的总结。
要完全理解这本书,需要配合具体应用系统,对应Sun的Petstore(http://developer.java.sun.com/developer/releases/petstore/)
学习J2EE的设计模式,是一种好的方式,当然,除了设计模式以外,Petstore其它设计特点是有争议的,例如界面的WAF框架设计 (过于复杂,现在更多使用的是Struts);还有其Web与EJB接口调用框架,都存在一些问题。
个人认为这本书介绍的Service Locator模式、DAO模式、TO模式(DTO模式或VO)是非常实用和重要,几乎每个J2EE系统都必须使用到, 其它有关界面View模式,假如你选择Struts这样MVC模式框架,就不必太关心,因为Struts框架本身已经将这些模式包含进入。
小结:
由于Java/J2EE发展迅速,相关书籍的出版总是有一定滞后,而且理论结合实践的实战方面书籍相对比较少(当然,从一个角度 理解,设计模式可以看成是实践经验的总结),因此,第六本书就虚位以待吧,希望有更好的Java书籍出版。