# Jumbo Workshop 2025 ## 主題 Session Topic 救回你無形中浪費的時間:從 Unit Test 到重構 ## 背景 Background and Context 「我想寫單元測試,但我沒有時間怎麼辦?」 「寫了單元測試,為什麼我還是沒有時間?」 「需求一直改,寫程式都沒時間了,怎麼可能有時間寫單元測試?」 只要是程式開發者,沒有人是「有時間」的。我們明白「沒時間」是個大問題,但針對這個問題,除了「加班」、「加人」,還有沒有其他解決辦法? 其實,小程式寫得快,大家都會,新程式寫得好,也很正常。問題是工作中我們每天面臨的都是幾萬行醜到不行(但又會賺錢)的 Legacy Code,又改不動又沒時間重寫。頭痛欲裂! 我有聽說單元測試能幫得上忙,但到底要從何下手才不會多做額外的事呢? ## 大綱 Session Description ### 關於測試 本活動以 Workshop 的方式進行,藉由一個大家都一定會寫的題目,介紹軟體工程中從不曾是眾人注目焦點,卻不能沒有的工程實踐:「單元測試」。 ### 關於重構 現今的軟體開發,需求天天在變,你今年要改的是你自己去年寫的程式。因此,具備時時小幅重新設計(重構)的能力是非常關鍵的工程技能。如果你自己寫的程式自己改不動,架構不滿意只會重寫,那你當然老是沒時間。 為什麼你需要重構?因為(老闆的)時間就是金錢。你沒有時間重寫。 ### 關於需求改變 有了自動化的單元測試,才能在需求有變時,在測試的保護下,對原有功能進行重構,並修改成更適合新需求的樣子,最後才是動手加入新功能。 Kent Beck: "Make the change easy, then make the easy change." 你沒有辦法阻止需求改變,但你可以讓自己變成不怕改需求的人。「即使不對未來需求妄加猜測,也不怕未來需求改變」的工程師,才是經得起考驗的工程師。 沒有自動化的單元測試,你就沒有「因應需求的變化而加強設計」的能力。 ## 關於參與者 - 得到單元測試與 Pair Programming 的實戰演練經驗 - 體驗「在測試下小步重構」的加速快感 - 可用自己最熟的語言、框架 - 需準備 Coding + Unit Testing 的環境 - 時間有限,請務必事先準備好環境 - 何謂單元測試,請參考:https://www.youtube.com/watch?v=689Eh22Yeqg - 可事先找好伙伴,兩人一組參加(最好是平常就會一起工作的同事) ## 關於講者 Kuma 最討厭的就是 coding 了。 你沒聽錯,身為RD,只要能滿足品質與時程,他堅持能夠少寫 code 就少寫 code。 他也很懶,能夠讓機器做的事就不自己做。 他討厭浪費,也懶得算計,就傻傻地在組織內努力推動各種流程改善、人員教育,與軟體工程實踐。 「崇尚敏捷精神,熱愛軟體工程,討厭浪費時間」— 你可以這麼形容他。 ###### tags: `活動準備`