態度決定一切 程式設計師的職業素養
本文轉自:夢無憶的讀書筆記
原文地址:http://blog.jesseluo.me/blog/2012/note-about-the-clean-coder/
Robert C.Martin的大名我們就不說啥了。這本書寫的深入淺出,感覺像讀一本小說,流暢自然,但自然而然的就學到了很多東西。結合工作經驗,常有種“確實如此”的感覺。
該書尤其適合我等初入職場,試圖成為“專業人員”的人。其中永遠不要說“我試試”和有關測試的章節給我留下了深刻印象。
《程式設計師的職業素養》(英文名: The Clean Coder:A Code of Conduct for Professional Programmers)是最近讀的一本好書,作者是大名鼎鼎的Bob大叔。這本書裡系統的講述了作為一名“專業人士”所應有的態度及需要掌握的基本方法論。讀來受益匪淺,尤其適合我等初級碼農。
本書的中譯版翻譯的還不錯,讀起來比較流暢。至於準不準確,我只看過一部分原書(原書有電子版可以下載),不評判。
廢話不多說,上筆記。
上篇·態度篇
承擔責任,信守諾言 —— Say ‘Yes’
- 承諾必須完成!
- 瞭解自己,準確預估
- 保證各方正確理解承諾
學會拒絕 —— Say ‘No’
- 專業 = 不屈從權威
- 永遠不要說“試試看/我儘量”
- 尋求對抗中達到理想狀況,而不是虛偽地保持和諧
始終保持整潔、自律
- 保持專案質量,避免壓力的之道 P132
- 不行損害之事(Do No Harm) P4
- 不管壓力多大,也要遵守一貫的程式設計紀律(TDD、重構) P132
- 隨時改進(所以TDD)
溝通與合作
- 與QA
- 與BOSS
- 與客戶
- 與團隊/其他程式設計師
- 保持謙遜,互幫互助
團隊協作
- 不要為專案組建團隊,而要為團隊分配專案 P144
堅持學習,不斷練習
- 技術基礎 P10
- 保持“手熟”
- 理解業務 P13
- 僱主沒有義務提升員工能力!(但是有遠見的公司會) P82
下篇·方法論篇
編碼
- 結對程式設計
- 應對壓力/阻塞/中斷等等問題
- 提高效率,同時review
- 分享知識
- 避免進入“超神”狀態(Flow Zone)(速度 != 質量) P53
- 保持精力,保持節奏(否則會寫出令自己後悔萬分的東西) P50 P60
- 交付壓力
- 管理他人期望
- 避免盲目衝刺/加班
- 定義“完成”,保證交付
TDD
- 每個專業人員必須掌握!
- 三項法則 P69
- 總結:進度細分,目標牽引編寫
- 好處
- 極大減少除錯時間
- 缺陷率顯著下降
- 確定性:方便隨時重構,亦可隨時交付
- 促使優化設計
- 心理上的鼓勵
測試
- 溝通需求 P84 P91
- “完成” P89
1.完成所有程式碼
2.通過所有測試
3.QA和需求方認可 - 驗收測試
1.確定需求已經完成
2.整套自動化測試:測試通過即需求完成(自動化非常重要!)
3.業務分析員測試正確路徑,QA測試異常、邊界、錯誤情況等
4.研發要主動跟進,和測試協商 - 單元測試和驗收測試不同點 P96
1.關注點和關注人員不同
2.測試機制與路徑不同 - 單元測試和驗收測試共同點
1.首先是文件,如實描述系統的設計、結構、行為
2.測試是附屬,價值在於具體指標 - 持續整合:非常重要!一旦失敗團隊必須全力處理,讓CI持續進行為團隊最高優先順序任務
- QA是團隊一部分(不是研發的敵人!),並且應該找不出任何錯誤!
- 自動化測試金字塔 P101
1.單元測試:覆蓋率100%,程式設計師自己編寫,自己測試。用於TDD
2.元件測試:覆蓋率50%,QA和業務人員編寫,專門測試環境。主要用於測試成功路徑等
3.整合測試:覆蓋率20%,即模組聯調,用於測試系統是否能跑的正常
4.系統測試:覆蓋率10%,架構師和技術負責人編寫,確保系統正確構造,效能測試等
5.人工探索式測試:覆蓋率5%,各種人,用於探索式的測試
時間管理
- 會議管理
拒絕非必要會議 P178
萬一會議超時/沒意義,禮貌地離席 P108
尋求主管和其他同事的幫助 P108
爭論:5分鐘內擺明道理,投票解決 P111
具體會議的建議:立會,迭代計劃會,迭代回顧和Demo展示 P109 - 個人時間管理
注意力點數 P112
番茄工作法:拆分時間 P113
正確管理優先順序 P114
避免死衚衕與泥潭 P115
預估
- 用合理的預估明確承諾
- 三元預估:樂觀,標程,悲觀三套預估值
- 自己預估:PERT —— 一種藉助概率論進行預估的方法 P123
- 通過他人預估: 德爾菲法及其變種 —— 數手指,規劃撲克,關聯預估 P125
- 大數定律:分開預估再加總會更準 P127
面對壓力
- 保持紀律,甚至更加嚴格
- 溝通,尋求幫助
不斷練習
- 專門的練習:卡法,瓦薩等,保持手熟 P79
- 參與開源專案
- 補一個:Hackethon
相關文章
- 程式設計師的職業素養(一)程式設計師
- 《程式設計師的職業素養有感》程式設計師
- 程式設計師該有的職業素養程式設計師
- 轉贈《程式設計師的職業素養》程式設計師
- 論一個程式設計師的職業素養程式設計師
- 成長之路--論程式設計師的職業素養程式設計師
- 程式設計師職業素養之讀後感程式設計師
- 程式設計師的專業主義精神——評《程式設計師的職業素養》程式設計師
- 程式碼整潔之道:程式設計師的職業素養(十三)程式設計師
- 《程式碼整潔之道——程式設計師的職業素養》讀書筆記(一)程式設計師筆記
- Bob大叔:程式設計“老師傅”和他的職業素養(圖靈訪談)程式設計圖靈
- [英]Bob大叔:程式設計“老師傅”和他的職業素養(圖靈訪談)程式設計圖靈
- 《程式設計師的職業素養之程式碼整潔之道》成為專業人士必讀程式設計師
- 《程式設計師的職業素養》讀後感:一本Bob大叔的錯誤大全程式設計師
- 不能跳過的《程式設計師的職業素養(The Clean Coder)》中的一個章節程式設計師
- 你不可不知的魔王索倫的眼睛——《程式設計師的職業素養》封面解讀程式設計師
- 程式設計師的職業病(職業素養)之一:動手寫業務程式碼之前先考慮異常處理程式設計師
- 為程式設計師開一劑提高職業素養的良方程式設計師
- IT人的職業素養與規劃
- 編寫簡練程式碼是程式設計師的職業修養之本程式設計師
- 程式設計師的技能樹,決定了一生職業的高度程式設計師
- 作為技術人的職業素養
- 程式設計師職業生涯程式設計師
- 職業程式設計師不必那麼“職業”程式設計師
- 程式設計師的職業規劃!程式設計師
- 瘋狂Java程式設計師的基本素養學習筆記Java程式設計師筆記
- 關於軟體方面的職業素養
- 【專業技能】程式設計師的軟體工程素養之畫好 UML 時序圖程式設計師軟體工程時序圖
- 美工和程式設計師的職業病程式設計師
- 程式設計師職業之路的選擇程式設計師
- 話說程式設計師的職業生涯程式設計師
- [轉]程式設計師的職業規劃程式設計師
- 資料素養決定你的未來
- 態度以及業餘付出決定程式生涯
- 程式設計師的基本常識——職業篇程式設計師
- 創造型職業程式設計師的無奈程式設計師
- 程式設計師,你的職業不要固步自封程式設計師
- 程式設計師的自我修養程式設計師