Latest

什麼是 Serverless 架構?

前陣子又聽到了 Serverless(無伺服器)架構這個酷東西,我第一次聽到 Serverless 應該是某年 Modern Web Conference 對岸講者的分享,想想還是簡單記錄一下。 Serverless 乍聽之下好像是「沒有伺服器」,但實際上伺服器並沒有消失,而是由雲端服務供應商(如 AWS、Google Cloud、Azure)負責管理。 我們只是不再需要手動設定、部署、監控這些伺服器,這些繁瑣的基礎建設交給他們來搞定,我們開發者就可以專注在寫程式碼上,開心寫邏輯,寫完就交給雲端去跑。 Serverless 是怎麼來的? Serverless 架構的核心思想,是讓開發者不必管理伺服器,透過「功能即服務(Function as a Service,FaaS)」或「後端即服務(Backend as a Service,BaaS)」的形式來實作。
SimonAllen

Mac 安裝 NVM

很久沒在 Mac 裝 NVM 了,這裡也順便重新整理之前的筆記。 平常在開發前端時,基於 Node.js 生態圈龐大,不同套件有不同版本的限制,例如某些新功能限定某版號以後才有,不同前後端專案可能所需 Node.js 版本也不同,總不可能每次都乖乖升級降級吧! 我們需要一個工具幫我們管理 Node.js 版本,這時候我們就可以透過 nvm 來管理、切換 Node.js。 先檢查目前電腦有沒有安裝 Node.js ,有的話記得先移除掉,之後在 terminal 終端機輸入 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.0/install.sh | bash 或
SimonAllen

讀書心得:讀懂一本書

書名:讀懂一本書:3300萬會員、22億次收聽「樊登讀書」創始人知識變能力的祕密完整公開 是否推薦 是,內容意外不錯。 如果你以為這本書是講如何閱讀、列舉什麼二三十幾種閱讀方法的工具書,那就錯了。建議閱讀前的預期是書名副標**「3300萬會員、22億次收聽「樊登讀書」創始人知識變能力的祕密完整公開」而不是「讀懂一本書」**,兩者的差異在於著墨更多作者樊登的經歷。 心得 全書從作者為何踏入這行開始說起,中間不時穿插自己的閱讀的看法、建議,最後是自己讀書的方法、在說書前的準備。 因為作者是「說書型影片作者」,故書中很常引用一堆書與其傳達理念來解釋一些事情,若剛好有看過那幾本書就會知道作者引用合理、有根據。 我很討厭讀雞湯書、內容乍看有意義但打高空的工具、商管書,而這本書並沒有明顯給我類似的厭惡感,至少此書邏輯與知識的積累過程是可以說服我的。 貼心的出版社 中國書名和台灣出版名稱通常不一樣,而作者提及的書名,出版社幾乎都有在每章結尾註釋說明台版書籍名稱為何。有些書見其描述會更想看,例如**「反脆弱」**在書中數次提到,自己剛好有買但還沒時間看,之後要趕緊找時間拜讀了。
SimonAllen

Next.js 入門:建立專案與專案結構

建立專案 系統要求 MacOS、Windows 和 Linux 都沒差 只要有 Node.js 12.0 或更高版本即可 安裝與建立 create-next-app 專案 打開 terminal 輸入 npx create-next-app ${專案名稱} 等 terminal 跑完即可。 npx 指令會先檢查本地端 Node.js 是否有安裝 create-next-app,有就執行 create-next-app。 沒有就下載 create-next-app 裝入當前局部執行環境,不會裝進本機電腦 Node.js 全域環境,這麼做可以避免全域被汙染。若使用者想全域安裝也可以先下 npm install create-next-app -g,自行斟酌。 專案結構 打開建立好的專案可以看到如下檔案階層 |--
SimonAllen

SPA 部署後部分頁面載入失敗?覆蓋式部署的對應解法

這是近期工作上遇到的問題,記錄一下原因與解法,解法不一定是最佳解。 問題背景 接手了公司的一個網站,發現使用者一直在此單頁應用 SPA 中遇到偶發、但令人頭痛的問題。通常會在網站「部署新版本」後、且「使用者尚未重新整理頁面」的情境下發生。 情境如下: 1. 使用者正在我們的後台網站上瀏覽(例如還停留在 /home)。 2. 這時我們開發者部署了一個新版本,且採用了「覆蓋式部署」(也就是直接覆蓋掉原本的靜態資源)。 3. 使用者繼續使用網站並透過前端路由導覽到尚未載入過的頁面(例如 /profile),這個頁面會觸發懶加載動作(例如 Profile.chunk.js)。 4. 由於使用者當前的 HTML 是舊版本,因此所引用的 chunk 路徑還是舊版本的,如 static/js/Profile.abcd1234.chunk.js。 5. 但這個資源已經在部署新版本時被移除或覆蓋,
SimonAllen