﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Robin's Java World-随笔分类-读书</title><link>http://www.blogjava.net/fastzch/category/5341.html</link><description>I Love Java As My Life!</description><language>zh-cn</language><lastBuildDate>Thu, 11 Mar 2010 17:03:51 GMT</lastBuildDate><pubDate>Thu, 11 Mar 2010 17:03:51 GMT</pubDate><ttl>60</ttl><item><title>RUP学习笔记（一）</title><link>http://www.blogjava.net/fastzch/archive/2008/10/22/235867.html</link><dc:creator>Robin's Java World</dc:creator><author>Robin's Java World</author><pubDate>Wed, 22 Oct 2008 02:12:00 GMT</pubDate><guid>http://www.blogjava.net/fastzch/archive/2008/10/22/235867.html</guid><wfw:comment>http://www.blogjava.net/fastzch/comments/235867.html</wfw:comment><comments>http://www.blogjava.net/fastzch/archive/2008/10/22/235867.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.blogjava.net/fastzch/comments/commentRss/235867.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fastzch/services/trackbacks/235867.html</trackback:ping><description><![CDATA[
		<span lang="EN-US">
				<font size="2">
						<font color="#ff0000">本Blog所有内容不得随意转载，版权属于作者所有。如需转载请与作者联系（</font>
				</font>
				<a href="mailto:fastzch@163.com">
						<font size="2">
								<font style="BACKGROUND-COLOR: #ffffff" color="#ff0000">fastzch@163.com</font>
								<font color="#1a8bc8">
								</font>
						</font>
				</a>
				<font style="BACKGROUND-COLOR: #ffffff" color="#ff0000" size="2">）。<br />未经许可的转载，本人保留一切法律权益。<br />一直以来，发现有某些人完全不尊重我的劳动成果，随意转载，提醒一下那些人小心哪天惹上官司。</font>
		</span>
		<br />
		<br />昨天从IBM的网站下载了最新的RMC7.2（Rational Method Composer），感觉这东东现在是越做越好了，真的不得不让人佩服IBM的伟大。其实自从IBM收购Rational的那一天起，IBM就在不停的整合其五大产品线，也才有今天这样的格局，使五大产品线能有机的结合在一起，能满足现实中的各个领域的大部分需求，Rational系列就是为满足软件开发领域所提供的一系列软件，I love the Rational series。<br /><br />闲话不多说了，今天先来分享一下RUP的一些基础吧，我用Mind图来记录。如下：<br /><a href="/images/blogjava_net/fastzch/7477/o_RUP%20base.gif"><img alt="点击可查看大图" src="http://www.blogjava.net/images/blogjava_net/fastzch/7477/r_RUP%20base.gif" /></a><img src ="http://www.blogjava.net/fastzch/aggbug/235867.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fastzch/" target="_blank">Robin's Java World</a> 2008-10-22 10:12 <a href="http://www.blogjava.net/fastzch/archive/2008/10/22/235867.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>我为读书狂</title><link>http://www.blogjava.net/fastzch/archive/2008/09/29/231800.html</link><dc:creator>Robin's Java World</dc:creator><author>Robin's Java World</author><pubDate>Mon, 29 Sep 2008 08:14:00 GMT</pubDate><guid>http://www.blogjava.net/fastzch/archive/2008/09/29/231800.html</guid><wfw:comment>http://www.blogjava.net/fastzch/comments/231800.html</wfw:comment><comments>http://www.blogjava.net/fastzch/archive/2008/09/29/231800.html#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://www.blogjava.net/fastzch/comments/commentRss/231800.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fastzch/services/trackbacks/231800.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 书中自有黄金屋，书中自有颜如玉。																																																																				&#160;										个人2006年起的读书清单(不完全记录在案)，可窥个人成长之路。																														...&nbsp;&nbsp;<a href='http://www.blogjava.net/fastzch/archive/2008/09/29/231800.html'>阅读全文</a><img src ="http://www.blogjava.net/fastzch/aggbug/231800.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fastzch/" target="_blank">Robin's Java World</a> 2008-09-29 16:14 <a href="http://www.blogjava.net/fastzch/archive/2008/09/29/231800.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WebSphere Application Server之wsadmin学习(一)</title><link>http://www.blogjava.net/fastzch/archive/2008/09/18/229797.html</link><dc:creator>Robin's Java World</dc:creator><author>Robin's Java World</author><pubDate>Thu, 18 Sep 2008 13:04:00 GMT</pubDate><guid>http://www.blogjava.net/fastzch/archive/2008/09/18/229797.html</guid><wfw:comment>http://www.blogjava.net/fastzch/comments/229797.html</wfw:comment><comments>http://www.blogjava.net/fastzch/archive/2008/09/18/229797.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/fastzch/comments/commentRss/229797.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fastzch/services/trackbacks/229797.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 本Blog所有内容不得随意转载，版权属于作者所有。如需转载请与作者联系（														fastzch@163.com																												）。未经许可的转载，本人保留一切法律权益。一直以来，发现有某些人完全不尊重我的劳动成果，随意转载，提醒一下那些人小心哪天惹上官司。												there are two ...&nbsp;&nbsp;<a href='http://www.blogjava.net/fastzch/archive/2008/09/18/229797.html'>阅读全文</a><img src ="http://www.blogjava.net/fastzch/aggbug/229797.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fastzch/" target="_blank">Robin's Java World</a> 2008-09-18 21:04 <a href="http://www.blogjava.net/fastzch/archive/2008/09/18/229797.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux&amp;Unit命令学习(三) </title><link>http://www.blogjava.net/fastzch/archive/2008/01/21/176869.html</link><dc:creator>Robin's Java World</dc:creator><author>Robin's Java World</author><pubDate>Mon, 21 Jan 2008 15:58:00 GMT</pubDate><guid>http://www.blogjava.net/fastzch/archive/2008/01/21/176869.html</guid><wfw:comment>http://www.blogjava.net/fastzch/comments/176869.html</wfw:comment><comments>http://www.blogjava.net/fastzch/archive/2008/01/21/176869.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fastzch/comments/commentRss/176869.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fastzch/services/trackbacks/176869.html</trackback:ping><description><![CDATA[
		<p>最近两周，一直在做一些VBA的事情，一直想把工作用的系统切换到Linux平台，但是还是没有办法做到完整的切换。但继续学习Linux命令不会止步，我会继续努力。<br /><br />2008.1.21.<br />本周来学习后台命令：<br />cron 系统调度进程。使用它在每天或一个循环周期中完成作业。<br />At 使用它在一个特定的时间运行一些特殊的作业。<br />＆　使用它在后台运行一个占用时间不长的进程。<br />Nohup 使用它在后台运行一个命令，即使用户退出时也不受影响。<br /><br />crontab命令允许用户提交、编辑或删除相应的作业。每一个用户都可以有一个crontab文件来保存调度信息，系统管理员通过cron.deny和cron.allow这两个文件来禁止或允许用户拥有自己的crontab文件。<br />crontab的域：<br />分钟　小时　日　月　星期　要运行的命令<br />可以用－来表示一个时间范围，域中可以用逗号(,)表示多个选项，用＊表示连续的时间段。<br />命令格式：crontab [-u user] -e -l -r<br /><br />根用户可以通过/etc目录下的at.allow和at.deny文件来控制哪些用户可以使用at命令，哪些用户不行。<br />at命令格式：at [-f script] [-m -l -r] [time] [date]<br /><br />nohup命令格式：nohup command &amp;<br />默认会将该作业的所有输出重定向到一个名为nohup.out的文件中，可以指定输出文件，如下：<br />nohup command &gt;myout.file 2&gt;&amp;1</p>
