經過兩個多月的專題開發打磨,回頭看看那些在腦袋中想做的功能,竟然活生生地出現,且依照開發功能依序做動時,不亞於以前開發機台交貨給客戶的快感,甚至有超出的感覺,真是不可思議!
上方為本次專題展示簡報,大家有興趣可以點擊看看
本次想跟大家分享我在六角學院JS直播班開發專題過程及心得,為了方便閱讀,我將專題分成三部分來說明。
一、專題發想-努力把夢做大,火力展示
從九月課程開放後,會先被加入到 Discord 群組,看到每位學員為了自己專題盡情發想,以及許願想做的功能,而我也不例外加入一同許願,其中洧杰老師、卡斯伯老師及助教們也會給予相關建議及資源。
如下圖-當初洋洋灑灑列了許多功能
老師及助教也會給予建議
後續就隨著課程一路從使用者故事、wireframe繪製、首頁版面編排、CTA(Call To Action)設計等等,逐漸將專題線稿圖完成,也將功能收斂至能在兩個月完成的範圍。
- 我是前台使用者,我想要知道市場上 ETF 目前投報率、持股比例、產業佔比。
- 我是前台使用者,我想要註冊/登入功能,可以觀看自己收藏及自組 ETF。
- 我是前台使用者,我想要建立/修改/刪除 自主 ETF 配置比例。
- 我是前台使用者,我想要知道自主 ETF 與市場上 ETF 績效比較。
網站地圖
線稿圖
二、開啟學習副本-當個海綿盡情吸收
當交出線稿圖的當下,立即就發現原本選定使用的股票行情 API,發送 request 後回傳 response 的時間約為3-5秒,不符合專題使用(使用者體驗不佳),而 富果股市API 僅提供每日的開收盤價、成交量,並沒有專題核心功能需要的 ETF 成分股比例及 產業占比,這時就面臨了 - 果斷放棄題目 or 自己開後端資料庫給API - 二選一的難題,而我選擇了後者。
學習Node.js - 自己挖的坑自己跳!
在決定學習後端後,挑選與JavaScript相近的Node.js作為後端開發語言,一路從 Firebase 資料庫串接、Mongoose / MongoDB 資料庫串接,Express 框架架設、 JWT登入驗證、 Middleware管理權限等等,也不僅將原先開立API功能目標達成,也新增會員註冊、登入、收藏等功能 (其中有許多坑就讓我之後再寫一篇補上吧)。
建構 ETF DIY 功能之 Schema
特別要感謝 Ray 助教 所寫的部落格 - 是Ray不是Array,讓我少走許多 Node.js 的坑,在此致上最高的感謝。
重新再次學習 JavaScript - 寫得出來才代表了解!
在同一時間,跟著每周三、五晚上由洧杰老師、卡斯伯老師的直播課程,再次學習 JavaScript 有了不同的體悟,開始理解到面試時被問問題時背後的邏輯,例如:
- var、let、const 三者的差別為何?
=> 怕你寫出全部都是由var命名的變數、或是用 let 宣告不能被更改變數,導致容易被函式更改其數值。 - 說明AJAX背後邏輯?
=> 怕你寫完 code,結果接上 API 卻發現無內容(或顯示Promise),也不知道怎麼查錯。
也將這些內容一一的寫在個人部落格,在寫作的過程中不僅僅是筆記紀錄,更多得到的是反思背後邏輯以及如何表達,也讓自己對 JavaScript 語言特性理解增添不少 (每次寫文章都覺得比寫code難) 。
三、專題衝刺 - 與時間賽跑、切分成小里程碑
到了距離專題發表前三週,許多同學都開始焦慮起來,擔心自己可能完成不了作品,而我也是其中一員,而洧杰老師透過課程告訴我們,如何將開發進度切分、善用番茄鐘工具,讓自己能專注於目標上減少焦慮,而我也就列出要完成的目標,並規劃時程、每日查驗開發進度。
最終我也順利完成了本次專題作品 - ETF自由配
能將一個作品從無到有給實作出來,雖然那過程是辛苦且令人想放棄,但謝謝六角學院的老師助教同學們一同討論與學習,讓我能夠堅持到最後一刻,並完成作品。
謝謝您看到這,我是李國閔,與你分享我的座右銘:
把腦袋中的想法,從無到有實踐出來是件很令人興奮的事!