--- title: twitter 專案歷程記錄 tags: twitter --- # twitter 專案歷程記錄 ### 扮演的角色 我在裡面是 PM 及後端開發的角色,主要是負責開始時的規劃,還有跟助教之間的聯絡,後端開發上面的話負責部分以 controller 為主,編寫 user controller 上的功能。 ### 開發了哪些功能 獲取使用者相關資訊,例如 tweet 和個人資料等,操作資料庫、撰寫路由讓前端可以順利的取得所需要的相關資料 controller 等,登入登出和取得使用者 tweet 方面的功能,提供 api 給前端渲染畫面。 ### 遇到的困難 技術上在之前的課程當中並沒有學習的很扎實,所以在後續實作開發時候遇到非常多的技術困難,對於 api、sequelize、database 的設計等等並沒有達到該有的程度,所以在一開始的規劃階段,就出現 api 文件沒有寫好的情況,導致後來需要不斷的去修改來符合前端的需求。 在撰寫 controller 的時候,因為對於非同步的寫法掌握度不是很好,所以經常需要隊友的幫忙,幸好另外一位後端 RAIN 技術能力很紮實,在這方面受到他很多的照顧。 對於前後端合作方面的經驗缺乏,不太知道前端對於資料庫的理解程度,對前端一些技術用語或方法也不是那麼了解,所以有時候會出現聽不太懂前端在說些什麼的情況。 ### 學習到的東西 資料庫的應用,一開始就先透過 sequelize 把資料取好,就不用在後面花很多時間去處理。 除錯,javascript 相對其他的程式語言在除錯方面比較麻煩一些,在這次的專案當中,利用下斷點和操作測試檔來讓自己可以有效率的知道自己錯在哪裡,增進除了 console.log 之外的除錯方法 ### 可以改進的地方 * 技術方面 技術方面避免單依靠課程內容,在之前的三個學期階段就應該要養成探索知識的習慣,多去補充一些作業學習時可能會用的技術知識,並且養成筆記整理的習慣,讓自己可以在後面學習的階段回去查找之前的筆記,透過不斷這樣的循環來加深自己的印象和熟練度。 * 行程管控方面 行程控管是一個很重要的功課,twitter 的專案流程十分緊湊,甚至比業界實際的專案執行過程可能還要更緊湊,所以事前的規劃十分的重要,可以多方詢問學長解或助教的意見,讓自己能夠有良好的事前規劃,這樣在後續開始開發的時候才能夠更有效率。 * 壓力管理方面 適度的壓力管理和抒發也是很重要的一環,讓自己的精神狀況保持在一定的水準,才能在撰寫過程中所必須面對的技術坑,有效率的即時吸收、了解自己不懂的問題,讓專案能夠順利進行。 * 資訊尋找方面 對於不熟悉或第一次接觸的技術,可以先以中文搜尋關鍵字對其有初步的了解,然後再用英文去確認相關的細節,因為英文的資訊遠比中文來得多,特別是後端的資源不少都是要去看原廠的技術文件或是 stack overflow 上面的問答才有可能得到解答。 ### 給別人的建議 * 記得適時求助,不要拖到最後 在行程緊湊的情況下,自己可以嘗試摸索的時間會被壓縮,所以這時候不應該糾結於要自己解決問題,有任何不懂的地方真的查不到資料就應該馬上詢問組員或是助教,這樣才有辦法有效率的維持專案的進度。 * 前面的討論規劃要確實,寧可多花些時間不要急進,這樣才能確保後面不用花更多時間在處理地基沒打好的緊急情況 行前的規劃,例如 ERD 的畫製、api 文件的撰寫、check list 的撰寫,這邊都是不可以輕忽的地方,事情都應該要好好花心力在這上面,可以參考前人所做的設計,並且在一定時間內反覆檢視 refine 流程的規劃,讓專案協作可以有規劃的進行,減少不必要的風險和突發狀況。