你是不是经常遇到这些问题?
需求理解不清楚、开发速度慢、代码冗长繁重
需求理解不清楚
开发速度慢
代码冗长繁重
如何提高开发效率?
从基本功出发,提炼出了程序员想要提高自己效率的能力要求
项目概述
  • FizzBuzz
  • Args
  • Mars Rover
项目任务
  • 重复练习FizzBuzz
  • 做⼀遍Args
  • 只写测试,描述如何使⽤
  • 实现''读⼊Schema,读⼊参数''
  • 实现Args的需求
  • 做⼀遍Mars Rover
  • ⽤TDD的⽅式实现:先写测试,后写代码
项目技能
  • 掌握测试驱动开发的基本节奏
  • 10分钟内完成FizzBuzz题目
  • 编写失败的测试,驱动出产品代码
  • 养成刻意练习的节奏
  • 准确框定需求范围
  • 把需求拆解成明细的任务列表
  • 基本的面向对象设计
  • 重构的基本节奏和原则
为什么你现在就需要学习TDD?
紧跟技术趋势、提高编程效率、进阶高级工程师、与敏捷开发大师同行
项目 1:FizzBuzz
技能点:JUnit单元测试,测试驱动开发,IDEA快捷键
能力目标:IDE的快捷键操作,用JUnit编写单元测试,编写失败的测试,驱动出产品代码,充分利用代码生成 刻意练习的节奏
学习周期:3 h
这是一个简单的猜数字游戏。 想象你是个小学5年级的学生,现在还有5分钟就要下课,数学老师带全班同学玩一个小游戏。他会用手指挨个指向每个学生,被指着的学生就要依次报数:第一个被指着的学生说“1”,第二个被指着的学生说“2”,以此类推。 呃……并不完全“以此类推”……如果一个学生被指着的时候,应该报的数是3的倍数,那么他就不能说这个数,而是要说“Fizz”。同样的道理,5的倍数也不能被说出来,而是要说“Buzz”。 于是游戏开始了,老师的手指向一个个同学,他们开心地喊着:“1!”,“2!”,“Fizz!”,“4!”,“Buzz!”……终于,老师指向了你,时间仿佛静止,你的嘴发干,你的掌心在出汗,你仔细计算,然后终于喊出“Fizz!”。运气不错,你躲过了一劫,游戏继续进行。 为了避免在自己这儿失败,我们想了一个作弊的法子:最好能提前把整个列表打印出来,这样就知道到我这儿的时候该说什么了。全班有33个同学,游戏可能会玩2到3轮。现在,赶紧去写代码吧!
项目 2:Args
技能点:单元测试,任务拆分,测试驱动开发,面向对象设计,重构
能力目标:用测试用例描述和沟通需求,把需求拆解成可以逐步开发的任务列表,基本的面向对象设计,识别代码坏味道,重构的基本节奏和原则
学习周期:14 h
Args也是一个经典的编程练习题。“鲍勃大叔”Robert Martin在《Clean Code》的第14章里介绍过这个题目。
项目 3:Mars Rover
技能点:单元测试,任务拆分,测试驱动开发,面向对象设计,重构
能力目标:用测试用例描述和沟通需求,把需求拆解成可以逐步开发的任务列表,基本的面向对象设计,识别代码坏味道,重构的基本节奏和原则
学习周期:4 h
假想你在火星探索团队中负责软件开发。现在你要给登陆火星的探索小车编写控制程序,根据地球发送的控制指令来控制火星车的行动。 Mars Rover的复杂度不算高,但是更像我们日常能遇到的真实需求。客户的想法描述得并不清晰、甚至前后矛盾,这就需要我们做好需求确认、范围框定、优先级排序、任务拆解的动作。
TDD的教师团队
teacher
熊节
《敏捷中国史》作者
前ThoughtWorks总监咨询师熊节,拥有18年从业经验,曾带队主导华为、中兴的敏捷开发转型,翻译过《重构》、《实现模式》、《软件工艺》等著作。
真实还原项目学习场景
我们设计的每一个项目,都会进行详细的项目剖析和任务分解,真实还原项目的实现过程,
遇到不会的知识时,还可以看配套的视频课程
项目剖析
platform
项目任务
platform
全程陪伴,专属服务
service
业内专家1对1录屏审阅代码
专家1V1,不仅录屏审阅项目代码对错,反馈修改建议,而且帮助拓展项目思路、丰富技术知识。
service
专业助教答疑指导
学习难点一网打尽,哪里不会问哪里。9:00-22:00,助教老师都会给你答疑。
service
每周老师点评
针对性点评,帮你梳理学习重点,让学习更高效。
service
专属班级社群,班主任全程陪伴
建立了专属学习社群,让你有归属感和团队感,贴心的班主任也会经常和你沟通。
service
打卡成长计划
激励学习,打卡成长计划,建立持续投入的
学习习惯。
学习测试驱动开发我将获得什么?
掌握TDD基本方法,编写单元测试,能准确框定需求范围,拆解出可执行的开发任务
专属社群,认识敏捷领域大牛,收获学习路上的小伙伴
与敏捷专家熊节老师沟通的机会,获得老师亲自指导