用测试驱动开发是种什么感觉上岸的感觉

好用的小火箭节点推荐⭐Shadowrocket高速节点推荐

TDD的核心在于严格规定开发节奏,一次把需求理清,一次做对、消除返工,不用调试就能获得反馈。

这是一个找虐的过程,他让你在走每一步前都必须先想好要达到什么效果,每一步都有充分的测试覆盖。

里边有三个关键:

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

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

第三步小步快走:此处的坑在于很多人容易一下写多,破坏TDD节奏。

但一旦会用,节省出的时间会远大于编写测试代码而产生的工作量总和。

你有没有想过为什么明明都知道有用,但我们就是不爱写单元测试?

很多人说需求急、没时间,就算想测试也找不到接缝。 为啥呢? 因为你写代码的时候压根就没想一会儿怎么测啊大哥。

那怎么办,后面交付压力还跟着呢。 要不就先这样吧,先放着,等过两天有空了我再补。

基本功不过关不能全赖程序员,但 凭本能开发+单元测试不到位,两个加起来就是天坑。

对需求把握不准,写完PM不认;

代码有没有坑不知道,3个月前写的代码一碰就虚;

添加新功能就破坏旧功能,测出一堆bug加班修,bug越修越多;

以上循环,就会陷进无限返工、低效率的焦油坑。

现在有一个趋势,越是大厂项目就越要测试先行,你在小厂越不写测试,就离大厂的要求越远,强者愈强,几年下来差距就是这么拉开的。

我曾经翻译过《重构》这本书,10年里卖了80万册。 我在 ThoughtWorks做总监咨询师时主导了华为、中兴的敏捷开发转型,带过上百人技术团队,我最关心什么? 是一个人的工作方式,是基本功,很落地、很具体。

现在圈子里很爱说高大上的概念,我泼盆冷水,90%的时间你都是在写普通软件,应对普通难度的技术问题。决定你效率高低的到底是什么?

就是你的工作方式和基本功, 把这两件事想明白,你就能超过很多同行。

2001年我们测试驱动开发(TDD)圈里一个朋友,大家一个礼拜的活他半天就做完了,剩下四天半他就在那儿上网、炒股,后来炒股还赚了不少钱。

有人说没时间搞测试,当时他直截了当的说这是伪命题。

“你 写测试的过程本质上就是在描述 ,用无二意的清晰语言去框定精准需求,本来就该你做的事之前不做,现在做你觉得是增加工作量,这个就很搞笑了”。

测试驱动开发会逼着他追问需求细节,有三个好处:

帮他自己明确需求,

逼着产品经理自己明确需求,

日后PM甩锅说他需求理解的不对,他就把文档PM他脸上,逗谁玩呢?

我是熊节,前ThoughtWorks总监咨询师, 拥有超过十五年IT行业的从业经验,在金融、政府、电信、物流等行业的信息化建设方面有着丰富经验。

我曾经负责架构和开发多个大型企业软件系统,领导过包括华为、中兴在内多个领先企业的敏捷转型。

我早年翻译了《重构》、《最后期限》、《与熊共舞》、《软件工艺》,影响了超过150万国内开发者。 当年跟着我的小兄弟现在有火币网的首席架构师、有硅谷企业的CTO,继续发(tian)光(tian)发(jia)热(ban)。

2个月前我和极客学院合作,训练了200+位开发者,帮助他们掌握TDD、打好编程基本功。

我想做的事是,第一,通过实战营能让大家看到不同程序员的基本功有很大差距。

第二,我会让他们通过刻意训练掌握TDD, 练好编程基本功,改善开发方式,让自己受益。

受益的形式可能就是别人5天的活,他两天干完,就算公司强制996,他也可以用剩下3天学点新东西,为有一天不996做准备。

第二期《 敏捷开发实战营》将在8月8号上线 , 我会亲自带队,训练出一支能熟练应用TDD的敏捷开发团队,改进工作方式,提高编程基本功。

不论你是工作1-3年的新人、3-5年的进阶者 、 还是leader级别,都能

掌握测试驱动开发的基本节奏

用测试用例描述沟通需求

编写失败的测试,驱动产品代码

精准框定需求范围。实践重构

提高开发效率,打好基本功,成为国内开发快、质量高的那批工程师。

熊节的敏捷开发实战营

