Simple Twitter 專案回顧
一直以來在職場上都是以 PM 的角色開啟專案,終於在今年自學 coding 的課程結業前,迎來期待又害怕許久的 Simple Twitter 專案,擔任工程師的角色。
專案目標:在兩週時限內使用前後分離模式開發簡易推特社群網站
開發語言與框架:前端使用 Vue,後端使用 Express + MySQL
負責項目:後端開發(包含資料庫建置、後台功能與前台部分功能)與 API 部分文件撰寫
專案 Kick-off Meeting
夥伴們的線上相見歡,簡單互相認識後,很快速就訂定了幾項事務與目標:
。Git flow 協作流程:主要使用 master-develop-feature 三層架構,但由於先前都沒有協作經驗,所以前後端組員還是分頭開 repo 練習,雖然最後似乎還是沒有按照較正規的作法,但透過這次經驗對於 GIT 的流程又有更進一步的認識。
。定時檢視並交流專案狀態:最後實作上很慶幸組員們幾乎是處於秒回狀態,因此在對焦與溝通上都很順暢。
。協作工具:Slack (即時訊息分享與溝通), Trello(開發進度與會議記錄), Google Sheet(元件拆分、 API 分工、驗測劇本)
。視訊會議:Jitsi Meet, Google Meet
與後端組員的協作
之前的作業都是用 Promises,這次特別與組員提出想要以 async /await 的方式撰寫,雖然使用不同的寫法也沒有衝突,不過最後還是商討統一寫法看起來程式碼會較一致;而資料庫由我建置後,組員定義種子資料,接著開發功能的分工,採用 controller 的分法(考量:檔案衝突點少,功能連貫,能避免更動同一支檔案),我先負責 admin 後台與 user 相關的 api,另一位後端則從 tweet, reply 下手,過程中都蠻順利,遇到問題都能即時討論做法並達成共識,在卡關時也能互相 cover 找到盲點。
好物推薦:後端 API 文件這次使用 apiary 撰寫,使用 markdown 語法很是方便,後期觀察前端串 api 時的提問後,發現提供給前端其實還需要更實際的狀態碼、回傳內容、body、Content-Type …等,越詳細就越能減少溝通成本!
與前端組員的協作
與前端的協作是專案中覺得最新奇與最富挑戰的地方,因為前端會先進行元件與切版的製作,而在開發 API 時只先依照設計稿及想像力來 query 並給予資料,利用 postman 測試加上跑測試檔綠燈後就先過,但在實際串接時才發現前端需要的資料或格式跟當初想像不同,因而需要做更多的討論或調整,很 respect 前端的介面與資料串接,最期待的就是組員說 ok 的時候,看到畫面上有資料是一件很有成就感的事!
好物推薦:前期測試時考量到還需大量改動程式碼,因此前後端的串接測試時決議先使用 ngrok 工具(可以將 localhost 對應一組 http / https domain),簡單快速!
黑客松
在指定規格完成後,緊接著就是為期一整個週末的黑客松挑戰,其實在指定規格到期日前一晚,全組都還因為在做部分調整一起奮戰到半夜,但隔天大家還是很有毅力的上 google meets 即時邊讀 socket.io 的官方文件邊討論邊瞎聊,即使最後只完整做完挑戰一,但還是收穫很多也做得很開心!
專案心得
原先一直各種擔心這次的專案實作會做不完或是大卡關之類的,但實際投入後覺得其實協作專案除了技術力外,更多的時間講求的是團隊如何溝通、協調,順利的推動專案直到上線,因此要謝謝有緣的組員們讓我能有這次寶貴的經驗!