做好了卻上不了線 · 在自己電腦能跑,到正式上線還有一段路
從自己的電腦到正式上線:一個功能要走的七步
我們每一個系統上線,都照這七步走。
做好了卻上不了線免費芸寫的
ANSWER · 簡答
「在我電腦上會動」只是第一步。
老闆的痛
請人或請 AI 做了一個小系統,在他的電腦上跑得好好的,一放到網路上就壞掉、資料不見,或是改一個小地方整個網站掛掉。
我們怎麼做
「在我電腦上會動」只是第一步。從本機到正式上線,中間還有:存版本、寫測試、分開測試和正式的資料、部署、上線後檢查、準備退回。我們的每一個系統,都照下面七步走,少一步就出過一次事。
你照著做
- 在本機做出來
- 每次改動都存版本
- 寫測試,讓機器幫你檢查
- 測試資料和正式資料分開
- 用固定的指令部署
- 上線後用真的網址檢查
- 準備好退回上一版
1. 本機開發(地端)
先在自己的電腦上做出來。本機的好處是改得快、壞了不影響客人。要小心的是:本機的設定檔常常直接連到正式的資料庫,我們就踩過:在本機測試「報名」,結果真的寫進了正式名單。
2. 存版本
每改一段就存一個版本(常用的工具叫 Git),寫一句改了什麼。好處是改壞了可以回到上一版,也查得到是哪一次改壞的。
3. 寫測試
把「這個功能應該怎樣」寫成會自己跑的檢查。每次改完先跑一遍,全部通過才往下走。我們的會員站每次上線前都要跑完整套測試,另外還有一道檢查:訂閱的全文只要出現在任何公開檔案裡,建置就直接停下來。
4. 分開測試與正式
測試用的帳號、資料、金鑰,跟正式的分開。最危險的是「試跑」:帶一個假日期去跑發文程式,結果真的提前發出去了。現在的規矩是:驗證只讀資料,不執行任何會對外的程式。
5. 部署
把做好的東西放到網路上的主機。我們每個系統都有一行固定的部署指令,不用手動拖檔案。固定的好處是:誰來做、做幾次,結果都一樣。
6. 上線後檢查
部署完不算完。打開真正的網址,用一般訪客和登入後的身分各看一次,看主機的紀錄有沒有錯誤。很多問題只有在正式環境才會出現,例如冷啟動、快取、權限。
7. 準備退回
上線前先知道「出事怎麼退回上一版」。多數雲端平台都保留舊版本,一個按鈕就能退回;資料庫的改動則要先備份。
用到的平台
- 程式碼版本:Git、GitHub
- 放頁面與小函式:Cloudflare Pages、Vercel
- 一直開著的主機:Render
- 資料庫與檔案:Supabase
- 流量與搜尋:Google Analytics、Search Console
常見問題
- 從自己的電腦到正式上線:一個功能要走的七步,是要解決什麼問題?
- 請人或請 AI 做了一個小系統,在他的電腦上跑得好好的,一放到網路上就壞掉、資料不見,或是改一個小地方整個網站掛掉。
- 具體怎麼做?
- 「在我電腦上會動」只是第一步。從本機到正式上線,中間還有:存版本、寫測試、分開測試和正式的資料、部署、上線後檢查、準備退回。我們的每一個系統,都照下面七步走,少一步就出過一次事。
- 第一步要做什麼?
- 先「在本機做出來」。完整順序是:在本機做出來、每次改動都存版本、寫測試,讓機器幫你檢查、測試資料和正式資料分開、用固定的指令部署、上線後用真的網址檢查、準備好退回上一版。