trunk-logo-white

最新消息

Trunk Studio 實習心得 – DMoon

Share This Post

分享在 facebook
分享在 linkedin
分享在 twitter
分享在 email

自我介紹

我是 DMoon,目前就讀彰師大資工系四年級。

在大二時的網際網路程式設計課程,發現自己對於實作更有興趣,於是我開始了我的 Web 開發之旅 (不歸路),在偶然的機會與同學接了案子,之後又經過專題的辛苦歷程,有喜悅也有痛苦,一直很嚮往能夠在大四到業界實習,更了解軟體開發實務上的細節和方法,並且累積實戰經驗。

感謝自己前三年的努力,通過了畢業門檻,能夠在大四這年離開學校的舒適圈,有不同的機會可以學習,
也感謝宗穎給我機會進入創科實習,新創公司的實習經驗真的很特別,與我之前預想的工作環境有很大的不同,在這裡的每一天都很開心,感受到自己的成長和尊嚴,而不只是一台每天照著指令工作的機器。

工作環境

公司位在辦公大樓裡面,空間並不大,是開放式的工作空間,不過每人有配一台螢幕,工作環境很舒適。還有一台裝滿可樂和果汁的冰箱以及點心區。記得冬天時,霸王級的寒流來襲,實在冷的發抖,老闆馬上買了一台電暖器,真的揪甘心。老闆同時也是咖啡愛好者,每到下午,辦公室總會瀰漫著咖啡香,剛好可以提振午休後的精神,回到工作狀態。

此外在學習上,公司除了每個月固定買一些優質新書,也會購買 Udemy 線上課程,有許多的學習資源可以更加充實自己,還會邀請業界高手來做課程教學。

團隊氣氛

這是一個很重視溝通的團隊,覺得和伙伴熟悉得很快,彼此感情也很好,同事之間的氣氛是非常輕鬆的,即使是兩位老闆,工作起來也像同事、朋友一般,中午休息時,都會一起吃飯看影片及聊天,分享一下看到的新聞趣事。公司沒有很死的規定,相反地有很多彈性和討論空間,兩位老闆也都是工程師,很能夠了解工程師的文化,也非常 Open Mind,希望打造一個愉快的工作環境,有什麼想法都能一起討論,互相分享學習,有一種越來越好、不斷成長的感覺,很高興能加入這個團隊。

定期 Meetup 交流

以往覺得台中最可惜的,就是沒有台北那麼頻繁的資訊交流聚會,不過近期台中前端社群也很活躍的舉辦活動,能夠有更多交流以及學習的機會,實在感到興奮!

創科也希望能夠提倡技術交流的文化,目前每個月都會舉辦一次 meetup,除了給予我們實習生機會,上台分享我們的學習心得,更重要的是能夠和其他開發者有更多的互動交流。也會邀請業界的大大們,前來分享他們的開發歷程,或是技術推廣,期望讓台中有越來越多的技術交流聚會,一同成長。

React X Redux Meetup

React X Redux Meetup

軟體開發

Agile 敏捷式開發:Scrum

Meeting

每週團隊都會開 Sprint Planning (衝刺規劃) 會議,團隊成員一起討論這週要完成的功能進度,並拆分成較小的 task,一起玩 Scrum Poker 估算預計花費的時數,在討論的同時了解彼此對於 task 的認知以及掌握度,再排定優先順序,一起在 Sprint 衝刺期努力達成目標。

每天會有 Daily Scrum (每日站立會議),各自報告目前的進度和今日預計完成的項目,讓大家對於整體進度有共識,也了解是不是有人需要支援,一起讓開發進度順利。

Sprint 結束後,會有 Sprint Review,demo 這次完成的功能。

每個月還會有 Sprint Retrospective,分享這次 Sprint 中想要感謝的人,以及可以改善或不錯的地方。

Code Review

能進到一間會做 Code Review 的公司實習真的很幸運,Code Review 使我獲益良多,不管是前輩的指點迷津,或是同事之間互相監督提醒,都讓程式能力提升許多,程式碼風格也能有所討論達到共識,專案的程式碼品質因此更是大幅上升。

Side Project

工作之餘,也會做一些有趣的 Side Project,像是搭配紅外線發射器,可以在 Slack 傳訊息來開關電視、電燈,或是點歌到連接音響的 Raspberry Pi 上播放,真的很好玩!

TDD 測試先行

