<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>partech</title>
    <description></description>
    <link>http://partech.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>测试的粒度如何界定？</title>
        <author>partech</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://partech.javaeye.com">partech</a>&nbsp;
          链接：<a href="http://partech.javaeye.com/blog/40013" style="color:red;">http://partech.javaeye.com/blog/40013</a>&nbsp;
          发表时间: 2006年12月21日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          对于测试驱动来说，如何确定要测试的主体，是个似是而非的问题。<br />在OO中对象是最基本的组织结构，那么测试的主体是否可以以对象为基本单位呢？<br />所以我们可以看见很多“对象”和“对象测试”对，比如有一个CustomerOrder对象，就会有一个CustomerOrderTest对象。虽然后者并不是总是存在。<br />另外一个常见的做法是只在服务层有测试，也就是说同时测试了Service,DomainModel，DAO。<br /><br />前者的问题在于对象都是普遍联系的，紧紧测试某个对象，会产生一些意义模糊的测试。这好比流水线作业，某个局部动作如果不放到整个流水线来考察，就没有意义。另外，需要很多的mock或stub也确实恼人。<br /><br />后者则目的明确，但问题在于运行成本昂贵，因为依赖的东西太多，以至于运行一次测试需要分钟级别的时间。同时，代码会存在相互干扰的情况。<br /><br />我认为测试应当有明确的目的，否则完全不能思考，同时也需要作合理的划分，要不成本太高。<br /><br />要到达上述要求，透过方面的视角也许是一个可以考虑的方法。<br /><br />实际上，寻找测试的粒度，就是在寻找彼此分离的关注点。<br /><br />针对关注点来进行测试，果真不蒙人？<img src="/images/smiles/icon_biggrin.gif"/>
          <br/>
          <span style="color:red;">
            <a href="http://partech.javaeye.com/blog/40013#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 21 Dec 2006 15:53:51 +0800</pubDate>
        <link>http://partech.javaeye.com/blog/40013</link>
        <guid>http://partech.javaeye.com/blog/40013</guid>
      </item>
      <item>
        <title>用ActiveRecord能否完美的匹配DomainModel?</title>
        <author>partech</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://partech.javaeye.com">partech</a>&nbsp;
          链接：<a href="http://partech.javaeye.com/blog/39287" style="color:red;">http://partech.javaeye.com/blog/39287</a>&nbsp;
          发表时间: 2006年12月16日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          用ActiveRecord能否完美的匹配DomainModel，对此我有些疑问，你有何感想？<br /><br />看看老马的定义：<br /><br /><div class="quote_title">引用</div><div class="quote_div">Active Record<br />An object that wraps a row in a database table or view, encapsulates the database access, and adds domain logic on that data.</div><br /> <br />该定义表明Active Record是对于数据库某一个表或视图行的封装，也就是用数据行的方式来建立DomainModel，还是会有阻抗失配的情况吧......
          <br/>
          <span style="color:red;">
            <a href="http://partech.javaeye.com/blog/39287#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 16 Dec 2006 11:10:36 +0800</pubDate>
        <link>http://partech.javaeye.com/blog/39287</link>
        <guid>http://partech.javaeye.com/blog/39287</guid>
      </item>
      <item>
        <title>看看测试多重要</title>
        <author>partech</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://partech.javaeye.com">partech</a>&nbsp;
          链接：<a href="http://partech.javaeye.com/blog/35309" style="color:red;">http://partech.javaeye.com/blog/35309</a>&nbsp;
          发表时间: 2006年11月21日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          前些天测试中发现，缓存好像不能处理数据变更的情况。原来还是好好的阿。<br />经过跟踪，发现问题出在UpdateTimestampsCache，不知哪位仁兄手快，改了一行if语句，把原来正确的逻辑改错了。在7月13号到11月15号之间，下载的hibernate都有这个BUG。<br /><br /><pre name="code" class="java">				return lastUpdate.longValue() &lt; timestamp.longValue();
