“希望简便快捷的完成任务不等于懒惰。尤其对于那些需要经常做的事(例如实现、部署新的业务对象,或者测试一个业务方法),更应该找到简洁的做法。”(page 14)
“研究的动机本身就会影响结果。”(page 14)
书中在第17页到20页对J2EE中使用代码生成技术的种种理由及其解决办法做了详细的分析,我也对此谈谈自己的体会。
◎根据RDBMS schema生成持久对象类
Entity Bean的解耦能力的确令人不敢恭维,我在开发一个项目的时候一般都采用Hibernate ,且一般自己写“*.hbm”配置文件,从不用工具生成,但是我会利用hbm2DDL和hbm2Java工具来生成相应的RDBMS schema和持久对象类。
对于XDoclet工具,其实是个不错的工具,只是使用起来麻烦了一些(我本人比较懒)。
其实对于RDBMS的性能没有做过太多的考虑,因为一直以来做的项目不是很大,数据库的逻辑结构也很简单,所以性能的问题几乎不用考虑。
书中提到“自动生成的持久对象不会包含任何行为,如果手工向其中添加行为,又可能给再次执行代码生成带来麻烦。一个没有行为的‘对象’是典型的反OO设计,我们很快将再次讨论这个问题。”(page 17)我且看作者将会怎么解释这个问题?
◎根据持久对象类生成DDL
◎生成DAO代码
◎生成EJB部署描述符
◎为领域对象生成“将对象映射成XML”的代码
◎生成用于访问EJB的类
◎生成一整套J2EE代码,从JSP直到entity bean(或是别的持久对象)
在此条的附注中,作者提到了Intranet数据库管理工具,这样的工具到是不少,可是我在想真的能通过IE来管理网络数据库的工具太少了,好像PHP在这方面做得还算好。
◎生成千篇一律的重复代码,例如“管理脏数据标记”
在此复习一下“脏读”和“脏数据”。脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据,那么另外一个事务读到的这个数据是脏数据,依据脏数据所做的操作可能是不正确的。
这本书主要是在谈架构,而且限定在J2EE平台上的架构。自然就不跟微软的.Net等架构作比较,但偶尔也会借鉴其思想之精华。书中对自主开发框架也提出了自己的看法,进行了大篇幅的阐述,总的来看是十分有道理的,但是在很多实际的项目中,我还是经常自己写一些简单的基础设施,当然这些基础设施能够让我的团队很快理解并容易使用。
书中对于开发过程和开发工具没有作过多的讨论。
“除非别无选择,否则不要容忍‘伪对象’的存在。”(page 27)
“在避免非OO的做法的同时,我们还应该尽量实践OO的原则。” (page 27)
对于OO的讨论,书中有前面的章节中确实花了不少的篇幅,还记得当初我去一家公司面试的时候,考官居然还在问我一个问题:“C跟Java有什么区别?”
posted on 2005-11-30 17:15
Robin's Programming World 阅读(2010)
评论(0) 编辑 收藏 所属分类:
Java 、
读书