第四章
1、问题一:在原文第80页4.5.3中,提到“在结对编程中,任何一段代码都至少被两双眼睛看过,被两个脑袋思考过。代码被不断的复审,这样可以避免牛仔式编程”不明白“牛仔式编程”的含义是什么。查阅相关信息后:
牛仔式编程:不符合正常编程逻辑和正常编程规范,也可以叫做非常规编程
优点:可以在特定的时候,减少代码,提高效率
缺点:可读性差,只适用于经验丰富者和基础扎实者(牛人写的代码我们看不懂一般就是这种情况了)
2、问题二:原文81页4.5.4中提到领航员也可以设计TDD中的测试实例。TDD是什么?
TDD:测试驱动开发,英文全称Test-Driven Development,简称TDD,是一种不同于传统的新型的开发方法。它要求在编写某个功能的代码之前先编写测试代码,然后只编写使测试通过的功能代码,通过测试来推动整个开发的进行。这有助于编写简洁可用和高质量的代码,并加速开发过程。
测试开发的基本过程如下:
① 快速新增一个测试
② 运行所有的测试(有时候只需要运行一个或一部分),发现新增的测试不能通过
③ 做一些小小的改动,尽快地让测试程序可运行,为此可以在程序中使用一些不合情理的方法
④ 运行所有的测试,并且全部通过
⑤ 重构代码,以消除重复设计,优化设计结构
简单来说,就是不可运行/可运行/重构--这正是测试驱动开发的口号。
第十七章
1、问题一:对原文405页“小强地狱”(Bug Hell)不理解。
“先级和缺陷修改的平衡
先定义一个百分比,或者一个阀值,如果你的Bug超过这个数量,那么,你将被推入小强地狱,在这个地狱里,你能够做的事情,就是改Bug,而不是制作新功能。等你把这个值降下来了,到达阀值以下,你才可以继续正常的工作。
这种对于百分比或是阀值是怎么来确定的,有没有与之相关的规定,具体是怎么操作的呢?