一開始以為 TDD 是一種測試方法,後來才了解其實是一種開發方式。

先寫測試的開發方式實在和我以往的習慣相差很大,剛開始時思緒會一直卡住,畢竟先想結果的 output,和我以往的開發順序習慣不同,覺得在測試中呼叫一個還沒實作的功能很奇怪,一定會 error,另一方面也擔心測試寫的不正確,在過程中一直被這樣的擔心打斷思緒。

多寫幾次之後就漸漸上手了,TDD 的開發模式其實就是強迫我們先去思考功能的目的,確立需要的功能方向,避免開發過度或是方向錯誤的浪費,且在開發後還能有測試程式搭配像 Jenkins 這類的 CI Server 做自動化排程測試,保證持續開發整合的專案功能皆運作正常。

寫測試還有許多好處:

  1. TDD的規格就是一種可執行文件
    有了測試程式的 spec,工程師可以很快的了解該功能的目的及使用方法,等同於以往文件的功用。
    且由於 TDD 的開發方法,可以保證這樣的測試程式文件,與程式碼是同步更新的。

  2. 快速確認功能正確性
    前後端分離的工作方式,當後端在開發後端功能和 API 時,若搭配測試程式,可以很快速地透過測試程式確認功能的正確性以及 debug,只要和前端溝通資料規格,不需要再等待前端測試、回報的來往時間。

  3. Test Case 即 驗收規格
    依照驗收規格撰寫測試程式,搭配上述說的 CI server 做自動化的排程測試,甚至與 git 做 hook,在每次 merge 時觸發測試流程,快速驗證規格。

DevOps 持續整合&持續交付

如何將新功能快速整合,交付到使用者手上,真的是一門學問。

相信大家以往多少都受過部署的痛苦,尤其是在開發環境與部署環境不同時,尤其麻煩,我們除了使用 Docker 來確立開發與部署環境相同外,加上 Jenkins 做自動化的 Testing 和部署,把許多繁瑣的程序自動化,可以有更多時間專注在程式的開發上,提高開發效率。

心得

我覺得到公司實習有些意外的收穫,雖然之前有和朋友合作接案的經驗,然而在實習過程中仍有許多的收穫,像是專案的開發流程及方法,團隊溝通及合作方式、工具,都讓我對於一個專案的開始到交付有更多的體會。

到創科實習,我最欣賞的是願意給新人學習以及犯錯的機會,也願意尊重每個人的想法,給予發揮的空間和自由。

相信很多人都有相同的疑慮,在決定到業界實習前,也會擔心是不是會每天都做相同的工作內容,沒有機會接觸一些比較不熟悉卻有興趣的項目。創科是一間特別的公司,只要你有熱情學習,都很願意讓你嘗試不同的挑戰,給團隊時間去摸索學習。團隊中可能各有所長,卻也都不藏私的互相教導、快速成長,犯錯時,也總是對事不對人,團隊不重複犯同樣的錯,就能越來越好,整個團隊也有向心力。

感謝創科主管願意給予我們工作上的空間和自由,而不是用時時緊迫監督的方式,只要工作的方向及方法沒有偏離目標,清楚知道處理的先後順序,能夠自我管理並交付進度即可。在這樣的開發氛圍下,能夠和團隊一起完成專案目標變成一件令人興奮的事情。

感謝主管和實習期間合作的伙伴們,給我一段愉快且寶貴的工作經驗,能和你們一同努力非常開心,也成長很多。

第一次聚餐

產品資訊
tilda.lu

產品資訊

Ut Elit Tellus, Luctus Nec Ullamcorper Mattis, Pulvinar Dapibus Leo. Donec Sodales Sagittis Magna. Sed Consequat, Leo Eget Bibendum Sodales, Augue Velit Cursus Nunc, Quis Gravida Magna Mi A Libero. Lorem Ipsum Dolor Sit Amet, Consectetur Adipiscing.Ut Elit Tellus, Luctus Nec Ullamcorper Mattis, Pulvinar Dapibus Leo. Donec Sodales Sagittis Magna. Sed Consequat, Leo Eget Bibendum Sodales, Augue Velit Cursus Nunc, Quis Gravida Magna Mi A Libero. Lorem Ipsum Dolor Sit Amet, Consectetur Adipiscing.

閱讀更多 »

Do You Want To Boost Your Business?​

Drop Us A Line And Keep In Touch​