zoukankan      html  css  js  c++  java
  • 结对编程记

      很早之前就有了和同屋同学(国内大型IT企业员工)结对的想法,很想看看和一个从来没用过测试驱动开发(TDD)和结对编程(Pair)的人一起Pair是什么效果。正好最近进行郑大晔校,面对的都是白纸一张的应届毕业生,后期培训也会需要和新人Pair的经验,所以这次决定试验一下。 

      周日起了个大早,和同屋一起去吃胡辣汤,好久没吃了,美美的吃了一顿,吃饱了才能干活么。

      回家后就开始Pair,题目是上次在办公室参加Code Jam的出租车题,目标完成两个需求,分成两次迭代,时间大约1个半小时。

      第一个迭代

      按照TDD的原则,我们首先根据需求写出了测试,然后驱动出产品代码,介绍了TDD的节奏(红->绿->重构->绿),以及IntelliJ一些简单的快捷键使用。

      我首先写出测试,然后强调使用最简单的方式通过测试,紧接着在进行产品代码的重构。接着再写出第二个测试,让他来实现测试,并且提出由他主导来重构代码。

      接下来由他来写出新测试,我来实现,测试通过后一起重构代码,重构了之前他写出的不是很干净的代码。

      总体来说完成了第一个迭代的需求,并且通过频繁交流和让他亲自写代码来提升参与感。

      

      第二个迭代

      提出进一步的需求,并且不自觉的让他完成写测试->测试红->实现测试->测试绿->重构->测试绿的整体流程,基本上完成了新需求。

      由于第二步需求修改地方较多,我们写出新的测试,并且修改了之前的测试,在让测试通过的过程中,我依然建议使用“简单粗暴”的方式通过测试,然后他主动意识到要进行重构。

      在重构过程中,我们进行了很多讨论,比如他提到变量名过长,我们经过讨论意识到:通过变量已经不足以表述,所以使用方法来描述刚才的代码。最后随着我们将最后一个“魔法数”(介绍)消除,代码基本上处于一种干净的状态。

      回顾

      不足之处:

    • 我有些时候不是很耐心,揭晓答案过快,不如由他自己得出答案效果好。
    • 苹果笔记本上的特效过多,比如F12进入Dashboard,hotcorner锁屏等,有些影响参与者的情绪。
    • Windows上面的Ctrl 快捷键在Mac OS上面已经是command了,参与者很不适应。

      做得好的:

    • 很好的介绍了TDD和Pair。
    • 让参与者感受到了TDD的节奏,有了测试保证重构结果,可以信心满满的重构代码。
    • 让参与者看到了有很多很好的开发习惯,最重要的就是快捷键的使用。
    • 激发了参与者的学习兴趣,参与者表现出强烈的学习意愿,包括TDD,快捷键等

      问题:

    •   因为参与者的工作环境不同,那么如何将TDD应用到平时的工作中?
  • 相关阅读:
    1025 反转链表
    Vue--修饰符
    Vue--watch
    Vue--防止页面闪烁
    Vue--过滤器
    Vue--自定义指令
    Vue--生命周期
    vue--父子组件传递数据
    vue--父子组件调用彼此的方法
    Celery--beat
  • 原文地址:https://www.cnblogs.com/iammatthew/p/2238087.html
Copyright © 2011-2022 走看看