最近流傳的一個很悲慘的 Giant Bug fix, 詳見此連結: Commit a047be85247755cdbe0acce6f1dafc8beb84f2ac.
此次 Commit 修正的內容如下: (應該是手誤, 多了一個空白, 但是這個空白造成非常大的慘劇(把 /usr 砍掉))
@@ -348,7 +348,7 @@ case "$DISTRO" in
- rm -rf /usr /lib/nvidia-current/xorg/xorg
+ rm -rf /usr/lib/nvidia-current/xorg/xorg
這種事情還蠻常見的, 特別是在 緊張 或 精神不佳 的狀況, 就常會有這種大爆炸的狀況發生.
最常見的避免法, 是把 rm 改成 mv, 先都搬到一個目錄, 確定沒有用再砍掉(或定時砍掉), 可以讓此災難影響範圍小一點.
相關文章
這篇文章有把這個 Commit 下面那些精彩的圖片都整理成此篇: 一個空格引發的慘劇
此作者(陳皓)還有寫以下這些文章, 都是程式設計師慘痛經驗的累積成果, 建議可以參考看看~ (註: 下述用語不特別轉換, 只有轉成繁體而已)
- 如何寫出無法維護代碼 - 推薦此篇一定要看(這些事情要盡量避免)
- 下述摘錄自此文: 程序員那些悲摧的事兒
- 所有的經驗都是從錯誤中來的
- 測試環境和生產環境的數據不要混在一起
- 在 Delete 之前, 最好先做一次 Select
- 尤其是剛出道的程序員, 你們要多多犯錯, 要犯錯那種丟死人的錯, 這樣你才會知恥而勇
- 犯錯不可怕, 可怕的是不會從中總結教訓, 同一個錯犯兩次
- 下述摘錄自此文: 老手是這樣教新手編程的
- 讓其獨立思考
- 步步為營的引導
- 教一種方法, 而不是直接給答案