# 中興 Workshop 2023 ## 主題 Session Topic 學校不會教、面試不會考,但你一定要會的單元測試 ## 背景 Background and Context 大學讀了四年,究竟軟體工程的「工程」在哪裡?好像沒人教、好像不用會?彷彿我們把演算法學好、計算機結構背好、LeetCode 刷好,進入科技廠就能一飛衝天、平步青雲一樣。但真正進入業界,天天加班看日出,爆肝等分紅卻變成了常態,好像這些跟當初學校教的都不是很有關係。 為什麼? 都說台灣的軟體產業強盛、人才優秀,我們就不用多說了。但每年這麼多優秀的人才進到了業界以後,一個都變成了「碼農」、「程序猿」,彷彿不這樣自嘲,我們沒辦法更貼切地形容我們的工作。 約莫 2000 年左右,美國幾位大叔在滑雪小屋討論當下美國軟體開發的困境,並一起起草了一份「敏捷宣言」,注重價值勝過規格,就此,歐美開啟了軟體開發方法新紀元。說是新紀元,大師 Uncle Bob 表示其實只是提醒了大家在這軟軟體開發已然邁入「量產化」、「企業化」的時代,莫忘軟體開發的「初衷」而已。 如今 20 幾年過去了,身在台灣的我們呢? ## 大綱 Session Description 本活動以 Workshop 的方式進行,藉由一個大家都一定會寫的題目,介紹軟體工程中並非注目焦點,卻不能沒有的工程實踐:「單元測試」。 在學校,需求是固定的,課修過了程式也用不到了。然而在業界,需求天天在變,你今年要改的是你自己去年寫的程式。因此,具備時時小幅重新設計(重構)的能力是非常關鍵的能力。 為什麼你需要重構?因為(老闆的)時間就是金錢。你沒有時間重寫。 有了自動化的單元測試,參與者接著才能在需求有變時,在測試的保護下,對原有功能進行重構,並修改成更適合新需求的樣子,最後才是動手加入新功能。 這些是學校從來不教、面試從來不考,老闆也完全不在意的事。但,沒有自動化的單元測試,你就沒有「因應需求的變化而加強設計」的能力。 而「不怕需求改變」的工程師,才是經得起考驗的工程師。 ## 關於參與者 - 得到單元測試與 Pair Programming 的實戰演練經驗 - 需準備 Coding + Unit Testing 的環境 - 時間有限,請務必事先準備好環境 - 何謂單元測試,請參考:https://www.youtube.com/watch?v=689Eh22Yeqg - 可事先找好伙伴,兩人一組參加 ## 關於講者 Kuma 最討厭的就是 coding 了。 你沒聽錯,身為RD,只要能滿足品質與時程,他堅持能夠少寫 code 就少寫 code。 他也很懶,能夠讓機器做的事就不自己做。 他討厭浪費,也懶得算計,就傻傻地在組織內努力推動各種流程改善、人員教育,與軟體工程實踐。 「崇尚敏捷精神,熱愛軟體工程,討厭浪費時間」— 你可以這麼形容他。 ###### tags: `活動準備`