Robert C. Martin (Uncle Bob)
什麼是專業程式設計師?#
專業程式設計師最重要的特質是個人責任感(personal responsibility)。專業的程式設計師為自己的職涯、時程承諾、錯誤和技藝品質負責,不會把責任推卸給別人。
專業的核心要素#
為自己的職涯負責#
- 你有責任持續閱讀和學習,跟上產業和技術的發展
- 太多程式設計師認為雇主應該負責培訓他們——這是大錯特錯
- 醫生、律師都是自費、利用自己的時間來精進專業。程式設計師也應如此
- 雇主承諾付你薪水,你承諾做好工作——這就是僱傭關係的本質
為自己寫的程式碼負責#
- 專業的程式設計師不會發布自己不確定是否能運作的程式碼
- 專業的程式設計師期望 QA 找不到任何問題,因為他們已經徹底測試過了
- 當然 QA 仍會發現一些問題(人無完人),但我們的態度必須是不留任何東西給 QA 發現
團隊合作#
- 專業的程式設計師為整個團隊的產出負責,而非只顧自己的工作
- 互相幫助、互相學習,必要時互相支援
- 當隊友倒下時,其他人補上——因為知道有一天自己也會需要支援
不容忍龐大的 Bug 清單#
- 問題追蹤系統中有數千個 issue 是草率的悲劇
- 在大多數專案中,需要 issue 追蹤系統本身就是草率的徵兆
- 只有非常大型的系統才真正需要龐大的 bug 清單和自動化管理
不製造混亂#
- 保持程式碼整潔、結構良好、易於閱讀
- 遵循既定的標準和最佳實踐
- 永遠不趕工
想像你看著一位醫生進行心臟手術,而他面臨的是字面意義上的 deadline。你希望他像典型的軟體開發者那樣匆忙又製造混亂嗎?還是希望他堅守紀律、謹慎自信?你要的是混亂,還是專業?
結語#
專業的程式設計師為自己的職涯負責、確保程式碼能正常運作、為技藝品質自豪。他們不會在壓力下放棄原則——事實上,當壓力越大時,專業的程式設計師會越緊守他們知道正確的紀律。