iT邦幫忙

legacy相關文章
共有 35 則文章
鐵人賽 Software Development DAY 26

技術 Day 26:遺留系統補測試——AI 適合先寫特徵測試(characterization test)嗎?

前言:昨天才說不要為了通過而改鬆斷言,今天卻要談「不管對不對先釘住」? 「昨天才講不能為了讓測試變綠就放寬斷言,今天卻要教 AI 寫一種『不管現在的行為對不對,...

鐵人賽 Claude AI DAY 30

技術 Day 30:總結——如果重來一次,會怎麼設計這套流程

前言:為什麼要花 30 天講一套流程,而不是直接分享程式碼 決定寫這個系列時,心裡其實有點猶豫。市面上不缺「AI coding agent 怎麼用」的分享,但大...

鐵人賽 Claude AI DAY 29

技術 Day 29:這套方法論的邊界——AI 重構不該做的事

前言:講了 28 天「怎麼做」,今天要誠實講「不該做什麼」 這個系列從 Day 01 到現在,講的都是怎麼讓 AI 安全動手——基準線、乾淨環境比對、Repos...

鐵人賽 Claude AI DAY 28

技術 Day 28:重構進度怎麼追蹤——一個尚未完成的長期遷移計畫管理法

前言:進度清單本身,就是一份記憶 「這項長期遷移計畫的進度,我們有記在清單裡,要用的時候查一下就好了吧?」 Day 20 講過記憶會過期,今天要把這個原則套用到...

鐵人賽 Claude AI DAY 27

技術 Day 27:案例——從 error_log/trigger_error 遷移到結構化 logger

前言:這兩種寫法看起來都是「記個錯誤」,行為卻完全不同 「這段程式碼用 error_log() 記了個錯誤,那段用 trigger_error(),反正都是記錄...

鐵人賽 AI Engineering DAY 27

技術 Day 27:遺留系統的架構重建——先畫邊界,還是先補測試?

前言:一個看似該有標準答案的問題 「要重整一套沒有邊界、也沒有測試的遺留系統,到底該先補測試建立安全網,還是先畫邊界重整架構?」 這個問題在社群裡討論很多次,答...

鐵人賽 Claude AI DAY 26

技術 Day 26:案例——日誌去重分組鍵設計錯誤,正式環境資料才踩到的坑

前言:本機測試全過,為什麼正式環境還是壞了? 「這段去重邏輯的測試都寫了、也都綠燈,怎麼上線之後還是看到重複記錄?」 Day 24 講過一個去重相關的案例,根因...

鐵人賽 AI Engineering DAY 26

技術 Day 26:案例——忽略依賴方向規則的教訓,一次「看起來方便」的捷徑

前言:那個捷徑,三週後找上門了 Day 06 講過依賴方向規則為什麼容易被忽略——它不會讓測試變紅,也不會讓程式碼跑不起來。今天用一個具體案例,走完一次違反這條...

鐵人賽 Claude AI DAY 25

技術 Day 25:案例——大表 DDL 差點拖垮整個資料庫實例

前言:「加一個索引」,聽起來是最安全的操作了吧? 在所有資料庫維運操作裡,「加一個索引」大概是最常被當成無腦安全動作的一種——不改資料、不改邏輯,理論上只是幫查...

鐵人賽 Claude AI DAY 24

技術 Day 24:案例——一次「以為是非同步問題,其實是重複鍵設計錯誤」的除錯過程

前言:症狀對得上,代表診斷就對了嗎? 第三部到 Day 23 結束,今天正式進入第四部:實戰案例與總結。接下來幾天,會用幾個真實踩過的坑,具體示範前面 23 天...

鐵人賽 Claude AI DAY 23

技術 Day 23:把踩坑經驗回饋給 AI 工具本身——一個好的 bug report 長什麼樣

前言:這個問題該寫進 skill,還是該回報給工具本身? 「AI 又做了一件很奇怪的事,我要不要把這條規則寫進 CLAUDE.md,以後就不會再發生了?」 這個...

鐵人賽 Claude AI DAY 22

技術 Day 22:Code Review 也交給 AI——怎麼設計審查流程避免誤判

前言:讓 AI 審查 AI,是不是找了個裁判自己吹哨? 「讓另一個 AI agent 來 review 剛剛那個 AI agent 寫的程式碼,這樣真的有用嗎?...

鐵人賽 Claude AI DAY 21

技術 Day 21:多 Agent 協作——什麼情況該讓子任務跑在獨立 agent

前言:改動不大,是不是就不用委派? 「這個任務範圍很小,直接自己做不是比開一個獨立 agent 還快嗎?」 這是個很常見的直覺,而且這個直覺的判斷依據其實錯了。...

鐵人賽 Claude AI DAY 20

技術 Day 20:記憶會過期——怎麼避免 AI 依賴已經失效的舊資訊

前言:AI 說「我記得」,是好事還是壞事? 「AI 有長期記憶,不用每次都重新解釋專案背景,這樣效率不是更高嗎?」 效率確實更高——直到那份記憶跟現實脫節的那一...

鐵人賽 Claude AI DAY 19

技術 Day 19:從「被使用者糾正」到「記住規則」——feedback 記憶怎麼運作

前言:記住「使用者不喜歡什麼」,真的有用嗎? 「AI 被糾正過的事情,記下來下次不要再犯不就好了嗎?」 聽起來理所當然,但真正動手設計這套記憶機制時,會發現「記...

鐵人賽 Claude AI DAY 18

