初探協作專案的全端工程師

Harry Lu
5 min readAug 9, 2020

前言

從還是Coding菜鳥(轉職-我的第一堂Coding課)時參加的入門課程一路走來到現在完成了整趟旅程,回頭一看覺得挺不可思議的!不論未來發展如何,自己也算是完成了當初報名AC時給自己的起許-堅持學習完成整趟課程,值得給自己拍拍手。當然,這不是學習程式語言的終點,而更像是起點,所以我想先總結我在AC整趟旅程的最後做了些什麼,以便更好的往下一步邁進。這篇重點會著重在學期末協作專案的心路歷程及技術學習分享,希望可以幫助到在看文章的你以及未來的自己。

協作專案 — Simple Twitter

先簡單介紹一下此專案的User Story,此app具有註冊/登入功能,登入後可以設定更改自己的個人資訊(如頭像、名稱、email、密碼等),在首頁可以看到其他使用者的貼文並可以針對貼文做出回覆及按讚/收回讚,首頁的一側有使用者推薦名單,可針對使用者追蹤/取消追蹤,首頁的另一側則是選單,可以進入個別使用者頁面、個人資訊設定頁面以及發送推文的按鈕。其他更細節的使用者體驗我就不一一贅述,讓讀者保留一點想像空間。

協作專案分工 (GitHub)

專案協作主要為三人一組,可以分兩種合作形式進行,分別為三人全端及一人前端兩人後端的前後端分離模式,而我由於已經體驗過以全端的形式做出專案,本著想體驗看看前後端分離是如何協作下,我與另外一後端位夥伴找了一位前端夥伴就開始進行實作。在協作裡,我負責後端中的API文件撰寫、API基本架構的建立、後端git的整合以及通過各條路由的自動測試,另一位後端夥伴則是負責在前後端分離下實作註冊/登錄/認證功能、種子資料的設計以及專案工具建立(如Slack、Trello等),而前端夥伴則是利用Vue框架建立前端畫面以及以API串接後端資料。

Trello-後端看板中的卡片分工

協作中的收穫

此次協作中的我和另一位後端都算是兼職和全職進行專案協作,而前端夥伴則是還有軟體工程師的工作,且協作專案的限時內又恰巧遇到前端夥伴工作繁忙的時期,故前端夥伴要能抽出時間進行前端進度實作和進行小組協作討論會比較困難,加上我與另外一位夥伴能幫忙前端的部分有限,造成最後的成品完整度不如預期。有了這樣的經驗,讓我反思自己在做選擇前要先評估自己的能力,此次由於不熟悉Vue框架,故即便後端部分完成後要協助前端,也只能依靠忙於工作的前端夥伴提出架構解釋和需求才能進行部分協助,並無法直接就前端專案進行實作,造成很多能夠利用的時間無形中浪費了。

黑客松挑戰 (GitHub)

完成了基本功能後,AC發出了限時兩天的挑戰功能-即時公開聊天/私人聊天,在完全沒有提示的狀況下,由組員們自行上網查找資料完成功能規格,而我們這組主要是以socket.io技術融合現有的Node.js/express+MySQL資料庫的架構來完成,詳細的實作技術內容我會額外再開一篇分享,這裡想用來分享實作的心路歷程。

有了先前的經驗,在了解前端夥伴工作繁忙下,若要能提交較完整的作品,勢必要以我與另位夥伴較熟悉的全端方式進行,這樣不僅能進行socket.io技術的攻略也能以Handlebars進行畫面的呈現,於是在我與另外一位後端夥伴的討論下,決定讓前端先於有空時專心把基本功能完成,而我與後端夥伴來完成限時兩天的挑戰題。我們的分工為,我負責攻略sokcet.io的技術以及前後端邏輯架構的建立,而另外一位夥伴則是負責登錄認證機制的更動以及刻出要求畫面。

公開聊天室 (GitHub)
私人聊天室 (GitHub)

Socket.io實作心得

一開始按照socket.io官網提供的資料及說明,照著做很快就把公開聊天室的功能做出,接下來則是必須開始加入自己的一點想像及額外資料,需融入資料庫CRUD的功能和Node.js/express的架構。這之中最難也最多BUG的部分就是私訊功能的實作了,原先以為公開聊天室做完,也於官網上有稍微了解私訊功能,實作上應無大礙,沒想到這個功能竟讓我兩天可能睡不到六小時,哈哈!實作後才了解私訊功能必須對socket.io技術有更正確的認識以及於官網上查找更多語法的幫助才有機會完成,途中好幾次都以為自己好像完成了,但其實都會有很多不合理的Bug存在,隨著程式數不清的debug,我腦中對socket.io運作邏輯的認識也一步一步的在debug,直到最後從原本的自以為了解到「原來是這樣運作!」的感嘆時,才終於算是完成私訊的挑戰功能。

感謝夥伴

最後要感謝我的後端夥伴Justin,能夠把開會討論內容、進度現況以及實作合併等都能清楚的文件/文字化,讓我在實作時能夠迅速準確地找到需要的內容;在分工遇到狀況時,能夠在限時兩天內與我一起即時重新建立起全端架構,在這之中無時無刻的密集討論、不眠不休的一起debug都成了協作旅程最好的經驗。

再來要感謝前端夥伴Ivy,雖然以完成專案的角度來說確實有受影響,但是真的不用對我們感到愧疚,每個人本來就是在不同背景下參與這樣的課程,更何況大家都有工作過,能夠體諒工作忙起來真的沒多餘的時間。我相信如果我們這組的成員有足夠的時間,一定可以一起完成很棒的作品!

--

--

Harry Lu

1992, 學習科技|研究投資|環境工程技師|成功大學環境工程學系|台灣大學環境工程研究所|水處理行業工作兩年半|想要用科技打造自己的企業,過自己想過的生活。