我最近剛讀完 Robert C. Martins 的新書 《The Clean Coder: A Code of Conduct for Professional Programmers 》(編注:暫無中文版)。我可以毫不猶豫地、誠實地說,這本書真的改變了我對於專業軟體開發人員的看法和觀念。在閱讀過程中,我一直把學習到的事情和頭腦中瞬間轉變的事情寫在剪貼簿上。
我強烈建議任何,不論老手或者新手,只要是還沒有機會讀這本書的軟體開發人員都應該找時間讀一下。關於成為一名專業軟體開發人員的意義,這本書提供了許多有價值和有趣的資訊。
宣告:請注意,因為不同的人有不同的看法。這是我對這本書闡述內容的理解。
我學到的9件事
- 一名專業開發人員瞭解所開發專案的領域
- 一名專業開發人員是具有團隊精神的人
- 一名專業軟體開發人員能肩負責任
- 一名專業開發人員知道模式和準則
- 一名專業開發人員能夠在忙碌中保持冷靜
- 一名專業開發人員會不斷訓練自己的專業技能
- 一名專業開發人員會適當休息
- 一名專業開發人員懂得時間的寶貴
- 一名專業開發人員從不害怕說不
1. 一名專業開發人員瞭解所開發專案的領域
作為一名專業開發人員,你的工作不僅僅是閱讀需求說明書和編寫軟體程式碼。你還應該知道專案在現實中是如何使用的。
這就意味著如果你要編寫一個記賬軟體,你至少應該具備一些基本的財務知識。你不需要成為這個領域的專家,但是有一點這方面的知識的話,在解決問題和提出解決方案時將有很大幫助。
2. 一名專業開發人員是團隊的一員
作為一名專業開發人員,你當然應該對其他人禮貌並樂於助人。當別人向你尋求幫助時,你應該換位思考,像你自己所期望的那樣去幫助別人。你應該樂於助人並樂於接受別人的幫助。
而且,你不應該把自己和程式碼獨立於團隊之外。記住!這些程式碼不是屬於你的,是屬於整個團隊的。所以,不要不理會參與工作的其他人,甚至不讓他們看程式碼,而是應該鼓勵。這將幫助你成長為一名開發人員,因為這樣就產生了反饋,而這對團隊和專案都是大有裨益的。
團隊隨著時間推移,也會變得越來越好,最後團隊成員會了解彼此的優點和弱點。當團隊能夠如此時,作為一個團隊就能很高效地解決問題了。由於需要時間來建立這樣堅實的團隊,當一個專案完成時,給團隊一個新專案比解散整個團隊要明智得多。
3. 一名專業軟體開發人員能肩負責任
作為一名專業開發人員,你要對你的程式碼負責。你的工作就是了解你程式碼的作用和所有程式碼的功能。當你編碼時,你應該注意不要對你的專案產生危害,並且儘可能的將錯誤率降至接近於零。
這能夠通過簡單的測試完成。測試程式碼使你對工作更有信心,瞭解怎樣編寫最好的程式碼並且避免錯誤。Robert C. Martin最近說最高的目標是QA部門找不到任何小錯誤。一個具有測試程式碼的完整專案也給開發人員更多的信心來處理漏洞。
單元測試和驗收測試應當利用持續整合系統自動完成(因為它比手動測試更加便宜)。這種測試應該一直執行,即使是開發人員向專案提交程式碼的時候。如果測試間斷,應該儘快修復。
Robert C. Martin也強烈支援測試驅動開發。TDD致力於訓練開發人員考慮更好的設計並構建他們的程式碼,使之易於測試。據Robert C. Martin所說,不使用TDD是不專業的。
4. 一名專業開發人員瞭解模式和準則
作為一名專業開發人員,編寫高質量的、已測試的、乾淨的程式碼是你的責任。這包括瞭解設計模式、規範、方法、準則和技巧。
由於軟體產業發展的不斷變化,不斷使用新的思路和工具,保持更新到最新的標準和技術同等重要。
你在任何時候都不能因為忽視標準而降低你的質量,即使是繁忙和緊張的情況下為了縮短時間。
5. 一名專業開發人員能夠在忙碌中保持冷靜
作為一名專業開發人員,你應該在忙碌和有壓力的情況下始終保持冷靜。嘗試想出最好的解決問題的辦法並將情況告知你的上司,尋求他們的反饋和意見。
忙中更易出錯。在緊急情況下,你可以嘗試與同事結對程式設計。這樣不僅可以減少新增的錯誤而且也是一個與團隊成員分享知識的好方法。
6. 一名專業開發人員會不斷訓練自己的專業技能
作為一名專業開發人員,你應該花時間關心你的技能。就像其他專業,實踐帶來能力、技巧和經驗。
通過讀、練和學習一直訓練你自己是你的責任——實際上,任何幫助你成長為軟體開發人員和幫助你起步的事物都在不停變化著。
重要的一點是,你應該在你自己的私人時間裡完成,而不是在工作時間裡。培訓你不是他們的責任,而是你自己的責任。當然,不要和你應該工作的時間弄錯。這個時間應該專門針對你和你的興趣。你可以做任何感興趣的事。據Robert C. Martin所說,如果你每週工作40小時,你應該花20小時提高你的專業技能。
7. 一名專業開發人員會適當休息
作為一名專業開發人員,你應該知道做一名軟體開發人員是很費腦子和累人的工作。注意不要勞累過度是很重要的,你需要在工作和生活之間尋找平衡。做一個休息好的開發人員使你能更專注並且在工作中表現得更好。這也是對抗心理阻滯的良方。
8. 一名專業開發人員懂得時間的寶貴
作為一名專業開發人員,你應該知道時間的寶貴。它們不應該被隨意浪費,這就要求你要合理安排你的時間,比如開會,就很浪費時間。婉言謝絕會議對你不利,但如果參加則不利於任何人。
會議也應有明確的議程和目標。如果你注意到會議開始變得乏味並且對你不再有益,或者議程被放棄抑或會議變成簡單唱高調,你要麼換個新的話題要麼禮貌地離開。你也許有更好的事情去做而不是繼續坐在那裡。
9. 一名專業開發人員從不害怕說不
作為一名專業開發人員你不應該害怕說不。如果你發現一些事情是不現實的(例如一個意見、期限、要求等等)這些需要你提出來。不是大多數時候——而是每一次。
你甚至不應該說你可以試試,因為這樣將會提供一個假象那就是這個任務是可行的,也可能更糟,這使你變成一個騙子,有損你在上司和同事之間的名聲。相反,嘗試改換措辭並解釋你所關心的問題。清晰和具體地明確問題的時間和日期。
如果你的上司不聽你的或者不接受否定的回答,你應該想想更進一步行動。雖然越級不太好,但是最後會帶來對所有參與者最好的結果。
據Robert C. Martin說,判斷的定義因人而異。對於商務人士,判斷方法是承諾。對軟體開發人員,判斷是猜測,概率計算。
你應該只對能夠確保完成的工作做出承諾。當專業地對一些事承諾後,提供硬性標準並且確保在期限內完成工作。
原文作者:Christoffer 編譯:伯樂線上 – 魏哲
【如需轉載,請標註並保留原文連結、譯文連結和譯者等資訊,謝謝合作!】