Hi~ 我是 Eric。

從上禮拜到這禮拜,對我來說是一個很特別的轉換期。

我正式到林口康橋報到,開始接觸校內既有的校務系統。這種時候最真實的感覺,不是「我要開始寫新功能了」,而是「我得先知道這座城市的地下管線怎麼走」。

因為舊系統通常不會乖乖站在門口跟你自我介紹。

它可能有很多年前留下來的資料表、WebForm 頁面、共用函式、DLL、排程、報表、寄信流程、後台工具,甚至還有一些只有實際業務跑過才知道的規則。你看到的是一個按鈕,但背後可能牽動三張表、兩支 stored procedure、一段共用函式,最後再寄一封信給某個角色。

如果一開始就急著重寫,那很容易寫出一套看起來很漂亮、但接不上現場脈絡的新系統。

所以我這一週的核心任務不是馬上開發,而是先把舊系統完整爬出來。

重點來了:這次我不是靠自己一個人慢慢翻檔案,而是把 Codex App 放進這個工作流程裡,讓 AI 幫我把混亂的舊系統整理成可判斷、可討論、可延續的工程資料。


報到後第一個感覺:舊系統不是爛,是有歷史

剛進一個新環境時,很容易對 Legacy System 產生一種直覺反應:

這怎麼那麼亂?

但老實說,這個想法通常只對一半。

舊系統之所以長成這樣,背後一定有原因。可能是當年的需求很急,可能是學校流程一直變,可能是某個模組一開始只服務一個單位,後來慢慢變成全校都在用,也可能是那時候的技術選型本來就不同。

講白一點,Legacy System 不是單純的技術債,它也是一段組織記憶。

如果我只把它看成「要被淘汰的舊程式」,那我會漏掉很多重要資訊:

  • 哪些資料真的還在被使用
  • 哪些欄位是歷史包袱
  • 哪些流程其實藏著校務規則
  • 哪些功能看起來不起眼,卻是行政現場每天會用的關鍵節點
  • 哪些命名不漂亮,但背後代表一個真實部門或業務情境

所以我給自己的第一個原則是:

先不要急著批判,先把它看懂。

這也是 AI 最適合介入的地方。不是請它直接重寫,而是先請它協助我建立地圖。


我用 Codex App 做的第一件事:把黑盒子變成地圖

Codex App 對我最大的幫助,不是「幫我寫幾段程式碼」而已。

真正有價值的是它可以進到專案脈絡裡,讀檔案、搜尋引用、追呼叫鏈、比對資料表命名,然後把零散資訊整理成我可以判斷的形式。

我大概把工作拆成幾個方向:

  1. 先掃描舊專案的目錄結構,找出主要模組與入口點。
  2. 追 Web 頁面、Code-behind、共用函式、DLL 呼叫與資料庫存取。
  3. 把 SQL、資料表名稱、欄位名稱與功能頁面串起來。
  4. 整理哪些資料表屬於同一個業務領域。
  5. 釐清哪些功能只是畫面操作,哪些其實是核心校務流程。
  6. 把結果逐步沉澱成 LegacyDBSchema,作為未來新系統開發前的地圖。

這裡的關鍵不是一次產生完美文件。

關鍵是讓 AI 先幫我把「我不知道自己不知道什麼」挖出來。

以前我可能要一個檔案一個檔案翻,看到 SQL 再手動記錄,看到共用方法再回頭搜尋誰呼叫它。現在我可以讓 Codex App 幫我先做初步盤點,再由我去審查、修正、補上判斷。

這種差異非常大。

以前是人在迷宮裡走;現在比較像 AI 先幫我畫出迷宮草圖,我再拿著草圖去確認哪條路真的通。


LegacyDBSchema 的價值:不是資料表清單,而是開發共識

我現在建立 LegacyDBSchema,不是為了做一份漂亮文件放著。

它的真正用途,是讓未來的開發更順。

在舊系統轉新系統的過程裡,最怕的不是寫不出 API,也不是前端畫面做不出來。最怕的是我們以為自己理解了需求,結果資料關係完全看錯。

例如:

  • 這張表到底是主資料,還是暫存資料?
  • 這個欄位是狀態,還是某個流程階段的副產品?
  • 這兩張表的關係是正式關聯,還是歷史上某次功能新增後留下的連動?
  • 這個功能要搬到新系統時,是應該照搬資料結構,還是重新定義 domain model?

