<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>moxie</title>
    <description></description>
    <link>http://moxie.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>Mingle抢先体验－让敏捷方法如虎添翼</title>
        <author>moxie</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://moxie.javaeye.com">moxie</a>&nbsp;
          链接：<a href="http://moxie.javaeye.com/blog/97542" style="color:red;">http://moxie.javaeye.com/blog/97542</a>&nbsp;
          发表时间: 2007年07月04日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          ThoughtWorks的敏捷项目管理产品——Mingle已经开始公测。<br /><br />Mingle是一个敏捷项目管理工具。它为整个团队在软件交付过程中提供“一站”式服务，并通过有10年敏捷项目开发经验的ThoughtWorks公司提供的开发框架共享所有的项目成果。你的团队可以使用Mingle进行项目管理，协作，文档共享，Bug跟踪，需求挖掘，以及程序代码和需求连接。<br /><br />使用Mingle的十大理由：<br /><strong>一、	Mingle是敏捷团队真正想使用的项目管理工具。</strong><br />使用Mingle，没有重复的数据录入和多余的操作。因为团队真正使用它，这样Mingle就在真实的时间里记录了项目的真正状态。<br /><strong>二、	它能实现你想要的工作方式。</strong><br />Mingle简单易用，快速，简洁，灵活。尤其是它能毫不费力的将程序代码和需求连接起来。<br /><strong>三、	Mingle可以提高团队生产率，降低项目交付风险。</strong><br />所有团队成员可以随时随地了解项目的进展情况。它可以展示激烈的软件开发“现场”，这样你可以对开发中出现的各种问题作出快速响应。<br /><strong>四、	它可以帮助团队提高学习速度，探索出适合自己的最佳开发模式。</strong><br />Mingle自动收集Story(用户案例)、Bug和其它的项目产物，并动态的将它们组织到一起。通过这些数据你甚至会发现一些意想不到的项目趋势状况。<br /><strong>五、	它简单并且强大。</strong><br />Mingle使用简单。我们只专注真正有价值的数据，并将它们在第一时间呈现出来。因此，Mingle为项目管理提供了强大智能支持，实现了简单和强大的完美结合。<br /><strong>六、	它是一个团队的知识共享平台。</strong><br />在整个开发团队中，从项目经理、开发人员、业务分析师到测试人员都能从Mingle里面得到他们需要的信息，而不是各自各地的去电子表格和文档中查找。<br /><strong>七、	Mingle会智能的完成你想要的工作。</strong><br />在你提交自己的程序代码的时候，输入这样的注释消息“修复Bug #541”。Mingle就会将提交的代码和这个Bug关联起来，并自动更新Bug的数据。在浏览这个Bug的时候，可以直接查看到修复这个Bug所改动的所有代码。在此过程中你不需要登陆到Mingle，也不需要做任何额外的工作。<br /><strong>八、	它是由ThoughtWorks制造。</strong><br />ThoughtWorks在14年以来，一直为用户提供创新的软件解决方案。我们专注于IT方案的技术和交付过程的咨询工作，被行业称为技术潮流的领先者。我们带来了敏捷开发方法，同时Mingle将会支持和推动这一切工作。<br /><strong>九、	Mingle使用你自己的开发过程。</strong><br />你可以在Mingle中使用自己已经习惯的术语，定制适合自己的各种开发流程。<br /><strong>十、	Mingle入门简单。</strong><br />Mingle安装简单，并提供一步步的配置向导。安装成功之后，默认附有ThoughtWorks提供的项目模版。可以快速启动一个新的项目。你也可以轻松的将当前项目的数据从Excel导入到Mingle。<br /><br />    您可以在这里下载观看Mingle的视频演示：<a href="http://studios.thoughtworks.com/mingle-project-intelligence/videos" target="_blank">http://studios.thoughtworks.com/mingle-project-intelligence/videos</a>。 可以通过下面的链接在线注册申请下载Mingle：<a href="http://studios.thoughtworks.com/mingle-project-intelligence/register-your-interest-in-mingle" target="_blank">http://studios.thoughtworks.com/mingle-project-intelligence/register-your-interest-in-mingle</a>。更多详情请访问Mingle的官方网站：<a href="http://studios.thoughtworks.com/mingle-project-intelligence" target="_blank">http://studios.thoughtworks.com/mingle-project-intelligence</a>。
          <br/>
          <span style="color:red;">
            <a href="http://moxie.javaeye.com/blog/97542#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, 04 Jul 2007 08:36:33 +0800</pubDate>
        <link>http://moxie.javaeye.com/blog/97542</link>
        <guid>http://moxie.javaeye.com/blog/97542</guid>
      </item>
      <item>
        <title>如何为model数据的验证写单元测试</title>
        <author>moxie</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://moxie.javaeye.com">moxie</a>&nbsp;
          链接：<a href="http://moxie.javaeye.com/blog/86694" style="color:red;">http://moxie.javaeye.com/blog/86694</a>&nbsp;
          发表时间: 2007年06月04日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          假设我们有一个model类Project，它的字段name是必须是唯一。它的单元测试可以如下：<br /><pre name="code" class="java">
  def test_project_name_should_be_uniqure
    project = Project.create!(:name => 'my project')
    assert_raises(ActiveRecord::RecordInvalid){
      Project.create!(:name => 'my project')
    }
  end
