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

第15部分(第1/4 页)

目录
最新游戏竞技小说: 异世界:我加载了职业面板【网游之永恒】开局召唤精灵公主我从山林中走来这个牧师超正义足球:一首梨花香,足坛最强前锋网游:御剑神刀斗罗:打造最强帝国,我无敌了这选手中二病?谁让他打职业的!斗罗:穿越伊布,被疯狂贴贴!我是超凡游戏唯一玩家全民领主:我打小日子就能变强开局一座龙窟,横推万界战场穿越海岛求生,误惹红发疯批大佬什么球王,叫我球神战争雷霆之从成为地狱猫车长开始型月之我的命运图鉴全民领主:开局奇迹降临全民网游:我开局五大职业我真不是游戏的反派BOSS!暗黑小佣兵

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

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

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

目录
绝世医少在都市魂归大漠身为coser的我绝对不会ooc林蕴星风筝鸟[追妻火葬场]名门盛宠:权少极致撩
返回顶部