人來過
從零到產品 EP.3

這些零件怎麼組起來運作

API、資料流、靜態 vs 動態、開發 vs 正式環境

← 回系列目錄
📅 發佈於 2026-04-06🔄 最後更新 2026-04-08

上一篇我們認識了四個零件:
前端、後端、資料庫、UI/UX。

但光知道零件還不夠。
你還要知道,
它們是怎麼合作的。

不知道這個,
你就會卡在 EP.1 講過的「第二種結果」—
網站能跑,
但你不知道為什麼能跑。

這篇講四個觀念,
vibe coder 卡關的地方有 80% 都跟它們有關。

1. API — 前端跟後端的對講機

前端跟後端是分開的兩個東西,
它們不會自己跑去找對方。

它們需要一個「對講機」。
那個對講機叫做 API。

API 的全名是 Application Programming Interface,
聽起來很複雜,
講白話就是「講話的方式」。

前端說:
「我要這個會員的訂單列表」

後端聽到:
「好,我去資料庫拿,等我一下」

後端拿到資料:
「給你,這是 5 筆訂單」

前端把那 5 筆訂單畫出來給使用者看。

這整個來回,
就是一次 API 請求(API request)。

你打開的每一個 App、每一個網站,
背後都在不停地發 API 請求。
滑 IG、刷 Threads、按按鈕、滾動頁面、
大部分動作都在跟後端講話。

跟 AI 討論時你只要記得一件事:
當你說「按下這個按鈕之後要做 XX」,
AI 就會幫你寫一個 API。

2. 資料流 — 一個按鈕背後的六件事

四個零件加上 API,
串成一個完整動作會長什麼樣?

用 NaLi Match 真實情境來看。
客人在 NaLi Match 按下「送出需求」會發生什麼事?

第 1 步
前端收到事件
使用者按了按鈕,前端把客人填的資料整理好
第 2 步
前端打 API 給後端
透過對講機把資料送出去
第 3 步
後端守門員檢查
資料合不合法?欄位齊全嗎?是不是壞人?
第 4 步
後端寫進資料庫
把這筆需求存進「客人需求」表
第 5 步
後端回傳結果
回一個「成功」訊號給前端
第 6 步
前端顯示給使用者
畫面上跳出「需求已送出」

一個按鈕背後,
六件事在跑。

你不用會寫,
但要知道有這六件事。
出問題時,
你才知道從哪一步開始問 AI。

「按了沒反應」
→ 可能是第 1 步前端事件沒接到

「跳錯誤訊息」
→ 可能是第 3 步守門員擋下來了

「顯示成功但資料沒存」
→ 可能是第 4 步寫入失敗

知道流程,
debug 才能精準。

3. 靜態 vs 動態 — 不是每個網站都需要後端

這個觀念能幫你省一大堆事。

不是每個網站都需要後端跟資料庫。

靜態網站
純前端就夠了
介紹頁、作品集、活動官網、教學文。沒有會員系統、沒有訂單、沒有後端程式。你的 HTML 檔案還是要放在「某個機器」上,別人才能透過網路看到,但你不用自己架那台機器、也不用寫後端 — Vercel、Netlify、GitHub Pages 這些「靜態主機」服務會幫你準備。
動態網站
前 + 後 + 資料庫
會員系統、留言、下單、通知、聊天室。需要後端處理邏輯,需要資料庫存資料。
leoaido.com(你正在看的這個網站)
就是一個純靜態網站。

沒有會員、沒有後端程式、沒有複雜的伺服器邏輯。
每篇文章都是一個 .html 檔,
HTML + CSS + 一點 JavaScript 就完成了。

右上角那個瀏覽計數器,
是用前端 JavaScript 直接打 Supabase 這個雲端服務 —
沒有自己的後端,也能存資料。
這就是靜態網站搭配「第三方服務」可以做到的事。

關鍵觀念:
「靜態」不是說網站什麼都不會動。
是說「沒有自己的後端伺服器在跑程式」。
你還是可以用第三方服務(Supabase、Firebase、Disqus)
讓靜態網站有動態功能。

vibe coder 最常犯的錯:
明明要做的是一個介紹頁,
卻一開始就要 AI 幫你裝資料庫、做登入、加 API。

結果做了三天還沒上線。

先想清楚你要的是哪一種

不要殺雞用牛刀。
能用靜態就不要動態。

跟 AI 討論時可以直接問:
「我這個產品需要後端嗎?還是純前端就夠?」
讓 AI 幫你判斷。

4. 開發環境 vs 正式環境 — 兩個世界

這個觀念你 100% 會踩到,
所以一定要先講。

你的網站其實活在兩個世界:

開發環境(dev)
你電腦裡的版本
只有你看得到。改完馬上看到結果。網址是 http://localhost:3000 那種。
正式環境(prod)
線上的版本
全世界都看得到。網址是你的真正網域,例如 leoaido.com。

兩個是分開的世界。

你在電腦上改了東西,
線上不會自動變。
必須做一次「部署」(deploy),
線上才會更新。

