前言
“無我編程”發生在開發階段,表現爲技術團隊經常通過同級評審的方式來發現軟件中的缺陷。目的是讓所有人(包括作者)都參與尋找缺陷,而不是證明軟件產品裏沒有缺陷。人們會交換各自手上的代碼,相互進行評審,並且大家都有這樣的共識:代碼的原始作者會犯錯誤,而作爲評審者,他們會找出這些錯誤。最後的結果是,每個人都從自己的錯誤以及別人的錯誤裏有所長進。這就是“無我編程”的由來。
無我編程的十條戒律,最早出現在 Gerald Weinberg 於 1971 年出版的經典著作《程序開發心理學》裏。Stack Overflow 網站的聯合創始人 Jeff Atwood 在博客上再次列出了這十條戒律。要知道,在這本著作出版的時候,Jeff 才一歲。雖然已經過去了幾十年,但這些原則並沒有被時間侵蝕,仍然值得每一位程序員拜讀。
這是 StackOverflow 聯合創始人 Jeff Atwood 註釋的十戒。程序員普遍有很強的自尊心,都應該看看本文,打印下來時刻提醒自己。
1. 接受自己會犯錯的事實
關鍵是要在錯誤進入到生產環境之前把它們找出來。所幸的是,除了小部分在噴氣推進實驗室裏開發火箭制導系統的程序員,大部分錯誤都不會造成致命的後果。所以,我們一定能夠而且也應該要學會嫣然一笑,然後繼續。
2. 不要使用代碼來針對個人
要記住,代碼評審的目的是爲了找出問題,而且總歸會找到問題。如果真的找到了問題,請不要把它作爲針對個人的藉口。
3. 不管你知道多少“祕籍”,總有人比你知道得更多
如果你開口,他們就會教你更多的東西。在你認爲沒有必要的時候,學會接受他人的建議。
4. 不要不經討論地重寫代碼
“修復代碼”與“重寫代碼”是有明顯的區別的。瞭解這些區別,並在代碼評審的框架之內進行程式化的變更,而不是單獨作戰。
5. 尊重比你懂得少的人,並對他們抱以耐心
與技術人員打交道的非技術人員認爲技術人員要麼是妄自尊大的討厭鬼,要麼是愛撂挑子的倔驢。所以,我們不要用我們的憤怒和不耐煩去加深他們對我們的這種印象。
公衆號逆鋒起筆專注分享Java、Python、前端、個人成長、職業發展乾貨,關注即送小編整理的精品編程視頻教程;每天下午 14:40 精彩推送,每個程序員值得關注的技術平臺。
6. 這個世界唯一不變的就是變化
敞開胸懷,面帶微笑地去擁抱變化。把每一個需求變更、平臺變更或工具變更都看成是一個新的挑戰,而不是令人厭惡的麻煩。
7. 真正的權威來自於知識,而不是職位
知識造就了權威,而權威會迎來尊重。如果你想要在一個無我的環境裏得到尊重,那麼充實你的知識吧。
8. 堅定你的立場,優雅地接受挑戰
要知道,你的想法有時候會遭到反對。你可以證明自己是對的,但不要試圖報復,不要總是叫嚷着“我早就說過”,不要被否定的想法看成是一個犧牲品或者某種戰鬥口號。
9. 不要成爲“小黑屋裏的人”
不要躲在小黑屋裏寫代碼,就算偶爾露個面,也只是爲了買一杯可樂。躲在小黑屋裏只會讓你與其他人失去聯繫,淡出他們的視野,失去控制。在一個開放的協作環境裏,你會找不到自己的位置。
10. 批評代碼,而不是人
對人好一點,而不是代碼。讓你所有的評審爲代碼帶來積極的改進,把你的評審與局部標準、程序規範和更好的性能結合在一起。