Chinaunix首页 | 论坛 | 博客
  • 博客访问: 660524
  • 博文数量: 137
  • 博客积分: 7000
  • 博客等级: 少将
  • 技术积分: 1335
  • 用 户 组: 普通用户
  • 注册时间: 2005-11-23 15:18
文章分类

全部博文(137)

文章存档

2010年(2)

2009年(2)

2008年(2)

2007年(30)

2006年(99)

2005年(2)

我的朋友

分类: 项目管理

2010-06-06 12:12:10

  《敏捷软件开发——原则、模式于实践》(英文名:Agile Software Development-Principles, Patterns, and Practices)可谓经典之著。最近阅读其中文版的时候发现点小瑕疵,在第六章-一次编程实践中的那个保龄球演示小程序的final版本里用到的class Game的adjustCurrentFrame()方法有点小问题,导致测试全部失败。
   

private void adjustCurrentFrame(int pins)
{
  if (lastBallInFrame(pins))
    advanceFrame();
  else
    firstThrowInFrame = false;
}


应改为

private void adjustCurrentFrame(int pins)
{
  if (lastBallInFrame(pins)) {
    advanceFrame();
    firstThrowInFrame = true;
  }
  else
    firstThrowInFrame = false;
}


意即,如果该球是本轮最后一次投掷,仍需调整firstThrowInFrame标志位。

    从P70页就开始引入这个错误了,不知道是原版就有这个问题还是翻译的时候引入的这个问题,中文版的勘误里没找到,而英文版的电子书也没能从网上找到能下的(如果谁有还望能发我一份)。

    这样的一部经典著作里有这样的失误实在是不应该,毕竟不是排版问题。测试代码在这里:bowling_test.tar.bz2 ,是C++版本的,逻辑与Java版本的是一致的(不会说Java版本的就OK吧),Linux下make生成testgame测试程序。
阅读(755) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~