写点什么

健荐:熊节的 TDD 实战营第三期(二)

  • 2020 年 1 月 15 日
  • 本文字数:884 字

    阅读完需:约 3 分钟

健荐:熊节的TDD实战营第三期(二)

先介绍一下测试驱动开发(TDD)

从今年 5 月甲骨文裁员开始,腾讯、阿里、京东、今日头条、几乎所有一线大厂都在做敏捷转型。


很多程序员以为贴贴卡片,开开站会,熟练跑着敏捷的各种套路就已经很敏捷了,可这些问题依旧存在:


拿到一个需求,琢磨半天想不明白如何分解下手;


代码测试不充分,上线后被抓来处理问题,代码有没有坑自己不知道;


要改动老代码,不敢轻易下手改,每做点修改都很害怕。


有没有想过开发者的核心竞争力是什么,我拿什么吃开发这碗饭?


理解需求、拆分任务、编写测试、高质量的代码实现——很少有程序员意识到,我每天的具体工作才是我的基本功。


需求把握不准,写完 PM 不认;添加新功能就破坏旧功能,bug 越修越多;以上循环,就会陷进低效率的焦油坑。


而这正是测试驱动开发(TDD)要解决的问题。


很多人说写测试没时间、TDD 没用,就像 100 多年前有人嘲笑汽车没马车跑得快。


TDD 要达成的是这三个目标:


第一,准确把握需求,开发出来的功能一定是客户想要的;


第二,保障软件质量,开发出来的代码一定是有自动化测试覆盖的。


第三,测试驱动开发,提高至少 3-5 倍开发效率。


测试驱动开发(TDD)是敏捷开发的核心实践,TDD 就像脚手架,为代码提供保护网,他的核心在于严格规定开发节奏,一次把需求理清,一次做对、消除返工,不用调试就能获得反馈。


唯一的不爽,这是一个找虐的过程,他迫使你稳定小步前进,但一旦会用,节省出的时间会远大于编写测试代码而产生的工作量总和。


里边有三个关键:


第一步任务分解:测试先行,分离关注点,并用单元测试表达;


第二步单元测试:遵循 Given-When-Then 三段式,符合极限编程原则;


第三步小步快走:TDD 迫使你小步前进,所以每一步都必须先想好要达到什么效果,每一步都有充分的测试覆盖。



受益的形式可能是别人 5 天的活,你 2 天干完,就算强制 996,你也可以用剩下 3 天学点新东西。


TDD 应该和谁学?当然是找最精通 TDD 的先行者!我非常推荐熊节,8 月熊节带队,带领 890+开发者完成敏捷开发训练,训练结束,如果你觉得没有提高开发效率,无条件退全款。


本文转载自健荐公众号。


原文链接:https://mp.weixin.qq.com/s/Mp1fV1HkIAdmgmhke0Mkaw


2020 年 1 月 15 日 18:21656

评论

发布
暂无评论
发现更多内容

优秀软件设计的特征

这就是编程

阿里云创建ssl证书,https访问

尧二水丶

阿里云 https

tensorflow实现像素级图像分割算法

AI_robot

NodeJs 介绍

小风以北

nodejs 新特性

深入分析小程序运行环境框架原理

小风以北

小程序 编译原理 框架 工作原理

民国最出名的女作家,为什么是她?

了了Vita

跟我学丨如何用鲲鹏服务器搭建Hadoop全分布式集群

华为云开发者联盟

hadoop 服务器 集群 鲲鹏 Hadoop全分布式集群

初学redis分页缓存方法实现

尧二水丶

php redis

在项目启动时(无request)获取Tomcat端口号

waitmoon

Java

如何在游戏中快速集成聊天功能

LeanCloud

游戏开发 即时通讯 聊天室 sdk

区块链底层Baas平台搭建,区块链政务底层平台开发

tensorflow实现CNN模型垃圾分类算法

AI_robot

最全Java架构师技能树:Java编程+网络+设计模式+数据库+分布式

钟奕礼

Java 编程 程序员 架构 面试

Spring Boot集成 Sentinel 实现接口流量控制

爱写Bug的麦洛

微服务 sentinel spring cloud alibaba

Tensorflow实现Transformer模型将葡萄牙语翻译成英语

AI_robot

MySQL长度问题

尧二水丶

MySQL

这可能是全网关于Camera慢动作录像(SlowMotion)介绍最全的文章了

小驰笔记

android 音视频 camera 引航计划

tensorflow实现两种图像风格融合 即神经风格迁移

AI_robot

【译】ECMAScript 2021: 最终功能集确定

清秋

JavaScript ecmascript 翻译 ES6 新闻

Android 高通Camx架构学习 - 第1章

小驰笔记

android 音视频 camera 引航计划

一个数组通过配置随机抽取组成小数组

waitmoon

Java

UUID不失精度,长度改进

waitmoon

Java uuid

看完这篇文章,你起码对分析视频卡顿有点思路了

小驰笔记

android 音视频 camera 引航计划

阿里天猫3面(Java研发):GC回收+Redis Hash算法+架构部署+秒杀等

钟奕礼

Java 编程 程序员 架构 面试

Java面试过了京东五面之后,发现掌握了这些技术也没有那么难

钟奕礼

Java 编程 程序员 架构 面试

Sentinel的注解支持 - @SentinelResource使用详解

爱写Bug的麦洛

sentinel SpringCloud Alibaba

随机数环设想

waitmoon

Java

推荐16款强大的Twitter视频下载器(2021精选)

科技猫

twitter 软件 网站 分享 视频下载

云图说|将源端MongoDB业务搬迁至华为云DDS的几种方式

华为云开发者联盟

mongodb 数据迁移 华为云文档数据库服务 DDS 文档数据库

最新阿里蚂蚁金服四面(已拿offer)Java技术面经总结

钟奕礼

Java 编程 程序员 架构 面试

智慧派出所管理系统,派出所指挥调度平台搭建

健荐:熊节的TDD实战营第三期(二)_语言 & 开发_王健_InfoQ精选文章