Skip to content
Wen-Hsiu Hsu's Avatar Image
Wen-Hsiu Hsu's Avatar Image

程式碼之外,還有生活的藝術 前端工程師 / 攝影 / 生活紀錄

  • 文章298
  • 標籤372
Buy Me A Coffee

最新文章

混合 Dev 和 Life 的所有最新內容

298 篇
2026-08-2913 分鐘閱讀

講師 Mike North(Stripe principal staff engineer)說明 TypeScript 作為 JavaScript 語法超集的定位、編譯器與語言伺服器的角色分工,並用一個字串誤加數字的實例,解釋型別如何把原本只在執行期才會爆炸的問題提前搬到編譯期,讓工具在寫程式當下就攔住錯誤。

2026-08-2812 分鐘閱讀

實際把前面講的 upstream 概念寫進 nginx.conf,列出兩台後端伺服器、把 proxy_pass 改指向伺服器叢集,並額外加一段自訂 log format,用 tail -f 即時觀察 access.log,驗證請求確實輪流分配到不同埠號的伺服器實例上,親眼看到負載平衡實際運作。

2026-08-2714 分鐘閱讀

解釋容器協調(orchestration)在大規模部署下要解決的問題,帶出 Kubernetes 這類工具的角色,整理 round robin、least connections 等常見排程演算法的取捨,示範用 htop 觀察伺服器負載,並用 Nginx 的 upstream 設定把流量分配到多個容器實例。

2026-08-2718 分鐘閱讀

逐行拆解一個 Node.js 應用程式的 Dockerfile:為什麼用 Alpine 版基礎映像、建立 node 使用者並改變檔案擁有權、先複製 package.json 再裝套件,並用 docker build、docker run 把應用程式跑起來,同時開出多個埠號的容器實例,為下一節流量分配鋪路。

2026-08-2613 分鐘閱讀

拆解單體架構與微服務架構在團隊協作方式、技術棧選擇自由度上的優缺點取捨,解釋容器化跟虛擬化的差異:虛擬化把一整台實體伺服器切分成好幾個獨立區塊,容器則進一步把每個服務拆成各自獨立輕量的單位,說明容器怎麼做到零停機更新、跨作業系統自由移植,並帶出這門課為什麼選用 Docker 作為容器管理工具。

2026-08-2610 分鐘閱讀

解釋 HTTP/1.1 每個檔案獨立開連線、HTTP/2 用 multiplexing 共用單一連線的差異,示範在 Nginx 的 443 埠 listen 區塊加上 http2 關鍵字即可啟用,並用瀏覽器 Network 面板的 Protocol 欄位驗證連線從 h1 換成 h2,附上重啟前的驗證指令。

2026-08-2513 分鐘閱讀

示範用 EFF 提供的免費工具 Certbot,透過 snap 套件管理器安裝,自動改寫 Nginx 虛擬伺服器設定加上 443 埠與憑證、把 HTTP 導向 HTTPS,並解釋 Certbot 為什麼要建立臨時檔案驗證網域所有權,最後用 ufw 開放 443 埠、測試自動更新,完成整個 HTTPS 部署流程。

2026-08-2516 分鐘閱讀

拆解一個 HTTP 請求跟回應實際長什麼樣子,整理 User-Agent、Accept-Encoding、Set-Cookie 等常見標頭的用途,說明狀態碼第一碼分類(1xx 到 5xx)怎麼幫助快速判斷問題出在客戶端還是伺服器端,並解釋為什麼未加密的連線容易被攔截竊聽,一定要改用 HTTPS 保護資料傳輸。

2026-08-2419 分鐘閱讀

用 SQLite 幫 WebSocket 伺服器寫一份訪客紀錄,示範為什麼 SQLite 比 MySQL 更適合小型專案,用記憶體資料庫、serialize 建表、db.run/db.each 讀寫資料,並拆解實際部署時撞到的三個真實錯誤:SQL 語法逗號、記憶體資料庫重建、關閉順序卡死的除錯過程。

2026-08-2414 分鐘閱讀

解釋為什麼多台伺服器沒辦法共用同一個檔案儲存資料,資料庫如何同時解決檔案缺乏擴展性、缺乏結構強制力這兩個根本問題,比較關聯式資料庫與非關聯式資料庫在嚴謹度、查詢速度上的取捨,拆解關聯式資料庫的三大組成:表、欄位、記錄,並示範用主鍵、外鍵把多張表串接起來,用 SELECT 與 JOIN 寫出一個簡單的跨表查詢。

MIT Licensed | Copyright © 2025-present Wen-Hsiu's Blog
Photo by Aram on Unsplash