前段時(shí)間閱讀了《代碼整潔之道:程序員的職業(yè)素養(yǎng)》這本出自Uncle Bob的書籍,全書不足200頁,內(nèi)容很精簡,主要用作者40多年的職業(yè)生涯為例子,講述一個(gè)專業(yè)的程序員面對工作時(shí)所應(yīng)保持的態(tài)度和處事方法,讀后獲益良多,有必要記錄下來,以加強(qiáng)記憶方便日后推進(jìn)自己的工作。
全書圍繞關(guān)鍵詞“專業(yè)精神”進(jìn)行展開,大綱如下:
1、專業(yè)主義
專業(yè)主義意味著擔(dān)當(dāng)和責(zé)任,不做破壞之事(不破壞代碼、不破壞程序結(jié)構(gòu)),有良好的職業(yè)道德(雇主出錢,所以需要付出相應(yīng)的時(shí)間和精力,工作時(shí)間之外要保持自學(xué)以提升個(gè)人職業(yè)技能),要站在雇主和客戶的方向思考問題和解決問題,要保持謙遜,務(wù)實(shí)沉穩(wěn)。
2、敢于說“不”和說“是”
說“不”并不意味著充滿對抗和沖突,“不”意味著識別風(fēng)險(xiǎn),是對工作的負(fù)責(zé)。避免回應(yīng)“試試看”,“試試看”意味著對時(shí)間和風(fēng)險(xiǎn)的不確定預(yù)估,后果會很嚴(yán)重。說“不”,可以讓你更專注工作和提升代碼的質(zhì)量。
說“是”意味著作出了承諾,承諾后需要盡可能地將事情做好,承諾時(shí)需要堅(jiān)守原則,并非一切按照需求方的要求做事。
3、編碼
編碼前要理解不要處理的問題,要和現(xiàn)有的系統(tǒng)和諧共處,要讓其他程序員能不懂你寫的代碼。避免在休息時(shí)間編碼,避免在焦慮時(shí)繼續(xù)編碼,避免進(jìn)入“流態(tài)區(qū)”而忽略真正需要解決的問題,避免帶著耳機(jī)編碼(excuse me?)。當(dāng)感到無法進(jìn)行下去時(shí),應(yīng)離開片刻,注重“結(jié)對編程”的實(shí)踐。保持良好的編碼節(jié)奏。對外來的求助干擾要表示理解。
4、測試驅(qū)動(dòng)開發(fā)(TDD)
TDD三項(xiàng)法則:
(1)在編好失敗單元測試之前,不要編寫任何代碼
(2)只要有一個(gè)單元測試失敗了,就不要再寫測試代碼;無法通過編譯也是一種失敗情況
(3)產(chǎn)品代碼恰好能夠讓當(dāng)前失敗的單元測試成功通過即可,不要多寫
5、練習(xí)
講真,我不明白這章為什么要寫這么多武術(shù)的內(nèi)容,是證明和練武一樣,練得多了,就會越來越6嗎?
6、驗(yàn)收測試
這里強(qiáng)調(diào)的是對需求的理解,強(qiáng)調(diào)溝通對項(xiàng)目和工作的重要性。
7、測試策略
這里強(qiáng)調(diào)的是整個(gè)測試過程中各個(gè)角色所處的位置以及需要完成的內(nèi)容。
單元測試:開發(fā)人員編碼過程中進(jìn)行
組件測試:聯(lián)調(diào)API
集成測試:對組件進(jìn)行集成后,再對API進(jìn)行聯(lián)調(diào)
系統(tǒng)測試:系統(tǒng)整體運(yùn)行,對GUI進(jìn)行測試
人工探索式測試:投入人力資源對系統(tǒng)進(jìn)行人工測試
8、時(shí)間管理
會議的必要性,注意力點(diǎn)數(shù)(人在不同的精神狀態(tài)下,注意力的集中度會不同),番茄工作法的定義和應(yīng)用,避免進(jìn)入死胡同,遇到泥潭應(yīng)立即停止。
9、預(yù)估
講真,雖然這章說了很多公式,但真正實(shí)踐起來,經(jīng)驗(yàn)才是比較靠譜的判斷標(biāo)準(zhǔn)。
10、壓力管理
程序員沒有壓力是不存在的。面對壓力應(yīng)該堅(jiān)守紀(jì)律,不要驚慌失措,保持和團(tuán)隊(duì)的溝通,尋求幫助
11、協(xié)作
講述程序員和工作中的各個(gè)角色打交道。
12、項(xiàng)目和團(tuán)隊(duì)
這里有點(diǎn)項(xiàng)目管理方面的內(nèi)容了。
閱畢