從其他框架的錯誤處理談起 如果你來自 Express.js 的世界,你可能習慣了在每個路由末端加上錯誤處理中介軟體,用 next(error) 將錯誤往下傳遞。...
一、從破壞性變更的痛苦談起 如果你曾經維護過一個被多個客戶端使用的 API,你一定經歷過那種進退兩難的時刻。業務需求在變化,資料結構要調整,新功能要上線,但已有...
從認證到授權的關鍵一步 如果你來自 Express.js 的世界,你可能習慣了在每個路由中間件裡手動檢查權限。在 Spring Boot 中,你會使用 @Pre...
一、開場:從經驗出發 如果你來自 Node.js 的世界,你可能已經用過 Passport.js 或 jsonwebtoken。在 Express 中,你會手動...
從 ORM 的選擇說起 如果你來自 Node.js 的世界,你可能在 Sequelize、TypeORM 或 Prisma 之間做過選擇。每次建立關聯時,你需要...
開場:從分層架構的困惑說起 如果你來自 Express 的世界,你可能習慣了在 controller 或 service 層處理所有業務邏輯,model 只是簡...
從其他框架的經驗出發 如果你來自 Express.js 的世界,你習慣了中介軟體(middleware)的鏈式處理模式。每個請求像是通過一條流水線,你可以在任何...
如果你來自 Express 的世界,你可能習慣了自由定義路由的方式。想要一個登入端點?就寫 POST /login。需要取得用戶資料?那就 GET /getUs...
如果你來自 Node.js 的世界,你可能習慣了 Sequelize 或 TypeORM 那種需要明確定義每個欄位類型的方式。在 Java 的 Spring B...
一、從前端分離的困惑說起 如果你來自 Express 的世界,你可能從未真正思考過 MVC。你的路由直接對應到處理函數,中介軟體串連起請求處理管線,一切看起來簡...
一、開場:從經驗出發 如果你來自 Express.js 的世界,你可能習慣了極致的自由。每個專案的目錄結構都像是一張白紙,你可以選擇 MVC、可以選擇 Doma...
開場:從熟悉到陌生的旅程 想像你是一位經驗豐富的建築師,精通鋼筋混凝土的現代建築工法。現在,你來到了日本,準備學習傳統的木造建築技術。你會發現,雖然都是建造房屋...
今天是我們三十天 Rails API 學習旅程的起點。作為一個擁有 Node.js、Java、Python 開發經驗的後端工程師,我將記錄從熟悉的技術棧轉換到...
【關於工程團隊】SHOPLINE 位於台北松山區,以 SaaS 軟體耕耘電商產業。在台灣研發團隊有超過百位工程師,分為前後端、測試、數據、雲端維運等團隊,台北辦...
【關於工程團隊】SHOPLINE 台灣研發團隊有超過百位工程師,分為前後端、測試、數據、雲端維運等團隊,台北辦公室採混合辦公模式,目前 Backend、Fron...
Last Day 來到最後一天啦!感謝看我文章的每一位夥伴! 回顧過去的三十天的旅程,和原本自己預設想寫的東西多了許多 "節外生枝",也有一...
倒數兩天,來聊聊最近常使用的 Redis 和傳統資料庫的差別 ~ What is Redis Redis can be used as a database,...
昨天談完 Decorator 的原理 Closure,今天就正式進入 Decorator。 What is Decorator Decorator 是 Pyth...
昨天介紹完 Ansible 的重要元件,今天來簡單的實作。 安裝 pip install ansible 確認安裝成功 ansible --version a...
昨天在一個地方剛好看到三者的對比,今天就來比較一下三個 DB 刪除資料的方式 TRUNCATE vs. DELETE vs. DROP 在管理資料庫時,針對表(...
今天來介紹一下常在公司使用來部署 code 到 prod 的工具 Ansible! What is Ansible Ansible is an open sou...
用 using 關鍵字簡化你的 TypeScript 程式碼 在寫程式的過程中,除了記憶體之外,我們有時需要使用一些外部資源,比如資料庫連線、檔案操作、網路...
今天我們透過 python 來實作 RabbitMQ 安裝 Linux sudo apt-get install rabbitmq-server sudo s...
之前一直有想學其他的 Message Queue,趁這次機會和大家一起來好好瞭解 RabbitMQ What is RabbitMQ RabbitMQ 是一個開...
工作前其實完全沒有聽過 MQTT,後來用到才開始了解他,今天來用最簡單的方式,介紹一下什麼是 MQTT ! What is MQTT? MQTT is a li...
今天接著昨天沒介紹完的 ACID Atomicity 原子性 Atomicity,指的是 transaction 是一個單一個工作單元,原子性的 transac...
今天來聊聊大家都耳熟能詳的 ACID 。 What is ACID ACID is an acronym that refers to the set of 4...
今天我們延續昨天,接著來看看 join strategies 的部分 Nested Loop Join Nested Loop Join 是所有策略中最簡單且...
最近在公司剛好接觸到 Postgresql 的資料回收機制,今天就來聊聊~ VACCUM garbage-collect and optionally anal...
我們昨天成功開啟 Nest.js,並且看了一下萬年起始範例 「Hello World」。今天我們來介紹一下後端的一些基本概念。雖然說可以用 Cursor 幫我們...