敏捷和TDD

举报
开发者学堂小助 发表于 2018/03/20 11:35:23 2018/03/20
【摘要】 敏捷:是一种应对快速变化的需求的一种软件开发能力。更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发过程中人的作用。

第一部分:敏捷实践

敏捷:是一种应对快速变化的需求的一种软件开发能力。更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发过程中人的作用。

Story:可以理解为一张简单描述任务的卡片,由于敏捷迭代开发要求快速持续交付,所以要求每一个story是一个尽可能独立的小任务,最佳实践证明每个story1-2人做1-2天。

站会:一般时间早上或者下午,要求每个人称述三件事:1)昨天做了什么?2)有什么问题?3)今天做什么?

codeRevive:第一阶段:不是审代码,是集体听每个提交代码着的思路,方案,审设计问题;第二阶段:审查代码是否可以重构,是否用代码可以替代注释;第三阶段:挑剔,命名不规范,格式缩进等。

新人培养:pair,其实看资料是一个自学任务,重点是怎么快速上手,那就是pair,在做任务时,你写我看,我写你看,交叉。

工具使用:用过一次完整版的Idea,再也不想用eclipse,程序员学会三件事:命令行+免费软件+翻墙工具。

第二部分:TDD(测试驱动开发)

Test:包括UT(开发者)和AT(测试,开发,SE)+自动测试(测试,SE)+其他测试(其他人)

1e.jpg


注意点:

1)   UT测试必须是幂等的;

2)   统一平台使用统一框架;

3)   写UT纳入代码监视(若纳入监视能够保证质量,但同时写UT必须纳入任务工作量)

4)   最佳实践证明:有用的UT覆盖率只能达到60%左右,若在高,有可能与AT重合,自动化重合等无用的。

测试驱动开发举例:

需求描述:

出租车两公里以内为6元,不超过8公里,每公里收费0.8元,超过后每公里多收0.4元,等待每分钟是0.25元,最终收费四舍五入,实现出租车收费系统。

需求用例分析

用例1:输入:miles=1.1km, waitTime = 2.1minutes 输出:7元

用例2:输入:miles=7km,waitTime = 0minutes 输出:10元

用例3:输入:miles=9km,waitTime=4minutes 输出:13元

用例4:输入:miles=-3km,waitTime= -5minutes,输出:Exception

用例写作(用例全部为红色)

3e.jpg

代码实现(所有的用例完全变绿):

4e.png


代码重构(在上面代码中if等判断可以单独处理),选中代码后快捷键:ctrl+alt+m 出现如下界面


5e.jpg

点击ok后,生成单独方法:

6e.png

模式设计:

面向对象的三大特征,五项原则,23种设计模式,后面有时间补充。

作者|李小永

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。