Try   HackMD

中興 Workshop 2023

主題 Session Topic

學校不會教、面試不會考,但你一定要會的單元測試

背景 Background and Context

大學讀了四年,究竟軟體工程的「工程」在哪裡?好像沒人教、好像不用會?彷彿我們把演算法學好、計算機結構背好、LeetCode 刷好,進入科技廠就能一飛衝天、平步青雲一樣。但真正進入業界,天天加班看日出,爆肝等分紅卻變成了常態,好像這些跟當初學校教的都不是很有關係。

為什麼?

都說台灣的軟體產業強盛、人才優秀,我們就不用多說了。但每年這麼多優秀的人才進到了業界以後,一個都變成了「碼農」、「程序猿」,彷彿不這樣自嘲,我們沒辦法更貼切地形容我們的工作。

約莫 2000 年左右,美國幾位大叔在滑雪小屋討論當下美國軟體開發的困境,並一起起草了一份「敏捷宣言」,注重價值勝過規格,就此,歐美開啟了軟體開發方法新紀元。說是新紀元,大師 Uncle Bob 表示其實只是提醒了大家在這軟軟體開發已然邁入「量產化」、「企業化」的時代,莫忘軟體開發的「初衷」而已。

如今 20 幾年過去了,身在台灣的我們呢?

大綱 Session Description

本活動以 Workshop 的方式進行,藉由一個大家都一定會寫的題目,介紹軟體工程中並非注目焦點,卻不能沒有的工程實踐:「單元測試」。

在學校,需求是固定的,課修過了程式也用不到了。然而在業界,需求天天在變,你今年要改的是你自己去年寫的程式。因此,具備時時小幅重新設計(重構)的能力是非常關鍵的能力。

為什麼你需要重構?因為(老闆的)時間就是金錢。你沒有時間重寫。

有了自動化的單元測試,參與者接著才能在需求有變時,在測試的保護下,對原有功能進行重構,並修改成更適合新需求的樣子,最後才是動手加入新功能。

這些是學校從來不教、面試從來不考,老闆也完全不在意的事。但,沒有自動化的單元測試,你就沒有「因應需求的變化而加強設計」的能力。

而「不怕需求改變」的工程師,才是經得起考驗的工程師。

關於參與者

  • 得到單元測試與 Pair Programming 的實戰演練經驗
  • 需準備 Coding + Unit Testing 的環境
  • 可事先找好伙伴,兩人一組參加

關於講者

Kuma 最討厭的就是 coding 了。

你沒聽錯,身為RD,只要能滿足品質與時程,他堅持能夠少寫 code 就少寫 code。

他也很懶,能夠讓機器做的事就不自己做。

他討厭浪費,也懶得算計,就傻傻地在組織內努力推動各種流程改善、人員教育,與軟體工程實踐。

「崇尚敏捷精神,熱愛軟體工程,討厭浪費時間」— 你可以這麼形容他。

tags: 活動準備