許多資深工程師在進行代碼審查時,常常習慣直接留下具體解法:『這裡改成用 Map』、『不要在這裡打 API』。雖然出發點是為了效率,但長期下來,初中階工程師只學會了『照著改』,卻始終無法建立獨立識別架構問題的能力。
在恆軸的導師培育計畫中,我們特別強調『蘇格拉底式提問法』。當發現某處代碼存在潛在風險時,導師應先拋出情境問題,引導對方自己看見盲點。
例如,與其直接說『這裡有並發競態問題』,不如提問:『如果兩個使用者在同一毫秒點擊按鈕,這個緩存變數的狀態會發生什麼事?』;與其說『這段函式太長了』,不如問:『三個月後如果要替換這個外部付款 SDK,我們需要改動哪些檔案?』
當審查從『指令式』轉向『啟發式』,工程師在提交代碼前就會開始自我預演這些情境。這種內化的批判性思維,正是區分資深與初階工程師的分水嶺。
此外,審查意見的語氣亦不可忽視。明確區分『阻斷性問題(Blocker)』、『架構建議(Suggestion)』與『個人偏好(Nitpick)』,能大幅降低團隊成員的心理防禦感,創造一個開放且充滿求知慾的工程文化。