「在我電腦上明明可以跑啊?」

這句話你以後會聽到一百萬次。
原因永遠都是同一個:
他忘了線上是另一個世界。

為什麼會這樣?
因為兩個世界的環境不同:
檔案位置不同、
網址不同、
API key 不同、
資料庫不同。

所以「在開發環境能跑」
不等於「在正式環境能跑」。

後面 EP.6 會講 Vercel 部署實作。
但這個「兩個世界」的概念,
你現在就要記住。

三個輕量補充

這三個不是核心,
但 vibe coder 早晚會踩到。
先讓你有個印象,
後面 EP 會講細節。

A
API key 不能寫在前端
API key 就是你的鑰匙,寫在前端等於把鑰匙貼在門上。要存在後端的「環境變數」裡。EP.6 會講。
B
圖片不要塞資料庫
資料庫存的是文字、數字、ID。圖片、影片、檔案要存到「Storage」服務。Supabase Storage、AWS S3 都可以。EP.8 會講。
C
快取(Cache)會騙你
有時候你改了東西,重整也看不到,是因為瀏覽器或伺服器把舊版「快取」住了。Ctrl+Shift+R 強制重新整理,或開無痕視窗。

給 vibe coder 的提問模板

下次你開新專案,
除了 EP.2 教你的架構討論,
也可以問 AI 這些問題:

・這個產品需要後端嗎?還是純前端?
・有哪些動作會發 API 請求?
・資料流是怎麼跑的?請幫我列出按鈕到資料庫的每一步
・哪些值要放環境變數?哪些可以放前端?
・部署到 Vercel 之前有什麼要注意的?

這五個問題問完,
你對自己產品的運作邏輯就清楚了 80%。

兩個技術小補充(給認真的你)

這兩個觀念稍微進階一點,
不影響你動手做產品,
但知道了會更精準。

補充 A:API key 真的全部都不能放前端嗎?

原則上是的。
但有少數「設計成可以公開」的 key 例外。

例如 Supabase 的 anon key,
它本來就是給前端用的,
因為 Supabase 用一套叫「Row Level Security(RLS)」的機制,
在資料庫層級控制誰能讀寫哪筆資料。

所以判斷一把 key 能不能放前端,
不是看它叫不叫「key」,
而是看它有沒有被「保護機制」包住。

給 vibe coder 的安全做法:
不確定就放後端。
確定該服務文件寫「safe to expose in browser」
或「public anon key」才放前端。

補充 B:開發環境的網址到底長什麼樣?

剛剛我寫「http://localhost:3000」,
那是用框架(像 Next.js、Vite、React)開發時的預設網址。
localhost 的意思是「你自己的電腦」,
3000 是這個服務佔用的「埠口」(port)。

如果你只是寫一個純 HTML 檔案,
雙擊打開的時候網址會是 file:// 開頭,
那是你電腦本機檔案的路徑。

兩種都算「開發環境」,
共同特徵是:
只有你看得到、別人連不到。

到了線上之後就會變成 https:// 開頭的真實網域,
那才是「正式環境」。

零件 + 運作 = 完整地圖

EP.2 認識零件,EP.3 認識運作。
地圖畫完了,下一篇就要動手了。

下一篇我會講,
怎麼用 AI 寫出你的第一個網頁。
HTML、CSS、JavaScript 這三個東西,
各自在做什麼,
一篇講完。

常見問題

什麼是 API?

API 是前端跟後端之間的對講機,全名是 Application Programming Interface。前端說「我要這個會員的訂單列表」,後端去資料庫拿,拿到再回傳,這整個來回就是一次 API 請求。每個 App 跟網站背後都在不停發 API 請求。

什麼是「靜態網站」?我的網站需要後端嗎?

靜態網站就是「沒有自己的後端伺服器在跑程式」的網站,純前端就能跑,例如介紹頁、作品集、教學文。如果你要做的東西沒有會員系統、訂單、留言、聊天室,純前端就夠,可以省一大堆事。leoaido.com 本身就是一個純靜態網站。

為什麼「在我電腦上明明可以跑」線上卻不行?

因為你的網站活在兩個世界——開發環境(你電腦裡的版本)跟正式環境(線上的版本)。兩個世界的檔案位置、API key、資料庫都不同。改完還要做一次部署(deploy)線上才會更新。

API key 真的全部都不能放前端嗎?

原則上是的。但有少數「設計成可以公開」的 key 例外,例如 Supabase 的 anon key 本來就是給前端用的,因為它有 Row Level Security 在資料庫層級保護。判斷標準是看官方文件有沒有寫「safe to expose in browser」。

一個按鈕背後到底發生什麼事?

通常是六件事按順序跑:前端收到事件、前端打 API、後端守門員檢查、後端寫進資料庫、後端回傳結果、前端顯示給使用者。debug 時知道流程才能精準找到問題出在哪一步。

上一篇
EP.2 跟 AI 討論產品架構
下一篇
EP.4 動手前 — 你需要的工具

追蹤系列更新

新篇章上線會在 Threads 通知

追蹤 @kanisleo328