# 軟體開發邪教的救贖:AI 時代更應掌握的 TDD 技能 - Kuma Syu
{%hackmd o8oUosN0QnqMSkF1_6kH7g %}
#### 📚 議程介紹
{%preview https://webconf.tw/agenda/15 %}
###### ▼▼▼ 開始筆記 ▼▼▼
為什麼要叫邪教?
-2025-5-6 開發情境百百種, '你就是不寫測試才會沒時間' ,阿彌陀佛的說法, 宗教化開發方法的結果.
半年多以來他一直很生氣, 但忘了一件事.
天蠍座?
從'問題'的角度看SDD
什麼是SDD ?
用文件即程式碼, 達到唯一事實來源的效果

> 你洗咧共三小?
- 用模式的概念來理解世界
- 不舒適就是Force
- 問題是用Force組成.
- 有了問題就找solution
- 針對特定場景, 不斷重覆的問題跟solutoin 就為模式(pattern).
- 尋求問題的解方有二種方式.
* Form Oriented
* Context Oriented => 有框框的荷包蛋 會漂亮
麵龜 vs 紅龜粿
麵龜比較容易做失敗, 因為紅龜粿(Context Oriented)有模子
叫你帥哥的阿姨在煎蛋時, 有用模子=>Context Oriented
SSD 是哪種=?
'我的領域很複雜, 分析很難一次到位, 而且需求會一直改'
這時, 你要怎麼確保這一段是'對的'
Requirement analysis -> spec -> Test


迭代
[Emily bache](https://www.youtube.com/@EmilyBache-tech-coach)

比大小
[source code](https://github.com/bearhsu2/cctdd_poker)
Uncle Bob & Emily Bache
- 透過需求規格書轉為測試項目
測試除了保護功能, 還要能支持重構
Valentina (Cupac) Jemuovic
寫測試的時候不要mirror 你的code
OrderServiceTest -> OrderSerice
XXXrServiceTest -> XXXXSerice
..etc.
Behavior Focused :
PlaceOrderTest -> (OrderServer+PaymentService+InventoryService)
為什麼這能支援重構.(重構是非功能的改善行為)
e.g. 把Payment的事拿到Inventory去.
因為非功能的改善行為.
架構的修改, 不要影響到unit test (TDD)
為什麼TDD 這麼重要, 好的設計.
重構的設計才是好的設計
你知道這個功能對
你也了解需求的方向
誰說的: 我說的.
十天一重構 vs 一天十重構.
那我問你 :
AI code 你檢查嗎?
20行看多久, 2,000行, 40,000 行呢?
合抱之木,生於毫末;
九層之台,起於累土;
千里之行,始於足下。
有測試保護了,現在不重構, 等他長大嗎?
SDD是從問題出發的工作方法.
彰化福安宮前面的40米的路, 行人道
拿solution解決沒人乎的問題?
- 以下程式遇到什麼設計問題?
- (答案見下方)

徐巧芯: 轉綠燈不就過了嗎?騙我沒騎過車喔 => 最懂TDD的人.
TDD & SDD 雙劍合壁
Q&A
1. Demo / Prototype 要不要寫測試 => 不要.
防止老闆以為你做完了.
投影片來了:我竟然記得(?)
https://www.slideshare.net/slideshow/webconf-2025-12-13-by-kuma/284624571
---
##### 聊天區
天蠍座XDDD
>記仇
>原來如此.
簡報會放在共筆.
如果沒放就去..他
知道打電話問功夫梗的麻煩舉個手
{%preview https://www.youtube.com/watch?v=4F1hIs8_Jho %}
不就周星馳的電影!! 賭聖2還3?
> 就好奇會眾有看的人有多少而已XD
may the force be with you
Slide字超小 😢
講者好幽默
還沒到TDD
台語真好聽,親切
我的團隊成員還真的說過前端不適合寫測試這句話
> 沒事 最後有寫就好XD
> 怎麼可能,不寫就是不寫XD,數學:不會就是不會
>> 現在AI都會
>> 最後都是客戶測試(誤)
>>> 同事表示 AI 寫完就好了(咦
>>>> 有寫出來就有機會改成適合的了XD
粒度拆小真的是要養成的習慣XD
>跟需要就重構的習慣
>第一性原理 gogo
靠杯,聊天室比較熱鬧XD
>這才是常態XD
測試即規格
如果一開始有綠燈代表過度設計XDD
> 是見鬼
>> AI時代過度設計很正常啦XD
我說的..XDDDD
這個gif 好兇.
有誰找得到那個GIF 挺好玩的, 知道那個男的 港星.
讚唷 大家都good job
渣渣輝
殺小孩容易還是?? (沒聽清楚)
剛剛那個有獎徵答的答案是什麼?還沒聽懂就結束了XD
不確定是不是 Feature Envy?
是
>感謝,我再研究一下
有人記錄到剛剛的題目嗎?
我沒記錄到,但是有查到相關連結如下:
>[講者之前提過的feature envy](https://ithelp.ithome.com.tw/m/articles/10262774)