Skip to main content

Command Palette

Search for a command to run...

Series

從Rookie到Junior,一個後端成長的30堂課

“從 Rookie 到 Junior:一個後端成長的 30 堂課” 是一套專為後端新手所設計的成長型技術系列文章。內容以實務為導向,逐步拆解後端工程的核心能力,包括程式語言基礎、架構思維、框架運作原理、業務邏輯設計、資料庫操作、以及常見的開發模式。

本系列的目標是協助讀者從零散的學習堆疊,建立成體系的後端知識框架。讀者能夠理解各語言背後不變的工程思維與設計原則。這套內容旨在讓學習者從「會寫程式」進入「能理解系統設計」的階段,逐步具備勝任 Junior Backend Engineer 的能力。

  1. 序 - 系列文起源

    想精通一件事情,就逼自己教會別人。 這個系列會關注在開發過程中的概念,實作方式,因此並不會涉及 環境架設 最近閱讀了《The Diary of a CEO: The 33 Laws of Business and Life》,書中有一個概念讓我深受啟發:「想精通一件事情,就逼自己教會別人。」 這個系列文章的誕生,源於我最近帶領的幾位新進工程師。我想,如果這些經驗傳承只停留在公司內部的教育訓練,能受益的僅有寥寥數人;但若能將這些內容整理成公開文章,或許能幫助更多正處於迷惘期的開發者。 因此,這 ...

    Nov 30, 20251 min read40
  2. Module 1 資料庫思維與設計

    序 歡迎來到後端工程師的練功房。很多人以為後端開發就是寫寫邏輯、把資料塞進資料庫就好。但在工程師眼裡,資料庫的設計往往決定了系統的生死。程式碼寫得再漂亮,如果資料庫設計不良(Schema),系統早晚會因為效能瓶頸(Performance)或資料不一致(Inconsistency)而崩潰。 在 Module 1 中,不會出現基礎的 SQL 語法與 CRUD 指令。我們要從「架構面」切入,先談談如何在程式碼中安放資料邏輯,接著深入「儲存面」的選擇題:何時該用 RDBMS?何時該用 NoSQL? 我們...

    Dec 1, 20251 min read12
  3. Lesson 1:後端生態系與分層架構思維

    後端常見的語言有非常多,包含常見的C#、.NET、Java、Python、Go…等,雖然程式語言眾多,但萬法不離其宗,背後的架構思維與解決問題的能力才是工程師的核心價值 關於系列文章採用語言 如果內容包含程式舉例,本文會採用Laravel作為範例語言。 關於PHP PHP語言本身的底層是透過C語言來進行撰寫的。本身PHP的核心:Zend引擎是完全用 C 語言實現的,它負責將 PHP 程式碼編譯成可執行的中間碼,並處理底層的數據結構和記憶體管理。 PHP的Framework 常見的PHP Fr...

    Dec 2, 20251 min read18
  4. Lesson 2: 資料儲存的抉擇:RDBMS vs NoSQL

    關於RDBMS(關聯式資料庫) 網路上有超多文章說明關聯式資料庫,簡單來說 關聯式資料庫就像是我們在Excel上面拉的表單,比如:會員資料表,我們在Excel上把對應的欄位標題(有點像前端的table-head , <th>)定義好,就是完成最基本的關聯式資料庫設計。每一筆資料就是一個row(就像是前端的table-data, <td>),這就是資料表(table)。 最常見的RDBMS:MySQL 以及 PostgreSQL。 MySQL vs PostgreSQL 在我身邊越來越多開發者,棄...

    Dec 3, 20251 min read21
  5. Lesson 3: 資料庫設計美學-Schema 設計、正規化 (3NF) 與欄位型態的陷阱

    在上一篇文章中介紹了常見的RDBMS、NoSQL以及其相關特性。 現在我們要針對最常使用的RDBMS來探討 關於:Schema、正規化、ACID原則…等。 Schema 關聯式資料庫的其中一個概念就是:table與table之間存在著某些關聯。以下會是幾個我在審閱ERD設計或者DB規劃的時候會特別注意到的點: 關於table name的命名 在 Laravel (以及大部分的 RDB 設計習慣)

    Dec 4, 20253 min read32
  6. Lesson 4: 效能殺手與救星-Index 索引的原理、複合索引與 Explain 分析

    我們很常聽到索引(Index),大部分工程師也都知道 RDBMS最基本的加速方式就是加上Index,但Index是個雙面刃,加的不好反而會嚴重拖累DB的速度,我們這個章節就來探討,Index的概念以及實務上的用法吧! 為什麼我們需要索引? 想像一本厚達 1,000 頁的字典。 沒有索引 (Full Table Scan): 如果你想查「Apple」這個字,卻沒有目錄也沒有頁碼順序,你必須從第一頁

    Dec 5, 20256 min read16