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

第15部分(第1/4 页)

目录
最新游戏竞技小说: 穿越到大蛇无双体育:我在奥运会,吊打大漂亮网游之四神天下人权卡!刚出卡池,刀哭全世界游戏复苏倒计时全民领主:成为巫女后一箭破万法绝地求生之天秀直播间穿成游戏卡牌,召唤师是呆萌萝莉求生游戏,我在异世卷成大佬说好用技能,你咋这么多天赋?游戏王之灵摆神话网游:女孩子也能成为大佬全民大荒:开局SSS级天赋网游之永恒神界匹配三万场,打的职业哥哭爹喊娘全民求生:从升华宝箱开始NBA数据自由定制,谗哭科詹库赛尔号:传说中的精灵小智重走大师之旅一键开启无限逃生

模�锹伎�⒐�讨凶钚麓锍傻慕崧邸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中,除去编写测试用例和实现测试用例之外的所有工作都是重构,所以,没有重构,任何设计都不能实现。至于什么时候重构嘛,还要分开看,我的经验是:实现测试用例时重构代码,完成某个特性时重构设计,产品的重构完成后还要记得重构一下测试用例。”

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

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

目录
首席老公,你被设计了!邪影本纪这货不是马超三国之魏武曹操代嫁暴戾郎君都市终极仙医
返回顶部