我自己亲身用了10年测试驱动开发,深知TDD的好处。 我的想法是尽量影响每一个程序员,先让一部分人练好基本功、代码又快又好,当这批人越来越多的时候行业风气就会改变,能力不行的人也会被带动。

如果你是1-3年新人,想获得更多机会,一定要一开始就有更高级的编程心法;

如果你工作了3-5年,想突破技术瓶颈,跳槽一线大厂,TDD就是你能拿出手和别人竞争的差异点;

如果你是技术leader,想整体提高团队效率,这套华为、中兴验证过的敏捷开发方法大概率也会适合你。

你的收益是:

可应用到工作的测试驱动开发方法;

完成敏捷开发核心实践;

完成3个项目,共计12个任务训练;

打好编程基本功,提高10倍开发效率。

训练营从8月8日开始,通过线上形式,一共3个项目,包含12个任务,采用图文、视频录播形式。

预计学习时长21天,即使你无法在指定时间完成训练,课程在1年内可以反复观看。

说个细节,实战营里有一个项目叫Args,完成这个项目要多久?

一般程序员需要4小时,我们做的最快的同学是27分钟。极客学院告诉我这就是宣传点,10倍提高开发效率。

我一开始觉得夸张,直到有一天一个学员拿着这个项目找到一个经验很丰富的开发,对方一看,说,我估计两个星期吧,这个同学就震惊了,然后对方又补了一句,澄清需求大概就要1、2天。

这是第一期学员的被虐心得:

“最大的收获是学习了TDD编程思维,先确立目标再行动,一步步快速迭代,确保质量,还了解到了codingdojo这种编程方式,希望能一直坚持下去,不断提高效率(◔◡◔)”

——小白

“FizzBuzz练了大概15遍左右,最后控制在10min内,重新拆解细分后,敲代码时确实更清晰,体会: 子任务的拆解很有用,第一次比较粗粒度,第二次梳理了类关系,还要继续练。 ”

——Paige

“终于做完了最后一题,自我觉得可读性可以了,总结一下收获:

1. 编码节奏和思路更清晰了,原来想很久才敢动手,现在5分钟提交一次,而且有单元测试保证,根本不用担心出错。

2. 对任务的拆分有了更深刻的理解,真正落实成一行行测试。 拆分了需求以后,保证了每一步都很小,同时也保证功能很单一,很难出现那种动不动几十行并且逻辑很复杂的代码。

3.  有了单元测试保证,下一步追求更简洁,可读性更高的代码。

感觉这么多天没有白练,编码能力有了很大的进步,感谢这个训练营,拯救了一个以为会写代码的我,以后会在工作中更多的尝试TDD,估计这辈子都离不开它了。 ”

——林泽欢

“从刚开始的蠢蠢欲动再到持之以恒,确实学到了很多东西,框定需求,识别坏代码,marserover时间花的比较多,代码里还充斥着switch,加强重构。 ”

——阿贵

“1. 去除重复代码 2. 分割常量抽取 3. 函数替换循环不断优化! ”

——陈宇明

“熊老师,我要给你生猴子! ”

——不知名男学员

学员打卡&作业点评记录

事实上,如果不是一对一的电话调研,我很难相信第一期的同学里还有这么多高手——

·     前百度教育事业部高级Java工程师 陆羽

·     极客学院技术总负责人 Kevin

·     学而思web开发工程师  李坤

·     小米金融高级前端工程师 李志明

·     华为高级 C++开发工程师  孟广明

·     飞羽科技有限公司CTO 小白

·     支付宝小程序  高级Python工程师秋叶

·     阿里巴巴-java工程师  李若舟

·     拉勾网Python工程师-zhangwl

·      ……

极客学院颁发的证书

除此之外我们还邀请了华为、ThoughtWorks、腾讯、阿里巴巴的HR驻场,为优秀学员提供内推机会。

课程不限制开发语言,只要你有开发经验,无论从事的是Java、Web、Python、PHP……都能报名,这是具体项目内容:

你将和来自各大IT公司的中高层开发者一起,共同成长,你的选择将让你成为未来中国互联网的中坚力量!

往期线下聚会 你能找到我吗?

我经常引用的就是《灌篮高手》安西教练的话:“投2万个球吧。”

版权声明:
作者:shadowrocket
链接:https://www.shadowrockets.wang/801.html
来源:Shadowrocket官网
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>