成為更優(yōu)秀開發(fā)者的10條途徑
我讀過好多“成為更優(yōu)秀開發(fā)者的方法”的文章,它們大部分似乎寫于10年前。但大部分仍然很明智,因此我在這篇文章中提取出我認為的最好的10條途徑。你可以隨時看看。
我們開始吧。
讀他人的代碼 —— Scott Hanselmann
讀他人的代碼,并從中學習。你會適時得到提升,因為你容易學到其他開發(fā)者是如何處理問題的。結(jié)對編程是提升自我的最好途徑。你從另外一個開發(fā)者那里讀代碼,實時地看到他/她的思維過程。反之亦然。你們可以挑戰(zhàn)彼此的觀點,共同進步。
找人讀你的代碼
在希臘神話里,那喀索斯(Narcissus)愛上他自己在水中的倒影。他無法抗拒不去看它。作為程序員,我們也有這樣的癥狀,在他之后有了個名字叫自戀(Narcissism)。
當你寫的代碼時,會很容易愛上你的“藝術(shù)品”。但是一段代碼只有當別人能讀懂你干的啥時才算接近完美。
通過經(jīng)常做代碼評審來讓他人讀你的代碼。你每次都能學到一兩件事情,尤其在你最后發(fā)現(xiàn)那個方法名意義不大時。
寫新的代碼時先修bug —— Joel Spolsky
我肯定你遇到過這種情況。你發(fā)現(xiàn)了一個bug,然后說:“我過會再修,我先把這些特性搞定。”或者你看到一個單元測試沒通過,但是你怕麻煩去找出沒通過的原因,所以你會把這條測試注釋掉抑或規(guī)避它。
來幫自己一個忙,養(yǎng)成早期修bug的習慣。bug只會隨著時間的推移堆積成山,給你招致更多的技術(shù)債務。
學習一門新技術(shù) —— Ryan Farley
你處于快節(jié)奏的世界。你的技術(shù)如同冰箱里的米飯一樣容易變質(zhì)。作為一個開發(fā)者,學習一門新技術(shù)有助于你立于刀鋒上,并受到歡迎。
大量“市民”正在學習如何寫代碼。這并不奇怪,因為你現(xiàn)在正擁有這個世界上最高薪的工作。做一個極客再酷不過了。
如果你是iOS開發(fā)者,學一些Web框架,或者反過來。這樣你知道如何寫一個服務器端的簡單例子。
保持簡單
在編程里你總是可以找到一個更加精巧的方法去實現(xiàn)一個任務。有的人得意于他們的代碼有多么令人驚嘆,那樣也還OK。但是保持簡單,你愿意嗎?這關(guān)系到前面提到的一點,讓別人讀你的代碼。
如果他們幾分鐘之內(nèi)無法理解,那么你是在給自己添亂(坦白地說還有那個必須維護那塊代碼的人)。
把你的實現(xiàn)發(fā)布到博客里 —— Bill Simser
在任何事情上要提高的最好途徑就是教(jiāo)授。如果你能使別人理解一個概念,那意味著你掌握它了,而不只是說說。
寫一篇博客,解釋一下你解決手邊的問題的過程。
順便說一下,這也是一份很好的簡歷。如果你要找工作,你可以給你潛在的雇主一系列你的博客,這樣你便有了優(yōu)勢。
貢獻開源項目 ——Eran Kampf
就是說要么自己做一個開源項目,要么為已有的項目做貢獻。這有助于你學會如何跟一群開發(fā)者協(xié)作。做很多獨立的項目會尤其有幫助。
從志趣相投的開發(fā)者那里學習可以加分,并且拜托,回報開源社區(qū)不是很酷的事情嗎?
修復問題,不要逃避問題 ——Danny Barbol
有一天我在和朋友談話。她是一個會計。她說當她還有0.69美分的賬合不上時會很沮喪。她花了數(shù)個小時做幾百萬美元的賬目,到最后僅僅是因為有人在某個地方把0.96美分換成了0.69美分,結(jié)果導致他們合不上賬。
作為開發(fā)者,我們經(jīng)常遇到同樣的事情。“一行”bug可以毀掉整個演示。有誘惑力的是不去真正的研究為什么它不去做它應該做的,而是把它繞過去。你說:“在這里添上a+5,然后就好了。”
不,找出原因,然后修正,否則繞過去的將會回過給你招來麻煩。
把代碼覆蓋率提高1%
有時候測試驅(qū)動開發(fā)顯得很枯燥。一定要在寫代碼前先寫好一行行測試代碼?是啊,我們要誠實地說確實不總那么好玩。你想要馬上開始好玩的部分。
我完全同意測試驅(qū)動開發(fā)思想,但是有時候你只是剛好有一大堆未測試的代碼擺在面前。也許你從他人那里繼承了一段糟糕的代碼,或者你犯了錯誤,然后忘了加單元測試。
不要難過,不要悔恨。不管你信不信,許多項目都有相同的問題,不論他們愿不愿意承不承認。你要做的就是把單元測試一個個地加上。
像作家/作者的難產(chǎn)一樣,盯著一張白紙看。多產(chǎn)的大牛說克服它的最好辦法是在那張白紙(或者如今的電腦屏幕☺)上開始動筆。
不要去想那24,000行未測試的代碼。把它們分解成塊,然后添加測試代碼。今天覆蓋400行,明天再覆蓋400行。也許永遠不會覆蓋到所有的24,000行,但是一個月后未測試的代碼就少了8000行。
你的基礎代碼變得更好了。
每小時離開辦公桌休息一次
這是本文章里最重要的一條。盡管和編程沒有直接關(guān)系。至少每個小時站起來舒展身子,你的身體會為此感謝你。
不要馬拉松式的編程,幾個小時地粘在椅子上直到最后。就算你有那種900美元的人體工程學的椅子也不要。(順便說一下,如果有第11條,那將會是“弄一把好椅子”)
你應該不想編程掙的所有的錢,沒來得及花,就去花在看病上了,是吧?
英文原文:appdesignvault,編譯:@奇風余谷