会员书架
首页 > 游戏竞技 > 敏捷无敌 > 第15部分

第15部分(第1/4 页)

目录
最新游戏竞技小说: 后室:新世界在现实与游戏中,寻回尘封的记忆网游:我有一箭可破万物血祭百万丧尸,我在末世当魔修魔兽之光明圣女我的领民美女多我的赛博精神病是任务提示全民末世游戏,我开局无限增幅第四天灾【救赎佣兵团】网游:你管这叫卡牌师?魔兽:狼人传叶凝薄寒年乔若星顾景琰重生:我回到了丧尸爆发的当天寒潮来袭:开局多子多福拿下女主播娇娇毒妃迷人眼,禁欲邪王被撩红了脸瓦:坏了,我成切割怪了!海彤战胤许雨晴沐长风江果果顾寒煜

模�锹伎�⒐�讨凶钚麓锍傻慕崧邸6�艺飧龌贡匦敫鶳roduct Backlog对应起来。概要设计是确保大家在XP的过程中不会脱离轨道,不会天马行空。”

“嗯,那我们就先按照这个思路实行一段时间。可以通过每次的Sprint回顾会议进行调整。那我们再来看看TDD编程?”阿捷把头转向大民。

“好!从它的英文Test…Driven Development即可以看出是测试驱动的。也就是说是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。这一点跟我们大多数人日常的实践是不同的。我们虽然也有UT,并且数量也很多,但这些UT用例基本都是在编写完功能代码之后,才编写的。”

“我觉得区别不大啊!最终都是为了验证功能的正确性。”小宝说道。

“不一样!事后的单元测试较TDD会失去大半的意义。我们先来看看通用的测试驱动开发基本过程。”大民边说边把每一步列在白板上。

(1)明确当前要完成的功能。可以记录成一个 TODO 列表。

(2)快速完成针对一个功能的测试用例编写。

(3)测试代码编译通过,但测试用例通不过。

(4)编写对应的功能代码。

(5)测试通过。

(6)对代码进行重构,并保证测试通过。

(7)循环完成所有功能的开发。

大民转过头来,指着刚刚写完的7条说,“乍一看,似乎也没什么。但深奥之处就在于第一步的明确上。如何明确?通常由业务分析人员、测试人员、开发人员进行一次讨论,就要完成的功能的验收条件达成一致并形成记录,然后测试人员设计并编写验收测试用例,开发人员编写单元测试和并实现功能代码。这样,测试人员早期介入,从而可以避免开发人员与测试人员理解不一致,开始产生争执并阻塞等待业务分析人员或者行政主管的仲裁。”

“嗯,测试就是应该越早介入越好!是吧,阿紫?”阿朱征求阿紫的支持,阿紫很快点头回应。

“对于开发人员来讲,可以强迫他从测试的角度来考虑设计,考虑代码,这样才能写出适合于测试的代码。”大民接着讲。

“从另外的一个角度上说,坚持测试优先的实践,可以让开发人员从一个外部接口和客户端的角度来考虑问题,这样可以保证软件系统各个模块之间能够较好地连接在一起,而开发人员的思考方式,也会逐步地从单纯的考虑实现,转移到对软件结构的思考上来。这才是测试优先的真正思路。”

“另外,大家看第(6)步,这里提到了重构。重构是XP里面非常重要的一个实践,只有不断地重构,才能改善代码质量、提高代码复用,它跟TDD/简单增量设计是相辅相成的,谁都离不开谁。那究竟什么时候该重构,什么情况下应该重构呢?”大民把问题提给大家,静候大家的答案。

“有新功能的时候重构。”txt电子书分享平台

第11章 你开车,我导航(4)

“需要复用代码的时候重构。”

“该重构时重构。”

“写不下去的时候重构。”

“下一次迭代时重构。”

大家七嘴八舌地回答。

大民看到大家差不多说完了,清了清喉咙:“这些想法基本都对。在TDD中,除去编写测试用例和实现测试用例之外的所有工作都是重构,所以,没有重构,任何设计都不能实现。至于什么时候重构嘛,还要分开看,我的经验是:实现测试用例时重构代码,完成某个特性时重构设计,产品的重构完成后还要记得重构一下测试用例。”

“我刚毕业时,加入的是一家铁路局里的信息部门。我很清楚地记得,;带我的大哥给我的第一句忠告就是‘如果一段代码还能工作,没有出现问题,就不要动它’因为我们做的是铁路调度实时运维系统,不能出一点差错。”小宝喝了口水,接着说,“我觉得非常有道理,一直也是奉行这个金科玉律的。你觉得呢,大民?”

大民没有马上回答,沉思了一下:“或许在你们的那个环境、那种条件下,这样做是最稳妥的。我想,你们之前肯定因为修改过代码,而导致重大错误,从而一朝被蛇咬,十年怕井绳,对代码产生了恐惧感,最终无法掌控代码。我是这样认为的,如果一个系统一直没有新的需求,使用的情形一直不变,它本身可以一直不

目录
四合院之冒牌傻柱淡淡柠檬草情敌变成了我的猫怎么办在线等急Omega琴酒的100%适配对象网王之天才的异世生活校花的贴身鬼王
返回顶部