[心得] 重构完全hard-code实现的tennis (影片)

楼主: landlord (91)   2021-01-31 22:22:06
补上网页好读版:
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/
作者: ga009900 (Lienfa)   2021-01-31 22:40:00
推 91哥
作者: sharku (明珠求瑕)   2021-01-31 23:36:00
作者: shibin (喜饼)   2021-01-31 23:43:00
作者: d0068267 (WizXu)   2021-01-31 23:58:00
作者: art1 (人,原来不是人)   2021-02-01 01:48:00
强!
作者: taipoo (要成功要积极)   2021-02-01 02:10:00
作者: ragena   2021-02-01 02:47:00
91哥的就是要推
作者: umum29 (....)   2021-02-01 04:16:00
91哥推推推
作者: devilkool (对猫毛过敏的猫控)   2021-02-01 08:40:00
先推再看
作者: thumbe31949 (InertingFantasy)   2021-02-01 09:33:00
作者: hilliverson (还是当学生好)   2021-02-01 10:19:00
作者: geroge0820 (可.....可恶)   2021-02-01 11:43:00
先推再看
作者: super0917 (super0917)   2021-02-01 12:34:00
推推 91哥
作者: world4jason (凉风男孩)   2021-02-01 20:14:00
作者: azureroki (Roki)   2021-02-01 22:04:00
第一次看 觉得不用鼠标很猛
楼主: landlord (91)   2021-02-02 02:13:00
感谢楼上眼尖的朋友发现了,鼠标只用来做解说用
作者: htury (冰点)   2021-02-02 02:25:00
看到键盘流,只有推
作者: smily134 (father134)   2021-02-02 23:52:00
作者: assanges (秋豚老湿)   2021-02-03 20:02:00
作者: wulouise (在线上!=在电脑前)   2021-02-03 20:53:00
不用鼠标真的可以节省很多中断时间
作者: cia1099 (阿兜啊)   2021-02-04 14:01:00
tennis是啥?
楼主: landlord (91)   2021-02-04 14:07:00
网球计分规则

Links booklink

Contact Us: admin [ a t ] ucptt.com