<img src ="http://www.blogjava.net/fastzch/aggbug/176869.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fastzch/" target="_blank">Robin's Java World</a> 2008-01-21 23:58 <a href="http://www.blogjava.net/fastzch/archive/2008/01/21/176869.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux&amp;Unit命令学习(二)</title><link>http://www.blogjava.net/fastzch/archive/2007/12/28/171069.html</link><dc:creator>Robin's Java World</dc:creator><author>Robin's Java World</author><pubDate>Fri, 28 Dec 2007 01:33:00 GMT</pubDate><guid>http://www.blogjava.net/fastzch/archive/2007/12/28/171069.html</guid><wfw:comment>http://www.blogjava.net/fastzch/comments/171069.html</wfw:comment><comments>http://www.blogjava.net/fastzch/archive/2007/12/28/171069.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fastzch/comments/commentRss/171069.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fastzch/services/trackbacks/171069.html</trackback:ping><description><![CDATA[
		<p>Linux&amp;Unit命令学习的计划已经有两周停止了，原因很简单，12月11－14号去参加BEA World 2007大会，以及回来后的一周在处理很多落下的事，所以一直没继续学习总结，不过这周幸好都在操作solaris。我一向都认为学东西必须要结合实践，最好有实际的实战。慢慢来补上落下的学习内容吧。<br /><br />链接：<a title="Linux&amp;Unit命令学习 " href="/fastzch/archive/2007/11/26/163138.html" target="_blank">Linux&amp;Unit命令学习</a><br /><br /><strong>2007.12.28</strong><br />find命令的一般形式为：<br />find pathname -options [-print -exec -ok]<br />-exec表示命令对匹配的文件执行该参数所给出的shell命令。相应的形式为'command' {} \;<br />-ok跟-exec差不多，但执行前会提示用户确定是否执行。<br />options有很多选项，其中有以下一些项目：name,perm,prune,user,group,mtime -n +n,nogroup,nouser,newer file1 !file2(查找更改时间比文件file1新但比文件file2旧的文件),type,size n[c],depth,fstype,mount,follow,cpio(对匹配的文件进行备份，到磁带设备中).</p>
		<p>样例：<br />查找文件名以a或b开头的，可执行文件，并调用ls命令显示其详细信息<br />find . -name '[a-b]*' -perm 755 -exec ls -l {} \;<br />查找更改时间为5天内的文件<br />find . -mtime -5<br />列出所有的目录名<br />find . -type d</p>
		<p>
				<br />xargs可以使用户对所匹配到的文件执行几乎所有的命令，而不会受到命令长度的限制。如：<br />find . -name '*.txt' -type f|xargs grep "ttt"<br />搜索所有txt文件，并找出这些文档中存在ttt字串的文件。</p>
