Git&Github、Node.js&Express.js、CRUD&MongoDB、Heroku&... 其他挑戰[Alpha Camp學期 2-3後端]

 


第一週- 網路概論&Node.js、Express與相關樣板套件使用

接續上學期末提到的git&github,原本模模糊糊的指令操作,在這學期變成必備的基本技能了,果然就是欠練習!😂

進到這學期馬上就來了個震撼彈:各種沒接觸過的模板、套件的安裝應用和Terminal指令。在這過程中,出現各種卡關,原本表定一週的課程,光是"安裝"就足足多花了一週的時間,雖然回頭看都是些根本不是問題的問題,還是不小的打擊了原本以為擁有滿滿JS、HTML、CSS能力的信心。

這週一步一步的練習初始化專案、樣板引擎、靜態畫面&動態資料渲染、動態路由,不得不說,AC課程教得真的很仔細! 還在每一步的停頓也帶著同學git commit一次,讓原本對git指令很混亂的我,這麼多次的重複練習後也變得熟悉起來。
這週的結尾以餐廳清單網頁初級版作業和被打擊轉為謙卑的心作為終結😂。

這學期初還是完成了一個side project - 樂透轉盤 (replit程式碼),主要用的是上學期最後教的MVC概念,另外應用DOM event listener、local storage,再加上一些自己玩的CSS,有緣人可以在右下角找到音樂撥放鍵(個人建議心情不好可以來按一下,馬上就開心起來😂)。

這次side project在這週課程衝擊下還沒辦法用到新學到的課程內容,但在這個課程轉折點來說,是個不錯的練習,相當於把我在前三學期的課程做了一個自我測驗。

第二週- CRUD&MongoDB

這週先從一個密碼產生器製作開始,讓我們注意到<form> method的GET和POST用法的差異及不同input型態得到的value的不同。
接著開始了經典的Todo List的CRUD的一步步講解實作,並帶入MongoDB及Mongoose使用,也多了seed資料匯入的作法。

整體來說這週還算愉快。在上週的洗禮後,本週在express專案初始化和各個套件安裝匯入使用上都感覺熟悉了 一點。直到MongoDB的環境設定的地方才又莫名其妙的卡關,設定方法有在terminal設定或是電腦系統設定兩種方式,由於常同時編輯不同專案,這兩種方式對我來說都相當不方便也很容易忘記修改參數而出問題,在無數次錯誤訊息出現debug到眼花之後,後來用了dotenv套件把變數存到.env檔案裡,直接就簡化了每次需要重新設定的問題。

這週以餐廳清單網頁擴充CRUD功能的作業做一個的終結。這週做了Todo List和CRUD感覺自己往業界走了一步😂。

第三週- 優化和佈署

這週接續上週的Todo List,這週首先帶入RESTful語意化動詞概念,加入method-override套件調整了路由的動詞。接著運用Express.Router將主程式app.js裡的路由清單分離成獨立路由器,除了讓app.js主程式更容易閱讀,也讓每一個元件只專注在特定的職責,縮小複雜度。再來把多個程式都用到的mongoose設定,獨立到config/mongoose.js裡,避免重複繁瑣的程式碼。

課程到這裡給的作業就是接續前兩週的餐廳清單網頁重構優化版本。另外,在一開始作業提供了CSS、HTML檔案畫面,這週作業wireframe上多加了一個sorting的欄位,除了練習.sort()的邏輯,也稍稍順便讓開始往後端走的我們提醒一下CSS的存在😂。

完成作業後,課程接著進展到Heroku雲端佈署的教學。同樣,我也是莫名卡關很久,在不斷出現錯誤訊息後,重複的觀看課程和花大量時間google可能原因後,最後發現原來問題出在一個有點無言的錯誤上 - Heroku的MongoDB環境變數設定。

這週由於很容易卡在莫名其妙的設定問題上,結果英文文件資料的閱讀大增,與同學們互相討論的次數也增加不少😂。雖然在看英文文件還是相當吃力,但看多了漸漸能找到需要的資料感覺相當好。

第四週- 驗收與展望

這週到了學期尾聲,直接以短網址產生器期末作業作為這週的開始,應用這學期所學的內容。

接著,為了銜接下學期課程,給了一個使用者登入認證的延伸挑戰作業,讓我們攻略一下cookie-based Authentication

這項作業出現了新的名詞cookie-based Authentication,名詞的陌生讓我從cookie開始查起😂。最後以cookie-parser套件完成這項作業。

後話

這學期很有趣,大部分時候是崩潰的😂。由於出現太多新的套件、語法、指令、設定,常常都會讓我卡死在各種神奇的小角落,透過不斷的查找資料、修改並測試,最後都會發現原來盲點這麼搞笑,常常都會是多加了""、少加了/、忘了加.config()、...之類稱不上技術的問題😂。

但在透過觀摩同學作業後,發現除了正規課程還有好多坑等著我去研究,覺得自己應該要在更認真一點!

接著要進入Alpha Camp大魔王學期三了,衷心的希望自己能穩穩地跟上課程進度,朝著Junior 後端工程師逐步踏去。

留言

這個網誌中的熱門文章

我要轉職軟體工程師!- 門口徘徊撞牆期

Javascript、HTML、CSS我來了![Alpha Camp學期一] 新新手入門

JavaScript 的 event loop - 非同步callback實際上發生了甚麼?