徐昊·TDD项目实战70讲

徐昊·TDD项目实战70讲 / 大师领路,带你重构TDD技能

徐昊

Thoughtworks中国区CTO

  • 课程目录
  • 课程介绍
  • 开篇词|为什么TDD是当前最具工程效能的研发流程?

    我相信,我掌握了测试驱动开发那天,我才成为了可靠、高效的职业程序员。

  • 课前必读|20年前的“老古董”技术,为什么还值得开个课?

    欢迎你加入TDD的学习!

  • 01|TDD演示(1):任务分解法与整体工作流程

    理解需求,并通过测试构成高效的节奏,是有效实施TDD的前提。

  • 02|TDD演示(2):识别坏味道与代码重构

    Kent Beck作为极限编程的创始人,将勇气作为极限编程的第一原则,提出编程的第一大敌是恐惧,实在是有非凡的洞见。

  • 03|TDD演示(3):按测试策略重组测试

    任务列表的内容体现了我们最新的认知,它的变化也记录了我们认知改变的过程。

  • 04|TDD演示(4):实现对于列表参数的支持

    我将TDD的工作状态称为“职业程序工作状态”:有序、可控、自信。

  • 05|TDD中的测试(1):状态验证为什么是主要的使用方式?

    无论使用什么样的测试框架,每个测试都由四个依次执行的阶段组成:初始化(SetUp)、执行测试(Exercise)、验证结果(Verify)和复原(Teardown)。

  • 06|TDD中的测试(2):行为验证为什么应该尽量避免使用?

    虽然行为验证会大量使用测试替身技术,但并不是所有的测试替身都是行为验证。

  • 07|TDD中的测试(3):集成测试还是单元测试?

    TDD中的测试并不是行业中所谓的“单元测试”,而是指能提供快速反馈的低成本的研发测试,也是针对不同粒度单元的功能测试。我们要从发现问题和定位问题的角度出发,去理解和思考每一个测试的功效。

【推荐学习姿势】

>> 参与学习活动(见文末),赢免单名额或徐昊赠书

>> 加入学习交流群,共赴 6 个月学习之旅

你将获得

  • 洞见测试驱动开发的实质与全貌
  • 40+小时视频,演绎架构设计新思路
  • 3个开发框架,搞定TDD的落地难题
  • 靠谱程序员必备的任务分解基本功

讲师介绍

徐昊(字八叉,号疏斋),Thoughtworks全球技术策略顾问、中国区首席技术官(CTO)、技术雷达编撰人。谈话节目《八叉说》作者,《如何落地业务建模》课程讲师。

他同时也是北京Java用户组(BJUG)和Agile China的主要创始人之一。他从2003年起开始实践极限编程等敏捷方法,多次以敏捷教练的角色帮助国内外多个团队实施极限编程,提高编码迭代效率。在Scrum和FDD等敏捷方法,敏捷交付和敏捷项目管理等方面,他也有非常丰富的经验。

他曾主持Thoughtworks中国区技术特种兵小巨人管培计划,为行业输送了多位技术带头人。近年提炼了大规模工程实践方法SEELE,将测试驱动开发(Test-Driven Development,TDD)作为核心流程,以简化知识传递成本,提升研发团队的工作效能。

徐昊在业务建模上也有深刻的洞见。由他发明的8X Flow建模法(又称“履约建模法”,Fullfillment Modeling,简称FM),可以用来解决以微服务、分布式事务为主导的架构风格中的业务建模问题,以及构建中台系统。

除了技术外,他还是国际上颇有名望的古典吉他制琴师与收藏家。在他看来,制琴让他成为了一名更好的程序员。

课程介绍

提起TDD,肯定会掀起一番互为对立的讨论。会TDD的人连声称赞叫好,认为TDD显著提高了编码效率,让自己工作起来更有安全感。而没实践过TDD的人,还在困惑这是不是天方夜谭,因为没法想象为什么需要这样的方式来开发:

  1. 为什么要开发人员来写测试?难道开发人员写了测试,测试人员就不用再测了嘛?
  2. 又要写测试,又要写生产代码,效率是不是太低了?
  3. 不写测试我也能写出可以工作的软件,那么写测试能给我带来什么好处呢?

