昨天我們說了,寫測試能夠確保我們的程式正確的執行,我們也說寫測試並不簡單。
我們來思考一些比較實際的情況。我知道應該要寫測試但我不會寫,團隊裡也沒有人會該怎麼辦?
這真是一個好問題,答案也很簡單,那就是去學習就可以了。我想這方面的資源很多,你一定找的到。
我覺得另一個問題可能更重要,就是為什麼我要去學習寫測試?公司又沒有要求我們寫測試,團隊裡也沒有人再寫測試,而且公司也不會給我時間讓我去學習寫測試。
你說的對,公司請你來是解決問題的,並不是來學習的。公司出錢,你必需付出時間和精力來解決問題。每天上班 8 小時,一週 40 小時來說,這 40 個小時你應該用來解決老闆的問題,而不是你自己的問題。學習寫測試是你的問題還是老闆的問題呢?
在 Clean coder 裡面提到,你每週應該工作 60 小時, 40 小時給老闆, 20 小時給自己。這 20 小時你應該用來看書、練習、學習,或做其他提能提升職業能力的事情,因為職涯發展是你自己的事。
你或許會說那我的家庭、我的生活怎麼辦,我應該為工作犧牲這些嗎?
一週有 168 小時,扣掉剛剛說的 60 小時,再留每天 8 小時,一週共 56 小時睡覺,應該還有 52 小時可以做其他的事情(168 - 60 - 56 = 52)。
當然工作應該在上班的時間完成,不該帶回家。這 20 小時你不用為了公司工作,而是為了你自己的職涯工作。所以如果你把這 20 小時拿來學習寫測試,拿來練習寫測試,那你是在讓自己往專業人士的道路上前進,你本身也會更有價值。
當你學會了寫一些測試後,想把測試應用在公司的專案上時,你一定會遇到滿滿的挫折,因為太多 legacy code 改不動。所以這邊有些建議
明天我們再來聊聊這幾個部分。