來(lái)自寫(xiě)于1971年的《程序開(kāi)發(fā)心理學(xué)(The Psychology of Computer Programming)》,下面就是這無(wú)我編程十條誡律:
理解和接受自己會(huì)犯錯(cuò)誤。關(guān)鍵是要盡早發(fā)現(xiàn),在錯(cuò)誤進(jìn)入到最終產(chǎn)品前發(fā)現(xiàn)它們。幸運(yùn)的是,除了我們少數(shù)幾個(gè)在噴氣推進(jìn)實(shí)驗(yàn)所開(kāi)發(fā)火箭導(dǎo)航系統(tǒng)的人外,在軟件行業(yè)中犯錯(cuò)誤通常不會(huì)導(dǎo)致災(zāi)難性事故。我們可以,也應(yīng)該從錯(cuò)誤中吸取教訓(xùn),微笑,并繼續(xù)前進(jìn)。
你不是你的代碼。記住代碼審查的全部目的就是去發(fā)現(xiàn)問(wèn)題,相信問(wèn)題會(huì)被我們發(fā)現(xiàn)。當(dāng)有問(wèn)題疏漏時(shí)不要自責(zé)。
不管你對(duì)“空手道”有多了解,一定會(huì)有人知道的更多。如果你去問(wèn),這樣的人可以告訴你一些新的招數(shù)。從別人那里尋找和接受新的知識(shí),特別是那些你認(rèn)為不需要的知識(shí)。
不要在沒(méi)有討論的情況下重寫(xiě)代碼。在“調(diào)整代碼”和“重寫(xiě)代碼”之間有一條很細(xì)致的界限,你應(yīng)該在代碼審查的制度下做風(fēng)格上的調(diào)整,不要獨(dú)斷專(zhuān)行。
對(duì)那些不如你的人要尊敬,禮遇,有耐心。經(jīng)常跟開(kāi)發(fā)人員打交道的非技術(shù)人士通常持有這樣的觀點(diǎn):程序員憑借一技之長(zhǎng)狂放不羈。不要讓你的發(fā)怒和缺乏耐性讓他們心中的這種形象加深。
這世界上唯一不變的就是變化。開(kāi)放思考,面帶微笑的接受它。把需求上、平臺(tái)或工具里的每個(gè)改變都視作一種新的挑戰(zhàn),而不是把它們當(dāng)作大麻煩來(lái)抵制。
真正的權(quán)威來(lái)自知識(shí),而不是職位。知識(shí)造就權(quán)威,權(quán)威帶來(lái)尊敬——所以,如果你想在一個(gè)無(wú)私的環(huán)境中獲得尊敬,去培養(yǎng)自己的知識(shí)吧。
為信仰奮斗,但我文雅的接受失敗。要理解,有時(shí)候你的想法會(huì)被拒絕。即使你是對(duì)的,你也不要報(bào)復(fù)或說(shuō)“I told you so.”千萬(wàn)不要讓你心愛(ài)的被拋棄的想法變成殉道者或抱怨素材。
不要成為“角落里的程序員?!辈灰蔀殡[藏在黑暗辦公室里、只因?yàn)榭诳什懦霈F(xiàn)的人。藏在角落的里程序員短視、與世隔絕、不受控制。這樣的人在公開(kāi)的、合作的工作環(huán)境中發(fā)不出聲音。參與到交流中,成為你的辦公室團(tuán)體中的一員。
批評(píng)代碼而不是人——對(duì)編碼人友善,但不要對(duì)代碼友善。盡可能的讓你的批評(píng)具有積極性,以改進(jìn)代碼為目標(biāo)。批評(píng)要聯(lián)系本地標(biāo)準(zhǔn),編程規(guī)格文檔和提高后的性能等。
這個(gè)十條誡律至今伴隨這我。它讓我成為了一名更好的程序員。