近兩年,幾乎每一場技術面試都會被問到這個問題:
「你平常怎麼使用 AI 開發?」
很多工程師的回答還停留在:「我每天用 Cursor」、「70% 程式碼是 AI 寫的」、「我 Prompt 寫得很好」。這些答案現在已經毫無鑑別度,因為大家都在用 AI。
技術主管真正想聽的,不是你用了哪些工具,而是你如何駕馭 AI,以及當 AI 出錯時,你是否有能力發現並守住系統底線。
以下內容全部來自我實際開發 多租戶 SaaS、租貸/金融流程、狀態機與金流系統,以及 legacy 重構、高壓 deadline 專案的真實經驗。
一、AI 在複雜系統中有明確的天花板
在簡單 CRUD 專案中,AI 看起來幾乎無所不能。 但在真正的 Production 系統(尤其是 SaaS + Multi-tenant + Financial Domain)中,它會明顯失效:
1. Multi-tenant 邊界問題(AI 最常犯錯)
- Background job 沒有帶 tenant context
- Cache key 未做 tenant 隔離
- ORM Global Scope 被 bypass
- Eager Loading 導致跨租戶資料外洩
這不是語法問題,而是系統邊界設計問題。
2. 金流 / 租貸狀態機複雜度 典型租貸流程:
申請 → 審核 → 撥款 → 還款 → 違約 → 追償AI 常見問題:
- State transition 缺少 invariant 檢查
- Retry 沒有 idempotency key
- 缺少 compensation / rollback 流程
- Event ordering 無法保證
AI 寫出來的東西「看起來合理」,但放到 Production 會出大事。
3. 系統一致性與分散式問題
- Eventual consistency 的 race condition
- Queue 重試導致 double execution
- Transaction boundary 不明確
- Partial failure 的恢復策略缺失
這些都是 architecture 層級 的問題,而非單純 coding。
二、我的核心定位:AI 是能力很強的 Junior Engineer
我把 AI 明確定位為「能力很強,但缺乏 domain context 的 Junior Engineer」。 因此我的開發方式不是「讓 AI 寫 code」,而是我先設好約束,AI 在約束內全力加速。
三、實務開發流程(面試時可直接分享)
Step 1:人類先定義 Domain Boundary(最重要) 獨立完成:
- Tenant isolation strategy
- Domain model(Loan、Repayment、Ledger、Risk)
- State machine 與不可逆轉規則
- Consistency boundary(Transaction vs Event)
這一步 AI 完全不參與。
Step 2:設計系統 Invariant(防 AI 犯錯的關鍵) 明確定義系統安全規則,例如:
- 同一筆 loan 不可重複撥款
- Tenant 資料不可跨 query 污染
- Ledger 必須 double-entry 平衡
- 所有 event 必須 idempotent
Step 3:AI 加速 Implementation 讓 AI 負責:
- CRUD API
- Service layer boilerplate
- Migration / Schema
- Validation / DTO
- Unit Test 初稿
- 重構建議
實際效果:開發效率提升約 2~3 倍。
Step 4:人工嚴格 Review(Architecture Review) 重點檢查:
- Tenant boundary 是否被破壞
- State machine 是否 drift
- Idempotency / Compensation 是否完整
- Failure scenario 是否涵蓋
- Async job 是否安全
Step 5:Production 驗證 Integration Test、Sandbox Replay、Shadow Traffic、Feature Flag 逐步 rollout(AI 幾乎不參與)。
四、面試推薦回答(建議直接背或微調)
當面試官問:「你平常怎麼使用 AI 開發?」可以這樣回答:
「我把 AI 視為 production development 的加速工具,但不是 system design 的決策者。 在開發多租戶 SaaS 或租貸金融系統時,我會先自己定義 domain model、tenant isolation 邊界、state machine 與一致性規則,這些是系統正確性的核心。 AI 則專注在 implementation layer,例如 CRUD、API skeleton、migration、validation 與 unit test,能讓效率提升大約 2~3 倍。 但 multi-tenant isolation、金流一致性、狀態機轉換與 retry/idempotency 等關鍵部分,我會全程主導設計與 review,因為這些錯誤在 production 是不可接受的。 AI 解決的是寫程式的效率,而工程師解決的是系統在 production 的正確性與風險控制。」
五、主管真正想評估什麼
- 你是否做過真正的複雜系統(multi-tenant + finance + state machine)
- 你是否有 System Thinking,而非僅限 function thinking
- 你是否敢為 Production 結果負責
六、結論:一句話總結
可以寫 code ≠ 工程師 可以用 AI ≠ 資深工程師 能定義 AI 不該碰的邊界、掌控複雜 domain 風險、並對 Production 結果負責 = 真正的工程能力
AI 時代,程式碼產出速度已經被快速拉平。 未來企業真正需要的,是能駕馭 AI、守住系統底線、並為長期穩定負責的資深工程師。
這篇文章不僅是面試攻略,更是我在多租戶 SaaS 與金融系統實戰中的心得分享。希望對正在準備面試、或正在導入 AI 開發流程的工程師有幫助。
如果你有類似經驗,歡迎留言交流! 也歡迎轉發給正在準備技術面試的朋友。
沒有留言:
張貼留言