# FizzBuzz 项目剖析

的确，FizzBuzz 是一个非常简单的题目。看完这道题，有工作经验的程序员恐怕会露出鄙夷的神情 ─━ \_ ─━✧。“这种编程初级班的题目，还能玩出什么花？”

关键在**速度**上。你能用多快的速度完成这道题？

* 据我们的观察，行业里平均水平大约需要 1 小时。很多优秀的程序员能在 15 分钟内完成。
* Michael Feathers（他是《修改代码的艺术》一书的作者）和 Emily Bache 在 Agile2008 大会上用了 4 分钟完成。
* 翻译《重构》第二版的林从羽老师，在写 FizzBuzz 的计算逻辑部分的时候，只用了 1 分 15 秒。

你可以赏析一下，他快在什么地方吧？

[![](https://2897586075-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LquCgGNObzQ8HY5Og1P%2F-M1icsl1439tpJGHvvdT%2F-M1ictY2f7L0K7RG4aPk%2Fvideo.png?generation=1583477924206029\&alt=media)](https://github.com/JimmyLv/tdd-frontend/tree/d820c2162f278476e9d5f0543895a35cd6efd73d/articles/fizzbuzz/videos/lcy-tdd-fizzbuzz.mp4)

提问：从这个短短的视频，除了速度，你还看到了些什么？

达到这样的编程速度，需要对自己使用的工具非常熟悉、对自己要解决的问题想得非常清楚。

这就是我们要练的基本功。

![](https://2897586075-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LquCgGNObzQ8HY5Og1P%2F-M1kJOUfpSi8Aa8f7J39%2F-M1kJRNTKphhHRGEkoTr%2Fmabu.png?generation=1583506115205118\&alt=media)

## 技能要求

让我们重申一下这个项目的要求，这就是你练习的目标：

1. 熟悉 IDE 的快捷键操作
2. 使用 Jest 编写单元测试
3. 使用 Testing Library 编写组件测试
4. 编写失败的测试，驱动出产品代码
5. 充分利用代码生成 (live template)
6. 刻意练习的节奏！

## 任务拆解

本项目分为个任务：

1. TDD 初体验
2. 利其器，整理工作环境
3. 刻意练习，再撸一遍
