Simple twitter專案回顧

Ya Chu
Dec 27, 2021

--

在AC的最後學習歷程中,需要組隊參加simple twitter的專案開發,一開始只知道要找四個人一隊,分別兩位前端跟兩位後端。我本身負責後端,很幸運的找到隊友後,開始一系列的討論及開發,以下分享團隊合作及技術討論的回顧。

團隊合作

初期討論 (系統分析文件、task list討論)

所有夥伴都是第一次進行專案的開發,在AC的引導下我們需要完成分工、GitHub repo的開啟、完成系統分析文件、acceptance criteria 、task list 等資料。

大家照著AC的指示去了解這些文件的目的是什麼,以及要如何利用這些工具分析出專案需要的資料。另一位後端夥伴~小鹿~很厲害的找到了撰寫API文件的工具(apiary),這個工具可以讓前端夥伴清楚知道後端傳送的資料長什麼樣子。

對於初期討論的部分,大家對於acceptance criteria 還有DOD有些疑問,但我們還是保有效率的先討論完,相關問題再之後的spring check再提出討論。

開發過程(不斷踩坑階段)

開發過程依照task list的進度去實作,小組討論好每兩天要一起開會確認前後端目前的進度。好的隊友真的很重要,討論過程中,隊友們會直接提出自己的看法,也會協助對方一起解決問題(我真的很幸運💗)

過程中不論前端或後端,有遇到一些技術上的問題,在下方的技術討論一起回顧。

我很珍惜這個開發過程,開發中才了解初期討論的那些系統分析文件是多麼重要,如果前期的技術文件寫得越清楚,開發期間疑問會越少。雖然開發期間會發現初期討論的文件以及API文件會需要更改,應該是因為經驗不足的關係,所以會慢慢去修改。

而且開發時,對於後端學習的一些技術,會更內化而且會增加後設認知,深刻了解之前學的技術會這樣用是什麼原因。

驗收過程(坑還是踩不完)

前後端個別開發差不多了,就要來串接API。一開始以為前端夥伴的工作是把畫面刻的美美的(天真的以為),後來發現他們要把後端給的資料呈現在畫面上,是多麼不容易的事情! 技術回顧的部分在下方分享,此處我認為透過團隊合作及實際開發練習,更了解前後端之間的分工以及實際操作起來會遇到什麼狀況,這真的需要很多的溝通、協調及互助。

整體而言,我認為這次的twitter專案開發學習到太多東西了,再次感謝我的三位夥伴小鹿、Vince、Chaco,你們真的太罩了,跟你們一起合作的經驗真的很棒!!

技術討論

在技術部分,有遇到蠻多的坑,以下分別提出回顧:

前端取不到後端的資料

過程中發現有時前端會取不出後端傳的資料,或是資料無法傳至後端。一起debug後發現,有時資料會被多包一層,前後端設定不同,導致取不到資料。

助教也有回應說,restful API除了定義router與methods之外,還會定義很多其他內容,包含input/output格式,error message等,原來還有很多前置的討論要用呢!

測試檔跑不過

開發過程中,測試檔跑不過的原因有很多,我的神隊友小鹿就有發現,例如:測試檔預期要拿到一個陣列,但是你沒有給到這個陣列,而是傳給他一個物件,就會過不了測試檔。

助教也有發現,第一次進行測試會有一支測試檔沒過,但是在測試一次就會過了。原因可能跟 seed data與測試案例的調整有關,我們在README第四步驟會建立種子資料,當執行 seed:all 時,資料庫也會加入 tweet 資料,而這會影響 API 回傳的結果,應該在測試案例作修正,避免 tweet 資料影響測試結果。

再一次認為,測試檔是值得單獨另外研究的部分。

錯誤訊息處理

在錯誤訊息的處理,後端有特別用404或是400,以及提供錯誤訊息給前端(可能是帳號不存在,或是不能重複按讚等),但是在某些部分我們沒有加入錯誤訊息(例:取消追蹤)。助教給的建議是要放進「未預期錯誤」的處理,並log出來,後端才可以查到是怎麼樣的錯誤,其他的錯誤訊息(要給使用者看的)可以交由前端來寫。

socket.io 的聊天室功能開發

這個部分是進階功能,我們要自己去研究socket.io 的文件。過程中比較不一樣的是,前後端一定要一起開發,才知道前後端有沒有連接起來。

一開始連基本的公開聊天室都沒有成功,上網去stackflow查了一下,發現很多人的問題是socket版本不同,所以我們有把版本調整成一樣的,就可以成功。

不止於此,開發過程有很多功能都用不出來,例如希望使用者按進去公開聊天室,才顯示連線,而不是一開始登入就連線。這部分我們翻找了文件以及很多功能,測試了好多次才找出方法。

雖然開發期程只有這短短的兩週,但要一邊工作一邊完成也是滿辛苦的,更何況是全職準備的同學,他們基本上都睡不到幾小時。到了共同講評的時候發現還有很多細節需要再注意,還有很多路要走呢!非常感謝AC給我們這個機會一起合作專案,也要再次感謝所有幫助我們的助教,以及我的好隊友:小鹿、Vince還有Chaco😊

--

--

Ya Chu

I’m the one who follows my heart, pursues my own life, and is willing to share. Learning is everything.