ALPHA Camp「畢業電商專案」學員心得:不只會用,還知道為什麼!

( Water 是 ALPHA Camp 全端Web App開發 學期四的學員,本文轉載自他的部落格

引言 | 我不想要只會用,我還想知道為什麼!!

這篇Blog主要是為自己紀錄,也分享給正在AC努力的學弟妹,這份專案對我意義是,自己第一個從規劃到執行的專案,對我來說重要的不是我開發什麼功能,而是證明我具備了,與人協作開發和能夠拆解其他電商功能,並且做出來的能力,而這,就是我當初報名AC的初衷,我不想要只會用,我還想知道為什麼!!

打造業界規格的 Web App,ALPHA Camp全端開發課程學期四

專案簡介 | 不只做電商網站,挑戰電商平台吧!

我們參考知名電商開店平台,Shopline,將自己定位成為電商平台,提供店家使用者,架設自己的電商網站,並將專案開發分為兩個階段完成,第一階段,單一電商,第二階段,電商平台,目前開發到第一階段。GitHub

專案角色 | 組長+後台開發

Q1.為什麼想做組長?

AC一開始有界定組長的任務是管理GitHub和跟AC保持聯繫,那時只是很單純,想要熟悉Git的操作技巧,就藉著這個機會去做這個組長了,對我來說練習再多次都不如一次實作來的學的多。

Q2.組長聽起來很威? 要做什麼工作呢?

組長其實就像是PM,唯一目標就是確保專案持續推進,完成任務,為此需要對外溝通(對AC回報進度,有需要時請求支援),對內需要建立共識,確保大家目標是一樣的,然後一步步往推進度,遇到阻礙想辦法排除,沒有具體工作內容,想辦法解決問題,完成專案就對了。

Q3.如何不找架吵?

我會說幹嘛不找架吵,大家都是希望好好的開發完這個專案,
如果有更好的方案,為什麼不提出來,當然吵架會是最後一個方式,我覺得基本上專案合作過程中,打造共識,傾聽溝通,承擔錯誤,接受取捨,是我們順利完成專案的比較少爭執的原因。
但我也得承認,有些時候,會因為溝通中,自己的口氣不太好,覺得自己在這部分可以再更好,也謝謝組員的包容。

Q4.有什麼印象深刻的嗎?

a.危機 | 組員二缺一,怎麼辦?

再畢業專案開發初期,我們一位組員,有事離開了組別,小組剩下兩個人,要繼續同組開發,還是拆開加入其他組,還是招募新組員,這是我們面臨的第一個問題,所幸後續有找到子儀加入一起開發。
回顧這次問題,可以順利解決有兩個原因,一是主動與組員保持密切聯絡,讓我在初期就了解可能少一人危機,二是主動尋求幫忙,主動找AC討論,最後AC幫忙媒合新組員,讓我們順利開始開發,Safe!!

(進一步了解在ALPHA Camp的學習體驗)

b.里程碑 | 原來我們是進度最快的一組?!

我們在開發到倒數最後兩周,原以為我們進度嚴重落後,後來才發現,原來我們是進度最快的一組,完成度也最多,真心感到不可思議。
一樣回顧這次的里程碑,我想了想為什麼我們會是進度最快的,主要有兩點,一、我們在事前規劃下了不少功夫,而不是根據user story 邊做邊開發,我們在一開始先大概畫出主要版型的wireframe,並且設計好了DB資料關聯圖,以及將user story 拆解成 url & http method &controller & function name,二、我們採用前後端合併的開發,降低複雜度,總結來說,再開發前先把能想得盡量都規劃和制訂好。

c.感動 | 隊友互相幫忙,享受開發的快樂

再開發到後期,我自己的進度算是最慢的一個,因為我開發是根據Shopline的後台去切版和設計功能,我花了太多時間再仔細切版與思考怎麼實作功能,因此延誤進度,所幸尹翔&子儀在完成自己進度後,也來幫忙我開發coupon等其他功能,真心感謝。
我們這個小組讓我覺得感動的部分是,你可以感覺得出來大家是享受在開發的過程中的,因為大家在完成基本功能後,會想要再延伸開發複雜的功能,這是我覺得再完成任務的同時,滿珍貴的過程。

(學好 JavaScript 、網頁切版、RWD、操作DOM事件等開發能力,建立完整前端技能)

任務 |我在專案中負責部分

a.專案基礎建置

在我們完成基本的前置規畫後,我負責將這些規劃建立成一個Express專案,包括migraton、seeder、route等,主要目的在於,我把框架建好,接下來交給組員在controllerr進行開發,避免彼此建立專案,導致合併時發生衝突。

b.GitHub 管理

master branch 規定只有組長可以存取,組員需要各自clone並且發PR將開發的功能給合併回到主分支。

c.後台功能開發

開發包括後台版面切版,產品管理,訂單管理等功能,值得一提的是,我是參考Shopline版型與功能,拆解步驟後,試著時做出來,雖然不到百分百,但至少有個樣子。

d.Heroku專案佈署

專案開發告一段落後,經過錯誤排除,我負責將專案佈署到Heroku,這其中了解到Postgresql與Mysql嚴謹度差異與重新學習種子生成的流程,是我最大的收穫,此外如果重來,我會一開始就持續佈署,再每一次合併PR後,就佈署一次,目的在於提早發現佈署可能發生的錯誤,節省時間。

(學會後端開發實務,打造兼具前、後端的 Web App)

回顧|如果再做一次,你會怎麼做得更好呢?

a.挫折|理想與現實的距離,邀請助教更深度協助

目前我最大的挫折在於,努力頗久但是開發出來的功能太少,沒有達成自己的期望,思考原因是自己想要的功能太多,每一個都想要試試看,卻忽略摸索需要花的時間,雖然這也是這次專案有趣的地方,所以如果重來,我會希望邀請助教,更多次深度的參與我們的討論,適時地幫我們調整開發方向與開發深度。

b.嚴謹|採用TDD開發,讓團隊更聚焦要開發的功能

我認為目前我們的程式碼都還不夠嚴謹,這個階段,我們是採用開發後才寫測試,當中發生了很多問題,導致我們需要回頭去改程式碼,如果一開始先用TDD規範好每個function的產出可能會更有效率。

3分鐘小測驗,找到你適合從哪開始學習全端開發