作者landlord (91)
看板Soft_Job
标题[心得] 重构完全hard-code实现的tennis (影片)
时间Sun Jan 31 22:22:06 2021
补上网页好读版:
https://tdd.best/code-4-fun/fake-it-till-you-make-it/
最近蛮喜欢录一些 coding 的影片分享给一些有兴趣的朋友看,
其实没打算当作啥教学性质,单纯觉得抒压。
我也觉得应该会有一些朋友跟我一样,
不管是自己coding或看别人coding影片,会觉得挺疗癒的。
这次设计的主题,是重构完全 hard-code 实现的 tennis 产品程式码。
搭配着最近刚翻译完 Kent Beck 的《TDD by Example》,
里面介绍到「假实作」的技巧:Fake it till you make it.
[注] 天珑可预购,农历年前会出版:
https://www.tenlong.com.tw/products/9789864345618?list_name=srh
这回用 Java 试着把这些写死所有内容的实作,一步一步转换成真实的 tennis 逻辑。
① YouTube 影片:
https://www.youtube.com/watch?v=d70T_lqxBmY
② GitHub commit history:
http://bit.ly/fake-it-java
正向的 TDD 设计 tennis 影片可参考下面连结,
文中有多种语言的用同样方式实现 tennis 的过程。
https://tdd.best/courses/extreme-developing-202109/
我没打算广告活动,纯粹只是多种语言的示范影片都放在那上面。
因为 2021 年到年底的培训已经全额满了,所以没有广告的必要了。
可能会有些人觉得某一些 extract method 的内容可能有些违背真实的商业逻辑,
例如 isDeuce() 怎麽可以只判断 firstPlayerScoreTimes >=3 而已?
好问题,这个空间就留给各位去思考跟调整了。
我自己从那全都写死的判断式跟回传结果「重构」回来,
享受蛮多乐趣的,建议大家可以玩玩看。
顺带一提,你可能觉得「这不叫重构,这是在实现商业逻辑」,
不瞒你说,我原本也这样觉得。
但 Kent Beck TDD 里面的「重构」是包含了「从 假实作 到 真逻辑」的部份,
我之前一直觉得这个动作是绿灯的一环,没想到是被归类到「重构」那个步骤。
看完书里前後的脉络跟解说,也是有他的道理在。
注:这次翻译其实最大的贡献,在於我跟 Kent Beck 提议,把书里面范例的演进过程,
透过 git commit 并放到 GitHub 上公开,让所有对 TDD 感兴趣的朋友,以及读者,
既能看到全貌,又能看到每一步的关键差异,还能从任何一个时间点往下练习。
Kent Beck 人是真的很大方跟 nice,我们都觉得这样对这个世界是好的,
对想了解 TDD 的朋友是有蛮大帮助的,所以他同意我准备好内容,直接公开出来。
相关资讯可参考:
https://tdd.best/book/tdd-by-example/
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.249.6.74 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1612102935.A.10A.html
※ 编辑: landlord (111.249.6.74 台湾), 01/31/2021 22:23:02
※ 编辑: landlord (111.249.6.74 台湾), 01/31/2021 22:23:36
※ 编辑: landlord (111.249.6.74 台湾), 01/31/2021 22:38:33
1F:推 ga009900: 推 91哥 01/31 22:40
2F:推 sharku: 推 01/31 23:36
3F:推 shibin: 推 01/31 23:43
4F:推 d0068267: 推 01/31 23:58
5F:推 art1: 强! 02/01 01:48
6F:→ taipoo: 推 02/01 02:10
7F:推 ragena: 91哥的就是要推 02/01 02:47
8F:推 umum29: 91哥推推推 02/01 04:16
9F:推 devilkool: 先推再看 02/01 08:40
10F:推 thumbe31949: 推 02/01 09:33
11F:推 hilliverson: 推 02/01 10:19
12F:推 geroge0820: 先推再看 02/01 11:43
13F:推 super0917: 推推 91哥 02/01 12:34
※ 编辑: landlord (111.249.6.74 台湾), 02/01/2021 15:12:06
14F:推 world4jason: 推 02/01 20:14
15F:推 azureroki: 第一次看 觉得不用滑鼠很猛 02/01 22:04
16F:→ landlord: 感谢楼上眼尖的朋友发现了,滑鼠只用来做解说用 02/02 02:13
17F:推 htury: 看到键盘流,只有推 02/02 02:25
18F:推 smily134: 推 02/02 23:52
19F:推 assanges: 推 02/03 20:02
20F:推 wulouise: 不用滑鼠真的可以节省很多中断时间 02/03 20:53
21F:→ cia1099: tennis是啥? 02/04 14:01
22F:→ landlord: 网球计分规则 02/04 14:07