Trunk Studio 實習心得 - ZPeng
105.9.2
自我介紹
我是 ZPeng,目前就讀彰師大資工系三年級。
在大二時的網際網路程式設計課程,發現自己對於實作更有興趣,因此而想要多了解web的世界
然後聽到學長的介紹, 知道創科這間公司有開目前最紅的react.js技術教學, 並且還有徵求實習生, 知道後我馬上寄出履歷, 並經過面試, 進入這間公司實習, 現在想起來還是覺得很幸運, 當時給出的經歷裡頭什麼經驗都沒有, 只有一個用bootstrap做出前端, 然後用PHP寫後端的購物商城web, 當時的自己真的菜到一個不行, 現在因為創科各個大大無私的分享, 學到了很多新東西,
工作環境
公司位在辦公大樓裡面,空間並不大,是開放式的工作空間,不過每人有配一台螢幕,工作環境很舒適。還有一台裝滿可樂和果汁的冰箱以及點心區(超級棒的)。
此外在學習上,公司除了每個月固定買一些優質新書,也會購買很多 Udemy 線上課程,有許多的學習資源可以更加充實自己,還會邀請業界高手來做課程教學, 所有課程由淺入深, 講解的十分詳細, 從理論到實做, 都能在最短的時間讓我們學到最多東西。
TDD 測試先行
一開始以為 TDD 是一種測試方法,後來才了解其實是一種開發方式。
先寫測試的開發方式實在和我以往的習慣相差很大,剛開始時思緒會一直卡住,畢竟先想結果的 output,和我以往的開發順序習慣不同,覺得在測試中呼叫一個還沒實作的功能很奇怪,一定會 error,另一方面也擔心測試寫的不正確,在過程中一直被這樣的擔心打斷思緒。
多寫幾次之後就漸漸上手了,TDD 的開發模式其實就是強迫我們先去思考功能的目的,確立需要的功能方向,避免開發過度或是方向錯誤的浪費,且在開發後還能有測試程式搭配像 Jenkins 這類的 CI Server 做自動化排程測試,保證持續開發整合的專案功能皆運作正常。
寫測試還有許多好處:
TDD的規格就是一種可執行文件
有了測試程式的 spec,工程師可以很快的了解該功能的目的及使用方法,等同於以往文件的功用。 且由於 TDD 的開發方法,可以保證這樣的測試程式文件,與程式碼是同步更新的。快速確認功能正確性
前後端分離的工作方式,當後端在開發後端功能和 API 時,若搭配測試程式,可以很快速地透過測試程式確認功能的正確性以及 debug,只要和前端溝通資料規格,不需要再等待前端測試、回報的來往時間。Test Case 即 驗收規格
依照驗收規格撰寫測試程式,搭配上述說的 CI server 做自動化的排程測試,甚至與 git 做 hook,在每次 merge 時觸發測試流程,快速驗證規格。
心得
到創科的時候, 真的什麼都不會, 連最簡單的 git 都學很久, 不過創科的各位大大, 都很願意讓大家問問題, 即使是很簡單很基礎的問題, 都是很有耐心的回覆, 並且給出解決的方法, 或是可以查詢的關鍵字, 這樣無私的分享, 耐心的教導, 真的讓我可以很快速的上手, 這次的實習經驗, 裡頭令人感到放鬆的開發環境, 重視溝通的團隊合作, 令人印象深刻, 也讓我學習到很多
感謝各位大大, 感謝創科