iT邦幫忙

2026 iThome 鐵人賽

DAY 5
1
Software Development

大廠觀落陰:中年工程師的產線鬼故事與生存防身術系列 第 5

下班開直播教 Clean Code,上班自己的 PR 卻像一坨大便

  • 分享至 

  • xImage
  •  

不知道科技業的大家有沒有遇過這種同事,履歷打開一堆社群經歷,下班後到處演講、開直播教人怎麼寫 Clean Code、怎麼做敏捷開發。結果在公司裡,他自己開出來的 PR 簡直像是一坨大便。變數亂命名、邏輯大雜燴,連基本的 Unit Test 都懶得寫。你退他 PR,他還會用那種高高在上的語氣跟你說「你不懂,這叫 Pragmatic,這是為了快速交付」。這就像那些在網路上開課教人做台指期當沖的老師,滿嘴 K 線結構、支撐壓力,結果實單跑下去全部被抬出廠。網紅工程師也是一樣,講滿嘴幹話,寫不出半行能用的 Code。

阿姨以前在某某新創就來過這麼一尊「大神」。大神在社群上呼風喚雨,來公司第一天就對著我們這群老工程師 指指點點,嫌我們的 CI 跑太慢、嫌我們的架構太老舊。

結果大神自己接了一個金流 API 串接的 Feature。寫了一星期發 PR,我看了一眼差點發瘋,所有的商業邏輯全部塞在 Controller 裡面,超過八百行沒有任何拆分,裡面還混了一堆 Hardcode 的 Magic Number。

QA 請他補測試,大神在 Slack 裡面直接回:「這個邏輯很直觀,不需要寫測試浪費時間,可以直接 Merge 嗎?我等一下還要準備晚上的 Podcast 錄音。」

這種人仗著自己的「社群光環」,吃定了那些不敢得罪他的 Junior,每次 PR 都能靠著刷臉拿到 LGTM 。把產線當成自己過水刷經歷,透支整個團隊的技術信任。

面對這種自帶光環的技術網紅,跟他爭論是沒有用的,他可以用一萬種話術把你繞暈。對付這種人只能用「絕對客觀的機器檢驗」,也就是品質閘門(Quality Gate),程式碼的品質不是你嘴巴說了算,是靜態分析工具說了算。

  1. 強制導入 SonarQube / Code Climate 阻斷機制:
    在 CI 裡面把 Quality Gate 設為 Hard Fail。只要這個 PR 讓整體覆蓋率下降哪怕 0.1%,或者是新增的 Code 有 A 級以上的 Code Smell,Merge 按鈕直接不能按。

  2. 嚴格的複雜度限制(Cyclomatic Complexity):
    大神不是愛寫八百行的 Controller 嗎?我們在 Linter 裡面直接規定,任何 Function 的圈複雜度超過 10,直接噴 Error。

name: SonarQube Quality Gate
on: [pull_request]

jobs:
  sonar_scan:
    runs-on: ubuntu-latest
    steps:
      - name: 執行程式碼品質掃描
        run: mvn sonar:sonar -Dsonar.qualitygate.wait=true
        # 只要 Quality Gate 沒過,這一步會直接拋出 exit code 1,Pipeline 直接炸掉

上一篇
那個連 git push 都會打成 pull 的雷包
下一篇
客戶的無理需求是萬惡之源:被逼著寫出垃圾架構,最後黑鍋的卻是你
系列文
大廠觀落陰:中年工程師的產線鬼故事與生存防身術12
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言