然而TDD并不是关于“怎么写测试”“怎么消除测试人员”“怎么让开发人员多干一份活”的编码技巧。它是以测试为里程碑点的工程化研发过程。同时将软件流程中无时无处不在的低效测试手段,用可重复的、高效的自动化测试来代替,从而获得更高的工程效能。

这才是隐藏在TDD工程实践背后的核心逻辑。

TDD作为敏捷开发的重要基石,就像脚手架,为代码提供保护网。它的核心在于严格规定开发节奏,一次把需求理清,一次做对、消除返工,不用调试就能获得反馈。它最直接的收益,就是帮助你提高开发功能的效能。而最后节省出的时间,也将远远大于编写测试代码而产生的工作时间总和。

不过,学习TDD肯定需要花费一番力气,很多信服于TDD理念而自发实践的人也会被各种问题所困扰。而最佳的学习路径,就是跟一个真正会TDD的程序员一起写代码

为此,我们特别邀请了Thoughtworks中国区CTO徐昊老师,来帮你搞定TDD的落地难题。他作为国内第一批TDD的践行者,是国内目前为数不多的熟练掌握TDD技能的大师级程序员。

他会先演示一个简单的例子,让你眼见为实,对TDD形成一个感性、直观的认识。同时,他也会对TDD抽丝剥茧,消除你对单元测试的疑惑,帮你认识到TDD中测试的实质与全貌。接下来的重点是,他会带着你在复杂场景下进行实战项目的练习,帮你吃透TDD实战中的细节。

需要特别说明的是,为了帮助你最大化学习效果,我们的内容交付形式会是这样的:以视频展示为主,以图文讲解为辅。其中每节课20+分钟的视频,老师会手把手带你编写测试、驱动开发。

在课程更新的过程中,我们还会开启“线上带练”的学习项目,由徐昊老师亲自带队,手把手教你怎么在实战中练习TDD。

课程设计

课程主体可分为两个部分。

第一部分:演示开发全过程,见识真正的TDD

首先,我们将从一个编码练习级别的小例子入手,展示使用TDD的方式来实现一个简单功能的开发全过程。让你眼见为实,对TDD形成一个感性、直观的认识。

并以此为引子,串联起TDD的所有相关知识点,为之后的实战练习打下基础。同时,你也会明确知道TDD作为工程方法的核心优势在哪里。如果你需要说服周围的同事、领导开始采用TDD方法,这将给你提供足够的弹药。

第二部分:实战细节全剖析,用TDD从头实现

然后,我们将进入实战项目环节。老师将以3个技术框架为例(IoC容器、RESTful框架、SQL mapper框架),展示如何使用TDD的方式从头来实现它们,实战的细节将一览无遗。

TDD有点像物理,定理写出来很简单,但需要在不同的场景下练习,才能应用得得心应手。所以,你会在这个部分看到3个实战项目,将会有40+小时的视频演示。由徐昊老师在不同的上下文中带着你反复练习,帮助你搞定TDD的落地难题。

课程目录

适合人群

如果你有如下问题,那么TDD将值得你学习:

  1. 代码不敢做重构,怕改出什么Bug;
  2. 经常因为代码有Bug而返工加班;
  3. 代码一到上线就心惊胆战,怕出意外。

特别放送

免费领取福利

限时活动推荐

订阅须知

相关教程

Learnfk - Derby教程

Learnfk - Java教程

Learnfk - Java 泛型教程

Learnfk - Django教程

Learnfk - GraphQL教程

Learnfk - 计算机基础教程

随机推荐

艾美特Airmate值得买吗?评测结果不看后悔

赫伊莎升级纱窗网防蚊纱窗纱门哪个值得买!使用感受

米高儿童轮滑棉袜子儿童运动袜溜冰鞋滑冰旱冰袜子男女轮滑袜黄色...

史密斯A.O.Smith13升燃气热水器评测比较哪款好,究竟合不合格

兆讯移动三网随身wifi物联网插卡USB测评结果震惊你!真的好吗!

Aveeno艾惟诺妈妈润肤乳天然燕麦身体乳液冰箱评测质量怎么样!质...