StackOverflow 創(chuàng)始人關(guān)于如何高效編程的清單

轉(zhuǎn)自:https://mp.weixin.qq.com/s?__biz=MzIwMzg1ODcwMw==&mid=2247486219&idx=1&sn=9db802a5cb5b2dd3fa8058f6f6e6cfaa&source=41#wechat_redirect

這是 StackOverflow 聯(lián)合創(chuàng)始人 Jeff Atwood 注釋的十戒。程序員普遍有很強(qiáng)的自尊心,都應(yīng)該看看本文,打印下來時刻提醒自己。
“無我編程”發(fā)生在開發(fā)階段,表現(xiàn)為技術(shù)團(tuán)隊經(jīng)常通過同級評審的方式來發(fā)現(xiàn)軟件中的缺陷。目的是讓所有人(包括作者)都參與尋找缺陷,而不是證明軟件產(chǎn)品里沒有缺陷。人們會交換各自手上的代碼,相互進(jìn)行評審,并且大家都有這樣的共識:代碼的原始作者會犯錯誤,而作為評審者,他們會找出這些錯誤。最后的結(jié)果是,每個人都從自己的錯誤以及別人的錯誤里有所長進(jìn)。這就是“無我編程”的由來。
無我編程的十條戒律,最早出現(xiàn)在 Gerald Weinberg 于 1971 年出版的經(jīng)典著作《程序開發(fā)心理學(xué)》里。Stack Overflow 網(wǎng)站的聯(lián)合創(chuàng)始人 Jeff Atwood 在博客上再次列出了這十條戒律。要知道,在這本著作出版的時候,Jeff 才一歲。雖然已經(jīng)過去了幾十年,但這些原則并沒有被時間侵蝕,仍然值得每一位程序員拜讀。
接受自己會犯錯的事實。關(guān)鍵是要在錯誤進(jìn)入到生產(chǎn)環(huán)境之前把它們找出來。所幸的是,除了小部分在噴氣推進(jìn)實驗室里開發(fā)火箭制導(dǎo)系統(tǒng)的程序員,大部分錯誤都不會造成致命的后果。所以,我們一定能夠而且也應(yīng)該要學(xué)會嫣然一笑,然后繼續(xù)。
不要使用代碼來針對個人。要記住,代碼評審的目的是為了找出問題,而且總歸會找到問題。如果真的找到了問題,請不要把它作為針對個人的借口。
不管你知道多少“秘籍”,總有人比你知道得更多。如果你開口,他們就會教你更多的東西。在你認(rèn)為沒有必要的時候,學(xué)會接受他人的建議。
不要不經(jīng)討論地重寫代碼。“修復(fù)代碼”與“重寫代碼”是有明顯的區(qū)別的。了解這些區(qū)別,并在代碼評審的框架之內(nèi)進(jìn)行程式化的變更,而不是單獨(dú)作戰(zhàn)。
尊重比你懂得少的人,并對他們抱以耐心。與技術(shù)人員打交道的非技術(shù)人員認(rèn)為技術(shù)人員要么是妄自尊大的討厭鬼,要么是愛撂挑子的倔驢。所以,我們不要用我們的憤怒和不耐煩去加深他們對我們的這種印象。
這個世界唯一不變的就是變化。敞開胸懷,面帶微笑地去擁抱變化。把每一個需求變更、平臺變更或工具變更都看成是一個新的挑戰(zhàn),而不是令人厭惡的麻煩。
真正的權(quán)威來自于知識,而不是職位。知識造就了權(quán)威,而權(quán)威會迎來尊重。如果你想要在一個無我的環(huán)境里得到尊重,那么充實你的知識吧。
堅定你的立場,優(yōu)雅地接受挑戰(zhàn)。要知道,你的想法有時候會遭到反對。你可以證明自己是對的,但不要試圖報復(fù),不要總是叫嚷著“我早就說過”,不要被否定的想法看成是一個犧牲品或者某種戰(zhàn)斗口號。
不要成為“小黑屋里的人”。不要躲在小黑屋里寫代碼,就算偶爾露個面,也只是為了買一杯可樂。躲在小黑屋里只會讓你與其他人失去聯(lián)系,淡出他們的視野,失去控制。在一個開放的協(xié)作環(huán)境里,你會找不到自己的位置。
批評代碼,而不是人。對人好一點(diǎn),而不是代碼。讓你所有的評審為代碼帶來積極的改進(jìn),把你的評審與局部標(biāo)準(zhǔn)、程序規(guī)范和更好的性能結(jié)合在一起。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容