Alpha Camp 學期四 「Simple Twitter」回顧

一個人走得快,一群人走得遠

終於走到了Alpha Camp的最後一學期,本學期的重頭戲,就是要以小組的形式完成一個功能類似 Twitter 的社群網站,名為「Simple Twitter」。學期的開頭便是要找好組員決定好分組,而我也很有緣的和我的組員增和Jerry達成共識成為一隊,一起在最後一學期走下去,我們都有個共通點,那就是並非全職學習,白天都有各自的工作要忙,剩下就利用下班之餘或是假日進行學習,也都堅持不懈走到了最後,再加上我們彼此的距離及交通都能配合,要約見面也不是問題,所以很順利的組成一團。

專案設計目的及啟程

此次專案為實作驗收,這個專案的目的是AC希望能透過不同的需求,讓我們能夠獨立思考要做出的功能,並為功能設計實作步驟。而透過這個實作過程,除了能更加熟悉技術細節,也能讓我們全盤統整目前所學的 Express.js 功能與概念。並且這次專案將分成兩個部分:

在兩週專案開始的第一天,我們組員們就約時間碰面,討論出各自的角色以及分配好各自需要開發的功能,我們依據AC為我們初步規劃好的使用者故事及設計稿,依照頁面的劃分去分派了彼此需要開發的功能,便各自下去進行實作開發,原則上是希望第一週完成基本功能,第二週完成挑戰功能。

專案進行的過程

首先我們透過Trello這套軟體來做為我們的專案管理,可以透過下圖看到我們各自將自己要做的事情建立一張一張的卡片,方便隨時掌握進度。

透過拖拉卡片至不同區域,和勾選已完成的項目來增加成就感!

再來我們使用GitHub來做程式碼的管理和Git協作,可以看到在第一週優秀的隊友們都相繼的把功能都實作出來了,在合併程式碼之際難免會遇到衝突和程式碼撰寫風格不一之際,後續由大家共同討論決定統一開分支再發pr做合併,並有賴之後不斷的修正程式碼。

記錄起初我們發生git爆炸事件

挑戰功能的實作:其中有一項指定功能,那就是線上即時對話,而我有事先搜尋找到相關的資料了,便主動請纓來實作這項功能,由於我們的挑戰功能也是採取各自研究開發,頂多討論使用情境和畫面的呈現,剩下的就是各自努力,而我透過這項指定功能,也了解到web socket這項技術,最終能完成整個功能的雛形也感到很有成就感。

最終聊天室的畫面呈現

測試:這次的完成度測試分為自動化測試及UI/UX測試,而我們先進行了UI/UX測試,主要是針對各自開發完的基本及挑戰功能做畫面及功能上的手動測試,看是否有滿足所有AC提供的測試計畫,而自動化測試則是等到最後程式碼都合併進master後,才去跑AC事先準備好的測試程式碼,過程中也發生了許多的測試上的錯誤,還有最終由組長部署到遠端的時候,也是發生一堆遠端環境跟資料庫的問題,也是有賴大家一起挑燈夜戰團結一至,才將問題給一一修復和解決。

專案心得及省思

首先想給我的組員們及自己一個掌聲,在平日白天上班的情況下,利用兩週的時間能將專案給完成,真的很不容易,我也很享受和組員們一起奮鬥的過程,然而開發的過程中,自己也學到非常多的東西,也從組員們身上學到各自的特質,像是組長增的一肩扛起的責任感,包括程式碼的統整及最終部署到遠端伺服器要正式上線時所碰到的問題修正;和隊友Jerry總是動作迅速的完成各種功能,反應和邏輯思考都非常好,當然如果可以再來一次的話,我相信我們可以做得更好,像是測試及環境部署的部分應該要及早進行,早點發現問題就能盡快修復,才不會等到最後一刻才發現問題,最終花費許多時間找尋問題,連續熬了好幾個夜晚,弄的大家都身心俱疲。