<img src ="http://www.blogjava.net/fastzch/aggbug/171069.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fastzch/" target="_blank">Robin's Java World</a> 2007-12-28 09:33 <a href="http://www.blogjava.net/fastzch/archive/2007/12/28/171069.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux&amp;Unit命令学习</title><link>http://www.blogjava.net/fastzch/archive/2007/11/26/163138.html</link><dc:creator>Robin's Java World</dc:creator><author>Robin's Java World</author><pubDate>Mon, 26 Nov 2007 12:38:00 GMT</pubDate><guid>http://www.blogjava.net/fastzch/archive/2007/11/26/163138.html</guid><wfw:comment>http://www.blogjava.net/fastzch/comments/163138.html</wfw:comment><comments>http://www.blogjava.net/fastzch/archive/2007/11/26/163138.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fastzch/comments/commentRss/163138.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fastzch/services/trackbacks/163138.html</trackback:ping><description><![CDATA[
		<p>前两天在同事的帮助下用Liunx的命令帮另一同事搞定了一个小需求，使他们的工作更方便了。让我觉得Liunx＆Unix的命令太强大了，所以我想要好好的学习一下，由于每周要做的事情比较多，就规定自己每周学习一个命令好了。<br />就像帮我的那位同事说的一样，没事他就在AIX下用man来一个个的看这些命令，我觉得这个方法好，先试着采用一下，然后再来解决一些问题。<br /><br /><strong>2007.11.26</strong><br />这周先从ls命令学起，正好早上也在帮同事用这个命令解决问题。<br />以下是比较有用的一些操作：<br />ls -lS   按文件的大小排序<br />ls -lS --block-size=1K 将文件信息以K为大小单位排序列出<br />ls -F 文件后面跟一个类型符＜“*”表示可执行的普通文件；“/”表示目录；“@”表示符号链接；“|”表示FIFOs；“=”表示套接字(sockets)＞<br /><br /><strong>2007.12.3</strong><br />上周后来又学了很多命令，如下，记录在此：<br />chmod 改变文件权限，会经常用到的。<br />chmod [who] operator [permission] filename    chmod命令的相对模式<br />chmod [mod] file                                             chmod命令的绝对模式，我更喜欢这种模式<br /><br />chown改变文件属主<br />chown -R -h owner file<br />-h表示在改变符号链接文件的属主时不影响该链接所指向的目标文件<br /><br />chgrp改变文件所属的组<br />chgrp groupname filename<br /><br />找出用户所属的组可以用group和id命令<br /><br />软链接命令ln<br />ln [-s] source_path target_path<br />常用的场景可能是目录太深；一份文件，多人看；应用程序的日志，指定到一个自己想要的目录，可以建一个指向该目录的链接，这个用法可能最实用，也用得最多，例如：WAS指定LOG的目录为/opt/webshpere/profile/server1/log/，我想把日志都写到/usr/log/中，可以用这样的命令：<br />ln /opt/websphere/profile/server1/log/ /usr/log/<br />这样就OK了，呵呵，好强呀!这个Windows下面肯定是不支持的。<br /><br />cd ~ 这个是回到用户的默认目录</p>
