不知道科技業的大家有沒有遇過那種,整天把「法學博士、法律教授」掛在嘴邊,一副要來整頓業界的大老,結果一出手就寫出超低級的 Bug。寫 Code 不是你在法庭上辯論,你講得頭頭是道,機器的執行結果就是會狠狠打你的臉。連 git init 都會打錯的程度,還每天自封戰神,真的不要出來害人 ==。
我做夢夢到,絕對不是在偷酸立法院翁某:
最近某公司有個「加薪 Patch」專案,大老信誓旦旦說要幫老員工把薪水 rollback 回 2023 年的高標。結果 Code 送三讀,強行 merge 進 master 之後,大家滿心期待刷存摺發現:一毛錢都沒變。
早在 QA 當初 review 的時候就提醒過他:「你 effective_date 沒定義欸,而且這段 logic 沒有 apply_to_legacy_data,舊資料根本跑不到。」結果大老在那邊咆哮說 QA 在找麻煩,堅持自己是對的,最後甚至直接下 git push -f 硬幹。
現在出包了,大老氣急敗壞下班開直播說:「我的原意就是要溯及既往啊!」笑死,誰知道你 source code 沒寫的東西叫原意?當大家都通靈少女在通靈編譯 Code 嗎?
面對這種用「原意」在寫 Code 的大老,你跟他講邏輯是沒有用的。產線上的防呆機制(Poka-Yoke)必須是物理級的阻斷,不能依賴對方的羞恥心,更不能相信他的人品。
首先,身為 Infrastructure 或 DevOps 管理者,第一步就是把 Repo 的 Branch Protection 鎖死。不管你是誰、學歷多高、粉絲多少,master 或 main 絕對不允許 Force Push。必須把 git push -f 這個核彈按鈕的權限從大老手中奪走。
再來,針對所有涉及資料變更(Data Migration)的 PR,CI 裡面必須強制擋下這種沒有實作邊界條件的爛 Code。
# 1. GitHub/GitLab Branch Protection 絕對要開啟 "Require pull request reviews"
# 2. 嚴格鎖死 "Allow force pushes" (這條絕對不能打勾)
# 3. 在 CI 中強制檢查 Data Migration 的向下相容性
name: Legacy Data Integration Check
on:
pull_request:
paths:
- 'src/billing/**'
- 'src/payroll/**'
jobs:
validate_legacy_logic:
runs-on: ubuntu-latest
steps:
- name: 執行舊資料覆蓋測試
# 如果大佬的 logic 沒有實作 apply_to_legacy_data,測試直接 Fail
run: pytest tests/integration/test_legacy_payroll.py --strict-markers
在這裡奉勸各位菜鳥/新鮮人/國家的希望,絕對不要苦口婆心跟大佬解釋為什麼這段 Code 跑不到舊資料,最後被大佬用權勢跟詭辯壓在地上摩擦,自損 3000 ,甚至懷疑是不是自己不懂技術 ,拜託不要