技術 Day 18:AI 的持久記憶系統——user/feedback/project/reference 四種記憶類型

前言:不是每件事都值得寫成 skill 「昨天講完怎麼把一次性踩坑經驗提煉成 skill,那是不是以後每件事都該往 skill 裡塞?」 不是。skill 是給...

鐵人賽 Claude AI DAY 17

技術 Day 17:Skill 設計實戰——把一次性的重構經驗變成可重複套用的流程

前言:規則講過一次,AI 下次還會忘記嗎? 「昨天才糾正過 AI 一個錯誤判斷,今天換個任務,它是不是又會犯一樣的錯?」 會的——如果那個教訓只留在昨天那次對話...

鐵人賽 Claude AI DAY 16

技術 Day 16:讓 AI 記住「這個專案的規矩」——CLAUDE.md 與 skill 的分工

前言:規則寫給 AI 看,但寫在哪裡才有用? 「這條規則我明明寫在專案文件裡了,AI 怎麼還是沒套用?」 如果你也遇過這種情況,問題往往不在「有沒有寫」,而在「...

鐵人賽 Claude AI DAY 15

技術 Day 15:數值精度——為什麼金額運算要求強制使用 bcmath

前言:這條規則 AI 明明知道,為什麼還是會忘記套用 「金額運算要用 bcmath,不要用浮點數」——這條規則寫在專案規範裡,隨便問哪個 AI coding a...

鐵人賽 Claude AI DAY 14

技術 Day 14:型別提示具體類別 vs 介面——DI 容器 autowire 出空殼的真實案例

前言:物件建立成功,代表它是對的嗎? 「這個物件都能正常 new 出來、程式也沒噴任何錯誤,代表這個依賴注入設定是對的吧?」 答案是:不一定。今天要講的這個陷阱...

鐵人賽 Claude AI DAY 13

技術 Day 13:依賴注入容器的陷阱——單例快取了不該快取的物件

前言:這段程式碼在正式環境跑了三年都沒事,怎麼會有 bug? 「這個類別已經在正式環境穩定跑了三年,你確定它有問題?」 這是我請 AI 修一個 DI 容器單例的...

鐵人賽 Claude AI DAY 12

技術 Day 12:package 隔離規則——為什麼廠商 package 不能依賴外層專案的 vendor

前言:反正都在同一個 repo,共用套件不是很正常嗎? 「廠商整合的 package 就放在專案裡面,外層專案已經裝了一堆套件,package 直接拿來用不是很...

鐵人賽 Claude AI DAY 11

技術 Day 11:廠商 API 遷移實戰——legacy 接線如何拆成獨立 package

前言:介面化一支函式很簡單,一整家廠商呢? 「昨天講的 PSR-17/18 介面化,聽起來就是把一支函式包一包,套用到整套廠商接線應該也差不多吧?」 如果只有一...

鐵人賽 Claude AI DAY 10

技術 Day 10:外部 API 呼叫的介面化——從裸 curl 到 PSR-17/PSR-18

前言:這段程式碼「沒有改行為」,你怎麼證明? 「AI 說它只是把這段呼叫外部 API 的程式碼重構了一下,邏輯完全沒變,可以直接合併嗎?」 如果這段程式碼是裸寫...

鐵人賽 Claude AI DAY 9

技術 Day 09:Repository 重構實戰——一個 Controller 直接查資料庫的案例

前言:道理都懂,動手時卡在哪裡? 「SQL 要收斂進 Repository,這個原則我聽懂了。但真的要動手改一個已經在正式環境跑好幾年的 Controller,...

鐵人賽 Claude AI DAY 8

技術 Day 08:SQL 一律經過 Repository——把裸寫 SQL 的 legacy 程式碼收斂

前言:AI 看得懂 SQL,為什麼還要多包一層? 「AI 又不是看不懂 SQL,裸寫 SQL 讓它直接改,不是比多包一層 Repository 介面更快嗎?」...

鐵人賽 Claude AI DAY 7

技術 Day 07:為什麼要在獨立 subagent/子流程裡跑驗證迴圈

前言:驗證跟判斷,可以是同一個人做嗎? 「反正都是同一個 AI 在跑,驗證跟判斷一起做,效率不是更高嗎?」 昨天講完乾淨基準比對,這是個很自然的疑問——為什麼不...

鐵人賽 Claude AI DAY 6

技術 Day 06:與乾淨基準比對——把「本機環境雜訊」跟「真的迴歸」分開

前言:測試變紅了,是我改壞的,還是本來就這樣? 「跑測試,紅字,代表這次改動有問題」——這句話聽起來理所當然,但在一套運作多年、缺乏完整測試網的系統上,這個推論...

鐵人賽 Claude AI DAY 5

技術 Day 05:PHP 版本相容性驗證——本機新版 PHP vs 正式環境舊版 PHP 的陷阱

前言:本機測試都綠燈了,還會有什麼問題? 「AI 在本機把測試都跑過一遍,全部綠燈,這樣總可以放心合併了吧?」 如果你也這樣想過,先別急著點頭。這套系統正式環境...

鐵人賽 Claude AI DAY 4

技術 Day 04:建立重構的「基準線」——分支策略與覆蓋率門檻

前言:AI 說「這樣改沒問題」,你要拿什麼驗證? 「AI 都已經跑過測試了,測試都綠燈,這樣還不夠嗎?」 這句話聽起來很合理,但漏掉一個關鍵前提:綠燈只證明「現...