<img src ="http://www.blogjava.net/fastzch/aggbug/163138.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fastzch/" target="_blank">Robin's Java World</a> 2007-11-26 20:38 <a href="http://www.blogjava.net/fastzch/archive/2007/11/26/163138.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>［读书笔记］Spring AOP Review</title><link>http://www.blogjava.net/fastzch/archive/2006/08/15/63616.html</link><dc:creator>Robin's Java World</dc:creator><author>Robin's Java World</author><pubDate>Tue, 15 Aug 2006 02:17:00 GMT</pubDate><guid>http://www.blogjava.net/fastzch/archive/2006/08/15/63616.html</guid><wfw:comment>http://www.blogjava.net/fastzch/comments/63616.html</wfw:comment><comments>http://www.blogjava.net/fastzch/archive/2006/08/15/63616.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.blogjava.net/fastzch/comments/commentRss/63616.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fastzch/services/trackbacks/63616.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在阅读此文之前请你熟悉一些IOC的知识，同时了解AOP的概念。						在				Spring				中所有的通知都是以				Java				类的形式编写的。				Spring				是采用运行期的方式来将切面织入到系统中的。														代理						Bean								只有在第一次被应用系统需要的时候才被创建。...&nbsp;&nbsp;<a href='http://www.blogjava.net/fastzch/archive/2006/08/15/63616.html'>阅读全文</a><img src ="http://www.blogjava.net/fastzch/aggbug/63616.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fastzch/" target="_blank">Robin's Java World</a> 2006-08-15 10:17 <a href="http://www.blogjava.net/fastzch/archive/2006/08/15/63616.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《Expert one-on-one J2EE Development without EJB 中文版》读书笔记（二）</title><link>http://www.blogjava.net/fastzch/archive/2005/11/30/22009.html</link><dc:creator>Robin's Java World</dc:creator><author>Robin's Java World</author><pubDate>Wed, 30 Nov 2005 09:15:00 GMT</pubDate><guid>http://www.blogjava.net/fastzch/archive/2005/11/30/22009.html</guid><wfw:comment>http://www.blogjava.net/fastzch/comments/22009.html</wfw:comment><comments>http://www.blogjava.net/fastzch/archive/2005/11/30/22009.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fastzch/comments/commentRss/22009.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fastzch/services/trackbacks/22009.html</trackback:ping><description><![CDATA[<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0"><SPAN lang=EN-US>“</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">希望简便快捷的完成任务不等于懒惰。尤其对于那些需要经常做的事（例如实现、部署新的业务对象，或者测试一个业务方法），更应该找到简洁的做法。</SPAN><SPAN lang=EN-US>”</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（</SPAN><SPAN lang=EN-US>page 14</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">“研究的动机本身就会影响结果。”（</SPAN><SPAN lang=EN-US>page 14</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0"><SPAN lang=EN-US><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">书中在第</SPAN><SPAN lang=EN-US>17</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">页到</SPAN><SPAN lang=EN-US>20</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">页对</SPAN><SPAN lang=EN-US>J2EE</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中使用代码生成技术的种种理由及其解决办法做了详细的分析，我也对此谈谈自己的体会。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">◎根据</SPAN><SPAN lang=EN-US>RDBMS schema</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">生成持久对象类</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0"><SPAN lang=EN-US>Entity Bean</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的解耦能力的确令人不敢恭维，我在开发一个项目的时候一般都采用</SPAN><SPAN lang=EN-US>Hibernate </SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，且一般自己写“</SPAN><SPAN lang=EN-US>*.hbm</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">”配置文件，从不用工具生成，但是我会利用</SPAN><SPAN lang=EN-US>hbm2DDL</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</SPAN><SPAN lang=EN-US>hbm2Java</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">工具来生成相应的</SPAN><SPAN lang=EN-US>RDBMS schema</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和持久对象类。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">对于</SPAN><SPAN lang=EN-US>XDoclet</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">工具，其实是个不错的工具，只是使用起来麻烦了一些（我本人比较懒）。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">其实对于</SPAN><SPAN lang=EN-US>RDBMS</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的性能没有做过太多的考虑，因为一直以来做的项目不是很大，数据库的逻辑结构也很简单，所以性能的问题几乎不用考虑。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">书中提到“自动生成的持久对象不会包含任何行为，如果手工向其中添加行为，又可能给再次执行代码生成带来麻烦。一个没有行为的‘对象’是典型的反</SPAN><SPAN lang=EN-US>OO</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">设计，我们很快将再次讨论这个问题。”（</SPAN><SPAN lang=EN-US>page 17</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）我且看作者将会怎么解释这个问题？</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">◎根据持久对象类生成</SPAN><SPAN lang=EN-US>DDL</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">◎生成</SPAN><SPAN lang=EN-US>DAO</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">代码</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">◎生成</SPAN><SPAN lang=EN-US>EJB</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">部署描述符</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">◎为领域对象生成“将对象映射成</SPAN><SPAN lang=EN-US>XML</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">”的代码</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">◎生成用于访问</SPAN><SPAN lang=EN-US>EJB</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的类</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">◎生成一整套</SPAN><SPAN lang=EN-US>J2EE</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">代码，从</SPAN><SPAN lang=EN-US>JSP</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">直到</SPAN><SPAN lang=EN-US>entity bean</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（或是别的持久对象）</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在此条的附注中，作者提到了</SPAN><SPAN lang=EN-US>Intranet</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">数据库管理工具，这样的工具到是不少，可是我在想真的能通过</SPAN><SPAN lang=EN-US>IE</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">来管理网络数据库的工具太少了，好像</SPAN><SPAN lang=EN-US>PHP</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在这方面做得还算好。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">◎生成千篇一律的重复代码，例如“管理脏数据标记”</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在此复习一下“脏读”和“脏数据”。脏读就是指当一个事务正在访问数据，并且对数据进行了修改，而这种修改还没有提交到数据库中，这时，另外一个事务也访问这个数据，然后使用了这个数据。因为这个数据是还没有提交的数据，那么另外一个事务读到的这个数据是脏数据，依据脏数据所做的操作可能是不正确的。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这本书主要是在谈架构，而且限定在</SPAN><SPAN lang=EN-US>J2EE</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">平台上的架构。自然就不跟微软的</SPAN><SPAN lang=EN-US>.Net</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">等架构作比较，但偶尔也会借鉴其思想之精华。书中对自主开发框架也提出了自己的看法，进行了大篇幅的阐述，总的来看是十分有道理的，但是在很多实际的项目中，我还是经常自己写一些简单的基础设施，当然这些基础设施能够让我的团队很快理解并容易使用。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">书中对于开发过程和开发工具没有作过多的讨论。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">“除非别无选择，否则不要容忍‘伪对象’的存在。”（</SPAN><SPAN lang=EN-US>page 27</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">“在避免非</SPAN><SPAN lang=EN-US>OO</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的做法的同时，我们还应该尽量实践</SPAN><SPAN lang=EN-US>OO</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的原则。”</SPAN> <SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（</SPAN><SPAN lang=EN-US>page 27</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">对于</SPAN><SPAN lang=EN-US>OO</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的讨论，书中有前面的章节中确实花了不少的篇幅，还记得当初我去一家公司面试的时候，考官居然还在问我一个问题：“</SPAN><SPAN lang=EN-US>C</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">跟</SPAN><SPAN lang=EN-US>Java</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">有什么区别？”</SPAN></P><img src ="http://www.blogjava.net/fastzch/aggbug/22009.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fastzch/" target="_blank">Robin's Java World</a> 2005-11-30 17:15 <a href="http://www.blogjava.net/fastzch/archive/2005/11/30/22009.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《Expert one-on-one J2EE Development without EJB 中文版》读书笔记（一）</title><link>http://www.blogjava.net/fastzch/archive/2005/11/29/21847.html</link><dc:creator>Robin's Java World</dc:creator><author>Robin's Java World</author><pubDate>Tue, 29 Nov 2005 09:19:00 GMT</pubDate><guid>http://www.blogjava.net/fastzch/archive/2005/11/29/21847.html</guid><wfw:comment>http://www.blogjava.net/fastzch/comments/21847.html</wfw:comment><comments>http://www.blogjava.net/fastzch/archive/2005/11/29/21847.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://www.blogjava.net/fastzch/comments/commentRss/21847.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fastzch/services/trackbacks/21847.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
				</span>
		</p>
		<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">　　在我阅读此书之前，我应该总结一下目前在</span>
		<span lang="EN-US">J2EE</span>
		<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">方面所具有的基础知识。在我看来，</span>
		<span lang="EN-US">J2EE</span>
		<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是一个极其庞大的系统架构，对于</span>
		<span lang="EN-US">J2EE</span>
		<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">有一些初步的认识，也做过一些基于此架构的小型或中小型项目，比如基于此技术架构的网站，一些应用系统等。</span>
		<span lang="EN-US">J2EE</span>
		<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">包括以下部分：<br /></span>
		<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">　　<img src="http://www.cn-java.com/images/focuse17.gif" /><br />　　对于</span>
		<span lang="EN-US">EJB</span>
		<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，我仅仅只是知道其基本概念，从未有过深入的学习和研究，也就是说有一个肤浅的认识。而对于</span>
		<span lang="EN-US">IoC</span>
		<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
		<span lang="EN-US">AOP</span>
		<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">则有一定的了解，因为之前在学习</span>
		<span lang="EN-US">Spring</span>
		<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的时候有过一些深入的学习，但是对于</span>
		<span lang="EN-US">AOP</span>
		<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的理解是远远不够的。</span>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">好了，开始言归正传，真正开始谈谈一些我自己的肤浅观点（甚至是错误的观点）。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?>
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">书中谈到“</span>
				<span lang="EN-US">J2EE</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">应用项目至少和从前的非</span>
				<span lang="EN-US">J2EE</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">项目一样容易失败――如果不是更容易失败的话”（</span>
				<span lang="EN-US">page 4</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">），我认为一个项目的失败与该项目采用何种框架和技术有太大的关系，在这个时代，对于架构和技术的选择有很多，而更关键的因素可能得从软件项目管理方面来衡量，从所周知，一个项目采用何种架构和细节性的技术只是项目管理的一个小部分。“而在</span>
				<span lang="EN-US">J2EE</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">遭遇失败的场景中，</span>
				<span lang="EN-US">EJB</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">通常都扮演着重要的角色”（</span>
				<span lang="EN-US">page 4</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">），这样说似乎也显得很牵强。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">书中再次强调“最成功的标准都是从实践中发展出来的”</span>
				<span lang="EN-US">(page 5)</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，最显著的例子莫过于</span>
				<span lang="EN-US">OSI</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
				<span lang="EN-US">TCP/IP</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">之间的关系。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">本书的主旋律主要包括以下部分：</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span lang="EN-US">1</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、简单</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">我常常在工作中就把一些问题看得较复杂，因为总觉得这不是一件坏事，考虑到一个问题的复杂性并认真想清楚此问题的各个方面，在解决这个问题的时候相对来说就会简单一些，但是这样也确实会带来诸多问题，如软件成本的核算，我就曾因此在一个客户需求并不高的情况下把问题复杂化了，导致了那个方案的失败。上次我就是犯了“提前叫客户掏钱购买的复杂架构”（</span>
				<span lang="EN-US">page 6</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）这样的错误。“这种想法有两个问题：首先，是否让系统变得如此复杂不应该由作为架构师和开发者的我们来决定，因为买单的人不是我们；其次，即便系统最终变得如此复杂，我们又怎么知道一开始将它们考虑进来就能节约成本呢？说不定，等到有需求的时候再修改架构还会更节约呢。”（</span>
				<span lang="EN-US">page 6</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">书中主要从技术层面上讨论了这个问题，如数据库的分布，多种客户端等。对于问题的解决我们应该更切合实际一点，不要沉溺于一些不切实际的想象。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span lang="EN-US">“XP</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的核心教义之一就是：很多时候，越是节约成本，就越能开发出高质量的软件；不要试图预先解决所有能想到的问题。</span>
				<span lang="EN-US">”</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（</span>
				<span lang="EN-US">page 6</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">“使</span>
				<span lang="EN-US">J2EE</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">项目具备架构重构能力的关键在于：遵循良好的</span>
				<span lang="EN-US">OO</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">设计法则，</span>
				<span style="FONT-FAMILY: 宋体">并且<span style="COLOR: red">始终针对接口编程、而非针对类编程</span>；将<span lang="EN-US">EJB</span>之类的技术隐藏在普通<span lang="EN-US">Java</span>对象背后。</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">”（</span>
				<span lang="EN-US">page 7</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span lang="EN-US">2</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、生产率</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">虽然我没有真正的用</span>
				<span lang="EN-US">EJB</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">来开发过任何项目，但根据我对</span>
				<span lang="EN-US">EJB</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的了解来看，</span>
				<span lang="EN-US">EJB</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在生产效率方面确实存在着很大的问题。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span lang="EN-US">3</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span>
				<span lang="EN-US">OO</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">以前我在设计一个对象的时候，根本没有认真的考虑过某一个对象是否真正的合理，这个需要在以后的设计中得以重视。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span lang="EN-US">4</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、需求至上</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">“</span>
				<span lang="EN-US">J2EE</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的开发者们仅仅因为他们的技术选择――而不是客户的需求――就耗费了更多的精力。”</span>
				<span lang="EN-US">(page 8)</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span lang="EN-US">5</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、经验过程</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">经验对于一个软件开发者来说是极其重要的，很多问题只有你在具体的实施过程中才会发生，但是我从不拿一个人参加工作的时间长短来衡量一个人的经验是否丰富。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">书中提到的循证医学（</span>
				<span lang="EN-US">EBM</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）到是一件很有意思的事情，我觉得值得我们中国的医生好好的学习和思考一下（题外话）。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span lang="EN-US">6</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、可测试性</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">对于软件测试，我其实并没有深入的认识，我一直都处在开发的前沿，没有更多的机会和时间来深入研究测试，其实软件测试是一门很值得研究的学问。就拿腾讯的程序来说，其出错的机率远远高于其它软件，这是人的共知的，我想这也是腾讯所需要重视的。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">关于轻量级框架和容器，我一直在关注</span>
				<span lang="EN-US">Spring</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span>
				<span lang="EN-US">PicoContainer</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
				<span lang="EN-US">Nanning</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">等。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">书中讲到的“帕累托法则（</span>
				<span lang="EN-US">80/20</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">法则，或</span>
				<span lang="EN-US">90/10</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">法则）”的确可以作为我们在项目实施过程中考虑该如何解决问题的一个衡量标准。即“花比较少的力气就可以解决大部分的问题，而要解决剩下的少部分问题则需要多得多的努力。”（</span>
				<span lang="EN-US">page 11</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）这教会了我们如何在项目中做适当的取舍（包括软件架构的取舍和需求的取舍，当然很多时候需求是不能改变的）。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span lang="EN-US">EJB</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在那些真正需要对象的分布应用方面仍是上佳之选，同时在需要大量使用异步消息的应用中，也是不错的选择，同时，</span>
				<span lang="EN-US">EJB</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在金融中间件的应用中，也能为项目提供价值。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">本书所推行的思想就是，</span>
				<span lang="EN-US">EJB</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">并不是要被我们完全抛弃，只是在一些没有必要使用</span>
				<span lang="EN-US">EJB</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的项目中，我们可以如何找到更好，更简单，更具生产率的替代方案。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">同时需要澄清的一个误解是：</span>
				<span lang="EN-US">EJB</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">一直被视为</span>
				<span lang="EN-US">J2EE</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">平台的核心。这种观点把</span>
				<span lang="EN-US">EJB</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的地位看得太重了一些。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">书中说“还有强大的政治因素（而非技术因素）促使人们使用</span>
				<span lang="EN-US">EJB</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">”（</span>
				<span lang="EN-US">page 12</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">），对于此句中的“政治因素”不知所指。是说的来自</span>
				<span lang="EN-US">Java</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">官方（即</span>
				<span lang="EN-US">SUN</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）的因素吗？</span>
		</p>
<img src ="http://www.blogjava.net/fastzch/aggbug/21847.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fastzch/" target="_blank">Robin's Java World</a> 2005-11-29 17:19 <a href="http://www.blogjava.net/fastzch/archive/2005/11/29/21847.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>