如果沒有先整理,這些問題會在開發中途爆炸。

LegacyDBSchema 就像是新舊系統之間的翻譯層。它先承認舊系統的真實樣貌,再幫我們判斷哪些東西要保留、哪些東西要轉換、哪些東西應該趁重構時切乾淨。

這對 C# API、Vue 後台、未來可能的 App 流程都很重要。

因為只要資料邏輯沒有釐清,前後端都會變成猜謎遊戲。


AI 加速的不是「打字」,而是整個工作流程

很多人談 AI 開發,會把焦點放在「AI 幫我寫了多少程式碼」。

但我這次感受更深的是:AI 真正加速的是整個工作流程。

它加速了這幾件事:

工作階段以前的方式有 Codex App 之後
專案探索手動翻目錄、找入口點先讓 AI 掃描結構並提出模組地圖
呼叫鏈追蹤一個方法一個方法搜尋讓 AI 協助整理頁面、函式、資料表關係
DB 盤點手動記錄 SQL 與欄位讓 AI 初步彙整後再人工審核
文件建立開發後才補文件探索過程中同步沉澱成文件
決策討論靠口頭記憶與零散截圖用整理後的 schema 與流程圖討論
新系統規劃邊做邊猜先建立舊系統基準,再設計新架構

老實說,這不是省下幾分鐘而已。

它把我從「低階搜尋與複製貼上」拉到「判斷、驗證與設計」的位置。

我仍然需要看結果。AI 盤點出來的東西不可能全信,尤其是舊系統常常會有命名不一致、未使用檔案、歷史資料表、或看起來相關但其實已停用的流程。

但是差別在於,我不再需要把大量時間花在第一輪粗掃。

AI 先把材料搬到桌上,我再判斷哪些是證據,哪些只是噪音。

這就是我覺得 AI 對工程師最實際的加速方式。


這也改變了我對「新工作前幾週」的看法

以前進到一個新環境,前幾週通常會有一段很長的適應期。

你要認人、認系統、認資料庫、認部署方式、認那些「文件沒有寫但大家都知道」的規則。

AI 不會讓這些事情消失。

但它可以把適應期壓縮得更有效率。

我可以更快整理出問題清單:

  • 哪些系統需要優先理解?
  • 哪些資料表是核心?
  • 哪些流程會影響未來 API 設計?
  • 哪些舊邏輯需要保留相容?
  • 哪些地方適合直接重構?
  • 哪些地方要先保持敬畏,不能亂動?

這最關鍵。

工程師剛進一個新環境,最需要的不是馬上展現自己多會寫 code,而是快速建立正確的系統感。

Codex App 幫我加速的,就是這種系統感。


Eric 的碎碎唸:AI 讓人變快,但也讓基本功更重要

這幾天用下來,我反而更確定一件事:

AI 不是讓工程師不用懂系統,而是讓工程師更需要懂系統。

因為 AI 可以很快給你一份看起來合理的整理,但它不知道學校現場真正的優先順序,也不知道某個欄位背後是不是行政流程的關鍵判斷。它可以找到線索,但最後要不要採信,仍然要靠人。

所以我現在比較喜歡把 AI 當成一個很強的協作隊友,而不是自動駕駛。

它負責加速探索、整理脈絡、產出初稿、幫我追引用。

我負責判斷風險、確認語意、設計邊界、決定新系統該怎麼長。

這樣的分工才健康。


結語:先把舊世界看懂,才有資格建立新世界

從上禮拜到這禮拜,我在林口康橋最大的收穫,不是馬上完成了什麼新功能,而是開始建立一套面對 Legacy System 的工作方法。

先爬出舊系統。

先建立 LegacyDBSchema

先讓資料、流程、頁面與業務規則有一張可以討論的地圖。

然後,才開始設計新的 C# API、新的 Vue 後台、新的 App 流程。

講白一點,AI 讓我更快動手,但也提醒我不要急著動手。

因為真正好的系統改造,不是把舊東西全部推倒重來,而是先理解它為什麼存在,再決定哪些要保留、哪些要轉換、哪些要勇敢淘汰。

這一週,我覺得自己不是在跟 AI 比誰寫 code 比較快。

我比較像是在用 AI 幫自己多長一雙眼睛。

而在一個剛開始接手的校務系統裡,這雙眼睛,真的很有用。