//				if ( lastUpdate.longValue() >= timestamp.longValue() ) return false;</pre><br /><br />从这件事情，引申出另外一个问题，测试是如何的重要。<br />如此重要的特性在四个月后才得以修复，应该说hibernate的测试工作是有问题的。至少，在多对象连接的情况下，缓存没有测试。<br /><br />没有测试的代码就是这样可怕，浪费时间和精力不说，还打击了信心。<br />所以说，测试工作怎么强调都不过分阿。
          <br/>
          <span style="color:red;">
            <a href="http://partech.javaeye.com/blog/35309#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 21 Nov 2006 10:32:35 +0800</pubDate>
        <link>http://partech.javaeye.com/blog/35309</link>
        <guid>http://partech.javaeye.com/blog/35309</guid>
      </item>
      <item>
        <title>Aspect是“切面”还是“方面”？</title>
        <author>partech</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://partech.javaeye.com">partech</a>&nbsp;
          链接：<a href="http://partech.javaeye.com/blog/34259" style="color:red;">http://partech.javaeye.com/blog/34259</a>&nbsp;
          发表时间: 2006年11月14日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          在Spring Framework2.0的开发参考手册中，看到将AOP译作“面向切面编程”。<br />下面谈谈我的看法。<br /><br />把Aspect理解为切面是有道理的，因为最终的实现中，Aspect确实表现为横切与多个对象。不管是在<br />扩展模式还是对等模式。切面很形象地表达了这样的事实。<br /><br />然而，把Aspect作为切面理解，意味着被切对象的存在，似乎，切面不过是对已有对象的一个补充。<br /><br />实际上，我认为Aspect是同Object同样重要的概念，如果从需求的角度来看，甚至还更重要。要在软件开发中全程运用Aspect，就必须提升Aspect的地位，让它成为最重要的概念之一，所以，我比较倾向于按照"方面"的含义来理解Aspect。而不是针对具体实现的“切面”。在网罗需求时，我们是按照“方面”进行组织的。而运用Aspect正是要填补需求到设计实现间的转换真空。
          <br/>
          <span style="color:red;">
            <a href="http://partech.javaeye.com/blog/34259#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 14 Nov 2006 16:45:29 +0800</pubDate>
        <link>http://partech.javaeye.com/blog/34259</link>
        <guid>http://partech.javaeye.com/blog/34259</guid>
      </item>
      <item>
        <title>Re: 使用WebStart发布RCP(绝对好用)</title>
        <author>partech</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://partech.javaeye.com">partech</a>&nbsp;
          链接：<a href="http://partech.javaeye.com/blog/33579" style="color:red;">http://partech.javaeye.com/blog/33579</a>&nbsp;
          发表时间: 2006年11月10日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          直接用SWT当然累，可以考虑用Jface和jface databinding开发一个Model/View的框架阿。<br /><br />框架开发，当然是件辛苦的事情。不过，随后的开发就轻松多了。<br />并且Model和View是分离的，测试也相当的好作。EclipseRCP提供了很多现成的东西可以复用，比如可折叠的Section就是个不错的东东。并且由于合理的模块划分，使得界面的交互变更也很容易得到满足。至少，目前我看不出效率低在那里.学习曲线也并不高，看看已有的代码，只要几天就可以自主开发功能了。<br /><br />EclipseRCP是开源的，翻开代码看看，Eclipse的模块划分还是不错的，只需要花上一两天的功夫，就可以实现不需要人干预的自动更新。俺们现在就是这样的，只要有新版本，就会自动下载。<br /><br />RCP的控件已经相当丰富，而且在继续增加中，3.3增加了日期时间控件，如果早出来一点，俺们也用它了。
          <br/>
          <span style="color:red;">
            <a href="http://partech.javaeye.com/blog/33579#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 10 Nov 2006 15:48:28 +0800</pubDate>
        <link>http://partech.javaeye.com/blog/33579</link>
        <guid>http://partech.javaeye.com/blog/33579</guid>
      </item>
      <item>
        <title>Re: FDD——天才的灵感</title>
        <author>partech</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://partech.javaeye.com">partech</a>&nbsp;
          链接：<a href="http://partech.javaeye.com/blog/29900" style="color:red;">http://partech.javaeye.com/blog/29900</a>&nbsp;
          发表时间: 2006年10月24日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div class="quote_title">ozzzzzz 写道</div><div class="quote_div"><div class="quote_title">partech 写道</div><div class="quote_div"><br />1.在我参与开发的项目中，绝大多数决策，都是有充分理由的；</div><br />有充分的理由你还需要决策吗？如果决策真的是一件简单，明显，不需要费脑筋权衡的事情，这个东西还能叫决策吗？<br /></div><br />这个观点，让我有点吃惊。难道决策就是绞尽脑汁，最后凭着直觉得到的东西？<br />那么，那些做“决策支持系统”的人，岂不是都在瞎搞？提供那些有用的信息干嘛？<br />举个例子：<br />标准化的英语考试：<br />如果懂了，那么答案的选择，确实是件简单，轻松的事情；<br />如果不懂，那么选择题的答案，确实会成为你所理解的伤脑筋的“决策”。<br /><br />有人看来必然的东西，另外一些人就是不得要领。<br /><br /><div class="quote_title">ozzzzzz 写道</div><div class="quote_div"><br /><div class="quote_title">partech 写道</div><div class="quote_div"><br />2.如果出现决策信息不充分的情况，如果不是必须决策，那么，就等条件成熟了再决策，如果不得不作出决策，那就选择最简单，最容易的。</div><br />既然是必须做出的决策，你还这么选择？<br />而且作为一个项目自始至终都存在一个最大的决策，那就是这个项目是不是还有必要和可能进行下去。你是如何得到这个决策的。<br /></div><br />前面一句没看懂。<br /><br />后面一句。<br />首先，我不知道你关于“项目是不是还有必要和可能进行下去，是一个项目自始至终都存在的一个最大决策”的证据是什么？<br />做个类比“人在什么时候，会做出关于自己生死的决策？”，难道我们每天都要思考这个决策麽？“生存还是死亡，这确实是个问题？”<br /><br />如果项目中出现了你说的这个决策，那么，这个项目一定是遇到了什么不可克服的障碍，至少参与者这么看。<br /><br /><div class="quote_title">ozzzzzz 写道</div><div class="quote_div"><br /><div class="quote_title">partech 写道</div><div class="quote_div">3.我相信“快速决策，痛苦执行；缓慢决策，迅速执行”，不无道理。与其乱动，不如不动；</div><br />决策并不是说不能更改，这一点是瀑布和迭代的根本区别。同时我十分不明白为什么会快速决策，痛苦执行？是因为决策有错误？你不好修改这个错误吗？你不<br /><br />好快速验证你的决策吗？<br />缓慢决策，迅速执行？本身软件开发就是一个充满决策的权衡利弊的过程，所谓的执行其实就是以系列的决策。<br />什么叫乱动？没有目标，没有方法，没有步骤，就是乱动。而很多不动，往往就是因为没有目标，也不知道如何应对的方法，还没有可以操作的步骤，这本身就<br /><br />是一种乱动。<br /></div><br />决策可以更改，但有成本问题。如果你认为大多数决策的执行成本，都比决策成本小的话，确实可以完全不用决策了，因为即使遍历所有可能也不花费多少精力.<br />但这个假设成立麽？<br /><br />快速决策对比缓慢决策来说，可能有信息不足，思考不周全，大家未形成共识等等问题。正因为快速决策的这些弱点，所以，采用这种方法的过程，看起来<br />更象精力充沛的乱动。相反，缓慢决策虽然在决策上面花费了更多的时间，但是由于理由充分，思考周全，大家意见统一，执行起来反而更迅速，效果更好。<br /><div class="quote_title">ozzzzzz 写道</div><div class="quote_div"><br /><div class="quote_title">partech 写道</div><div class="quote_div">4.对客户有价值，并不等价于“客户说有价值”；</div><br />那么这个价值是谁去判断的呢？<br /></div><br />判断权在客户手中，但是开发人员可以提供帮助，比如提供捕获需求的技术支持，问一些开放式，无假设的问题。<br />客户拥有需求的决策权，开发人员拥有实现需求的评估权。<br /><br /><div class="quote_title">ozzzzzz 写道</div><div class="quote_div"><br /><div class="quote_title">partech 写道</div><div class="quote_div">5.我不认为“难于解决的部分往往就是项目是不是可以真正的构建起来的关键”（这倒可以成为开发人员研究新技术/难技术的借口）；<br /><br /></div><br />首先你的理解就有偏差。难于解决不仅仅是技术问题，还有业务流程问题，法律问题，社会反响问题等等。比如一个客户需求做一个网上支付，那么他们是不是<br /><br />就有能力构建这个平台呢？这个问题，恰恰应该在早期进行决策（技术的、法律的、业务的、社会的等等多种因素的权衡）。任何一个项目都会面对一个最大的<br /><br />决策，那就是这个项目是不是有必要做，是不是能够做。这个决策不仅仅是开发者面对的，而且也是甲方最关心的。<br /></div><br />我理解错了？下面是你的原话。<br /><div class="quote_title">ozzzzzz 写道</div><div class="quote_div"><br />而客户价值的判断是不是就只能依靠客户自己来判断呢？<span style="color: red">显然如果客户能够明了软件的结构和技术的风险</span>，他们对于价值的判断，同他们不明了这些风险做出的判断是不同的。因为收益总是等于收入减去支出，而难于解决的部分往往就是项目是不是可以真正的构建起来的关键。<span style="color: red">客户是希望你今天就告诉他</span>，你的这个项目不可能成功，还是你几个月之后才告诉他？ <br /></div><br /><br />如果这里的“你”，指的不是“开发人员”，哪又另当别论。<br /><br />就算你的意思是广义的风险。我也不认为“做还是不做？”，会是任何项目最关心的问题，某些处于开创期和消亡期的项目，思考这个问题会更多，但这不代表所有的项目。现在银行的人还会问“我们有必要开发网上银行系统么？”？<br /><br /><div class="quote_title">ozzzzzz 写道</div><div class="quote_div"><br /><div class="quote_title">partech 写道</div><div class="quote_div">6.别“越俎代庖”，客户固然有他的弱点，但人家也不傻，不要认为开发人员恰恰就能弥补这些弱点；<br /></div><br />这不是越俎代庖，而是客户协作。客户有弱点，这就如同开发者也有弱点一样，大家都要承认都不是完人，这才是合作的基础。而协作需要我们互相理解，并且<br /><br />努力为对方的完成工作多做一些事情，而不是被动的坐在那里等待。因为本身agile强调的就是客户协作，而不是开发者和客户的对立。<br /><br />我觉得你已经不可能提出新的观点了，散会了。</div><br />但已方不能替甲方做需求决策。
          <br/>
          <span style="color:red;">
            <a href="http://partech.javaeye.com/blog/29900#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 24 Oct 2006 20:31:12 +0800</pubDate>
        <link>http://partech.javaeye.com/blog/29900</link>
        <guid>http://partech.javaeye.com/blog/29900</guid>
      </item>
      <item>
        <title>Re: FDD——天才的灵感</title>
        <author>partech</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://partech.javaeye.com">partech</a>&nbsp;
          链接：<a href="http://partech.javaeye.com/blog/29505" style="color:red;">http://partech.javaeye.com/blog/29505</a>&nbsp;
          发表时间: 2006年10月23日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          最后作一下澄清吧：<br />1.在我参与开发的项目中，绝大多数决策，都是有充分理由的；<br />2.如果出现决策信息不充分的情况，如果不是必须决策，那么，就等条件成熟了再决策，如果不得不作出决策，那就选择最简单，最容易的。<br />3.我相信“快速决策，痛苦执行；缓慢决策，迅速执行”，不无道理。与其乱动，不如不动；<br />4.对客户有价值，并不等价于“客户说有价值”；<br />5.我不认为“难于解决的部分往往就是项目是不是可以真正的构建起来的关键”（这倒可以成为开发人员研究新技术/难技术的借口）；<br />6.别“越俎代庖”，客户固然有他的弱点，但人家也不傻，不要认为开发人员恰恰就能弥补这些弱点；
          <br/>
          <span style="color:red;">
            <a href="http://partech.javaeye.com/blog/29505#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 23 Oct 2006 13:23:32 +0800</pubDate>
        <link>http://partech.javaeye.com/blog/29505</link>
        <guid>http://partech.javaeye.com/blog/29505</guid>
      </item>
      <item>
        <title>Re: FDD——天才的灵感</title>
        <author>partech</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://partech.javaeye.com">partech</a>&nbsp;
          链接：<a href="http://partech.javaeye.com/blog/29504" style="color:red;">http://partech.javaeye.com/blog/29504</a>&nbsp;
          发表时间: 2006年10月23日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div class="quote_title">ozzzzzz 写道</div><div class="quote_div"><br />首先我们都承认如果没有充足额信息，做出的决策，无疑会带来偏差和错误的可能性大大提高。于是瀑布的做法就是，那么就等待这些信息被我们得到之后，条件成熟了，我们再做决策；要么就是做出种种长期的预测，从而进行决策。<br /></div><br /><br />就瀑布方法的具体表现来看，不可能是得到充分的信息后，做出的决策。<br />瀑布方法缺少应对变化的对策，并且不提供功能强大的反馈支持，导致其趋向于僵化。<br /><br /><div class="quote_title">ozzzzzz 写道</div><div class="quote_div"><br />而以敏捷为代表的迭代方法则采用有勇气的探索决策的方式。首先我们在当前迭代中安排的是对于客户最有价值的，最难于解决的，最模糊不清的，最难于取舍的部分进行开发。<br /></div><br /><br />“对于客户最有价值的，最难于解决的，最模糊不清的，最难于取舍的部分”，这些完全是不同的东西，而就我所知，敏捷方法只按照对于客户价值的排序，来展开工作。后面部分的任务，恰恰是需要避免的。“最难于解决的”--还指望能在这个迭代里完成麽？，“最模糊不清的”--我们需要为了一个含糊不清的理想，付出努力吗？，“最难于取舍的”--如果我完成的工作最终给舍了，谁来为我做的努力埋单？<br /><br /><div class="quote_title">ozzzzzz 写道</div><div class="quote_div"><br />而实际上迭代方式则认可即使部分输入不清晰，也可以开始行动，而等待结果出现后使用正负反馈来修正输入和输出，从而开始新一轮的循环。<br /></div><br />恰恰相反，不能确定是有价值的事情，最好别干。<br />需求都不清楚，还能期待能够进行完美的设计和实现麽？
          <br/>
          <span style="color:red;">
            <a href="http://partech.javaeye.com/blog/29504#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 23 Oct 2006 13:23:07 +0800</pubDate>
        <link>http://partech.javaeye.com/blog/29504</link>
        <guid>http://partech.javaeye.com/blog/29504</guid>
      </item>
      <item>
        <title>EssUP中的Aspect-Oriented/SOC</title>
        <author>partech</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://partech.javaeye.com">partech</a>&nbsp;
          链接：<a href="http://partech.javaeye.com/blog/25118" style="color:red;">http://partech.javaeye.com/blog/25118</a>&nbsp;
          发表时间: 2006年09月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          又看了一遍Ivar的演讲，感觉思路满新颖,下面是EssUP的基本原理Aspect-Oriented/Separation Of Concerns。编程中的Aspect和过程的Aspect的对比。<br /><br /><br />Aspect相互相对独立，可以叠加组合。<br />实践相互相对独立，可以叠加组合。<br /><br />Aspect横切业务过程<br />实践跨越（横切）软件开发的整个生命周期<br /><br />Aspect需要识别，方面可以组合<br />八大实践，就是八大方面<br /><br />作为扩展的Aspect，不是必须<br />不需要所有的实践<br /><br />Test is every Where，是一个方面的方面？<br /><br />可以通过一个Aspect来扩展另外一个Aspect<br />其它实践来扩展核心实践框架<br /><br />软件构架<br />过程构架
          <br/>
          <span style="color:red;">
            <a href="http://partech.javaeye.com/blog/25118#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 27 Sep 2006 10:22:31 +0800</pubDate>
        <link>http://partech.javaeye.com/blog/25118</link>
        <guid>http://partech.javaeye.com/blog/25118</guid>
      </item>
  </channel>
</rss>