</pre><br />当然，更好的写法是这样：<br /><pre name="code" class="java">
  def test_project_name_should_be_uniqure
    project = Project.create!(:name => 'my project')
    another_project = Project.new(:name => 'my project')
    assert !another_project.valid?
    assert_equal ['Name has already been taken'],another_project.errors.full_messages
  end
</pre>
          <br/>
          <span style="color:red;">
            <a href="http://moxie.javaeye.com/blog/86694#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>Mon, 04 Jun 2007 20:46:11 +0800</pubDate>
        <link>http://moxie.javaeye.com/blog/86694</link>
        <guid>http://moxie.javaeye.com/blog/86694</guid>
      </item>
      <item>
        <title>Ruby视频教程</title>
        <author>moxie</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://moxie.javaeye.com">moxie</a>&nbsp;
          链接：<a href="http://moxie.javaeye.com/blog/85956" style="color:red;">http://moxie.javaeye.com/blog/85956</a>&nbsp;
          发表时间: 2007年06月02日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          喜欢Rails的朋友，快来补充一下Ruby的基础知识吧。这是关于ruby语言的教程，非常适合Ruby的初学者:<a href="http://showmedo.com/videos/series?name=fXRfVLC1J" target="_blank">new series of introductory Ruby videos by Chinmoy Gavini</a>
          <br/>
          <span style="color:red;">
            <a href="http://moxie.javaeye.com/blog/85956#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>Sat, 02 Jun 2007 21:37:32 +0800</pubDate>
        <link>http://moxie.javaeye.com/blog/85956</link>
        <guid>http://moxie.javaeye.com/blog/85956</guid>
      </item>
      <item>
        <title> WebWork深入浅出</title>
        <author>moxie</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://moxie.javaeye.com">moxie</a>&nbsp;
          链接：<a href="http://moxie.javaeye.com/blog/28807" style="color:red;">http://moxie.javaeye.com/blog/28807</a>&nbsp;
          发表时间: 2006年10月20日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div class="quote_title">引用</div><div class="quote_div"><br />——本文发表于《开源大本营》<br /><strong>前言</strong><br /><br />本篇文章并没有太多WebWork 的实战代码细节。本人非常希望能充当一名导游的角色，带领读者逐步游览WebWork的功能特性和原理。在第一章，我们将提出基于三层架构的Web层需要解决的10个问题，这是本文的纵轴。围绕着纵轴，我们按照横轴的顺序逐步描述讲解：WebWork简介、WebWork入门、WebWork原理、WebWork实战和技巧、展望WebWork未来、最后是本文的总结。<br /><br /><strong>基于三层架构的 Web 层需要解决的问题</strong><br /><br />我们这里讨论的Web层，是基于典型的三层架构：Web层，业务层，数据层。故，我们将不讨论任何涉及业务（业务逻辑）层和数据层功能的实现。<br /><br />Web层需要解决的问题：<br /><br />1、  数据的输入。如何获得基于无状态HTTP的请求数据？如何将请求的字符数据转换为对应的模型对象？<br /><br />2、  输入数据的验证。如何验证输入数据的合法性并给出明确的错误消息提示 ？<br /><br />3、  数据的输出。如何展现复杂的对象结构？如何处理复杂的展现逻辑？<br /><br />4、  数据的传递和共享。如何在不同的请求或页面之间传递和共享数据？<br /><br />5、  页面的流程管理。如何管理Web应用中的页面流程？<br /><br />6、  模块化的管理。如何将复杂的Web应用以模块化的方式管理？<br /><br />7、  灵活可扩展的架构。如何支持各种不同的展现层技术？如何与业务层或数据层的各种框架整合？<br /><br />8、  安全和访问控制的管理。如何提供基于Web的安全机制和资源访问控制的管理？<br /><br />9、  代码实现的简洁和高效。如何让开发步骤和代码维护变得简单？如何尽量减少开发的中间环节？如何将公共的功能剥离出来，并可以灵活的组装应用？<br /><br />10、                      其它问题。异步调用、国际化支持、文件上传、防止重复提交等等。<br /><br />下面，让我们来一起看看WebWork是如何解决上面的这些问题。<br />......<br />......<br />......<br /><strong>总结</strong><br />WebWork是本人工具箱中最爱的一个J2EE Web框架。本人开发过单纯使用Jsp和JavaServlet的项目；也曾经自己开发过基于MVC的Web框架；在2002年开始使用Struts开发；后来也在项目中分别使用过Tapestry和Spring MVC Web框架；也在当今的AJAX潮流中随波逐流。上面的一些技术也都非常优秀，擅用他们任何一个都会给您带来很多生产效率的提高。但我仍然是偏爱WebWork。WebWork的与众不同，得力于它基于OGNL的强大的数据存、取方式，得力于它那解耦的拦截器功能，得力于它那无侵入的架构设计。正是由于它，才让Web编程变得更加的自然、简单、灵活、高效。<br /></div><br />详细内容请访问这里：<a href="http://www.blogjava.net/moxie/archive/2006/10/20/76375.html" target="_blank">http://www.blogjava.net/moxie/archive/2006/10/20/76375.html</a><br />觉得blogjava的编辑器用起来比较方便，所以文章就放上面了。
          <br/>
          <span style="color:red;">
            <a href="http://moxie.javaeye.com/blog/28807#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, 20 Oct 2006 14:08:57 +0800</pubDate>
        <link>http://moxie.javaeye.com/blog/28807</link>
        <guid>http://moxie.javaeye.com/blog/28807</guid>
      </item>
      <item>
        <title>[敏捷开发][结对编程(Pair Programming) ]</title>
        <author>moxie</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://moxie.javaeye.com">moxie</a>&nbsp;
          链接：<a href="http://moxie.javaeye.com/blog/24603" style="color:red;">http://moxie.javaeye.com/blog/24603</a>&nbsp;
          发表时间: 2006年09月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <img src="http://www.blogjava.net/images/blogjava_net/moxie/pair.gif" /><em>结对编程(Pair Programming)是一个编程模式(Programming pattern)。两个程序员并排坐在一台电脑前，面对同一个显示器，使用同一个键盘，同一个鼠标一起工作。他们一起分析，一起设计，一起写测试例子，一起编码，一起单元测试，一起整合测试(Integration Test)，一起写文档等。基本上所有的开发环节都一齐肩并肩地，平等地，互补地进行开发工作。<br />    <br />      结对编程不是一个人简单地看着另一个在做什么——在卓有成效的配对工作里，这两个合作伙伴常常工作在不同抽象层次，一个人关注的是为实现眼前目标而编写的代码的细节，而另一个人考虑的是更大的前景和下一步要做的事情，这两个人的角色频繁进行更换。这是一项高强度的、严密的，且常常令人疲劳的活动，但是能够创造出经过深思熟虑的高质量代码。<br /><br />——Laurie Williams &Steve Hayes</em><br /><br />本贴是关于敏捷开发－结对编程(Pair Programming) 的内容聚集的帖子。欢迎跟贴，提供：<br /><ul>1、结对编程相关的研究资料和资源</ul><br /><ul>2、实施结对编程在国内或自己公司所遇到的阻力</ul><br /><ul>3、实践结对编程时，遇到的具体问题</ul><br /><ul>4、如何让我们的结对编程做得更好</ul><br /><ul>5、对2和3问题的解决方案</ul><br /><br />说明：描述问题时，最好能给出具体的例子，这样讨论不会太偏向于理论研究。
          <br/>
          <span style="color:red;">
            <a href="http://moxie.javaeye.com/blog/24603#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>Tue, 19 Sep 2006 10:41:37 +0800</pubDate>
        <link>http://moxie.javaeye.com/blog/24603</link>
        <guid>http://moxie.javaeye.com/blog/24603</guid>
      </item>
      <item>
        <title>展望WebWork未来</title>
        <author>moxie</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://moxie.javaeye.com">moxie</a>&nbsp;
          链接：<a href="http://moxie.javaeye.com/blog/24183" style="color:red;">http://moxie.javaeye.com/blog/24183</a>&nbsp;
          发表时间: 2006年09月11日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          这是很多人非常关心的一个问题。特别是WebWork2.2版本发布之后，官方宣称WebWork框架将要和Struts合并。这让一些WebWork的用户产生了担忧，合并之后，是不是就意味着自己在WebWork这方面技术和经验的积累都已浪费？已使用或即将使用WebWork的项目是不是就意味着更多的风险？<br />答案是：完全不用担心这些。WebWork和Struts的合并，是各取所长，然后诞生出一个更加高效的Web框架。而这个框架用得就是WebWork的优秀技术和Struts的强大社区。<br />合并的情况如下：<br />1、	产生一个新的项目Struts Action 2.0 = WebWork2.2 + 一些Struts的功能和特性。<br />2、	WebWork框架将会中止新功能的增加，如果有新的版本发布都会是Bug的修改。<br />3、	代码、框架的开发者、社区都将移到Struts。<br />4、	合并的目标是致力于生产率的提高。<br />5、	Struts不再是一个框架，它是一个社区。<br />6、	Struts社区中主要有两个Web框架。一个是基于Action模型的Struts Action；另一个是基于组件模型的Struts Shale。
          <br/>
          <span style="color:red;">
            <a href="http://moxie.javaeye.com/blog/24183#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>Mon, 11 Sep 2006 13:38:48 +0800</pubDate>
        <link>http://moxie.javaeye.com/blog/24183</link>
        <guid>http://moxie.javaeye.com/blog/24183</guid>
      </item>
  </channel>
</rss>