实战营第一战:FizzBuzz
2020-05-01
居然什么都没干。
虽然训练营从 5 月 6 日才正式开始,但是原本计划是五月份每天一个小时左右的学习时间,没想到,第一天就……
好吧,其实我还是去看了一下训练营的飞书群,领了一个红包,然后看到有 5、6 个同学都已经交作业了,焦虑
2020-05-02
顺着飞书群里面的留言,看了一篇 CSDN 上关于 TDD 的笔记,主要是介绍三角测量原理的,大意就是多个角度测量,以确保精确。具体到测试驱动开发,意思就是要写一些不同角度的单元测试,以保证测试的准确性。
其实很早之前就看过《测试驱动开发》那本书,而且敲过书中的代码,当时似乎看的是 C# 版本的。这次训练营期间,如果有机会,打算重读一下 Java 版本的。
然后通读了有关极限编程的文章 http://extremeprogramming.cn/,其实里面的大部分的概念,我都愿意接受,但是一直没有机会体验或者深入实践。如果有机会,希望能拿到采用极限编程的职位。
看到又有一名同学提交了作业,我今天一定要提交一次。
第一版的代码,丑陋的
我能够在 10 分钟左右完成一段丑陋的代码,完成任务需求,但是写不出单元测试。估计很多程序员都能写这样的代码,但是熊节老师会说,“你这个程序,打算怎么给人用呢?”
我对于 IntelliJ IDEA 编辑器非常不熟悉,而且完全没有先写测试用例的思路,任重道远。
看了一遍熊节老师的 TDD 演示,我自己的问题一个是出在拆解任务上,另外就是在于对于编辑器不熟练。好在我还有时间,还可以练。
练了一下 typing.io,打算在这一个月内提高一下自己的打字速度,我现在的 WPM 在 45 左右。不知道练到多少,就可以达到职业水准,在实战营里有手速接近 70 的快手。
按照训练营的视频指导,完成了一个最简单 TDD 流程,这个例子似乎在 Kent Beck 的书上也有。
已经过了 12 点了,明天继续。
2020-05-03
看到群里面有人的 wpm 达到了 60,而我现在处于 50 上下的样子。
今天没有进行测试驱动开发的练习。
2020-05-04
在开始之前,用 typing.io 做了一下热身,已经可以将 wpm 提高到 50 以上了。
跟着 @熊节 老师的视频,完成了一次 FizzBuzz,视频大概是 14 分钟,而我这边加上熟悉编辑器和快捷键,第一次大概用了一个小时左右。
老师设定的目标是,在重复练习之后,把时间控制在 7 分钟以内。
自己写的第一遍,大概花了 25 分钟左右,中间出现了一些失误,比如先测试了被 3 整除,而不是普通数字;另外,有好几次搞错了测试用例,特别是在最后的那一步,当数字中包含 3 或 5 的时候。
小结一下,第一遍的问题主要是出现在一开始拆分任务的时候,没有想得特别清楚;也就导致了测试用例没有准备充分。但是如果把测试用例全都准备好,似乎又违背的测试驱动开发的本意。
再写一遍,大概还是控制在 20 分钟左右,这一次居然把 relateTo 里面的“或” || 写成了“并” &&。
IntelliJ IDEA 的确好用,应该可以算是生产力工具。之前在 Visual Studio 上用过 JetBrains 的 C# 插件,风格类似,有些快捷键也一样(从 Windows 转到了 MacOS)。
突然意识到目前的写法似乎有些问题。不应该使用构造函数来传递参数,可以使用一般的对象方法或者是静态方法。
今日常用 IntelliJ IDEA 快捷操作:
最好用的是 Command + Shift + Enter 补全代码
Alt + Ctrl + R 运行程序(包括测试)
Command + Alt + N 内联代码
Command + Shift + T 打开测试代码(测试和源码互相切换)
版权声明: 本文为 InfoQ 作者【escray】的原创文章。
原文链接:【http://xie.infoq.cn/article/bf9ecb5169450484c2ed7dd92】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论