高效的程式設計師是聰明和懶惰的

2015-02-03    分類:程式設計師人生、首頁精華2人評論發表於2015-02-03
我之所以要用聰明和懶惰來形容高效的程式設計師,原因有以下幾點:

  • 聰明是因為能找出問題的正解
  • 懶惰是因為不願寫多餘的程式碼(即不會長時間地坐在電腦前)



好的軟體開發過程應該是懶惰的軟體開發,亦稱耐心開發,原因是開發人員在寫程式碼之前會先將時間花在透徹地考慮各種解決方案上。

這是懶惰開發的主旨,即在不瞭解之前就不會開始寫程式碼。這個負責任的態度減少了他們所需要寫的程式碼量。

主要需要做到以下幾點:

  • 真正瞭解需求、獲得產品管理,關鍵是要明確什麼才是實際要求
  • 確保與團隊中其他開發人員之間的順利對接


這些過程都是需要時間的。然而,不少開發人員往往一拿到問題就開始急於敲程式碼,然後再花費大把大把的時間修改程式碼。

事實上,只有5%都不到的時間才真正是有生產力的。所以下回你要是看到某個開發人員將他100%的時間都緊盯著螢幕,不與其他人做任何互動,那麼只能說你找來的程式設計師可不太好啊。

這是一個不好的跡象——如果開發人員總是寫程式碼的話

高效的開發人員會時不時地檢查對需求的理解,以確保與程式碼相一致。富有生產力的開發人員會經常與產品經理/業務分析員分析交流,也時常可以看到他們與同事和架構師出雙入對。當然資深的開發人員也會因其自身豐富的經驗而變得非常有效率。事實上,最好的開發人員與其他人相比:

  • 編寫初始編碼所用的時間約為1比20
  • 除錯時間的比例超過1比25
  • 程式執行速度大概是1比10
  • 程式大小為1比5


然而,總的說來,隨著時間的推移,開發人員的生產效率並沒有隨之而增長,即從成千上萬的開發人員那兒可以證實,豐富的經驗和生產力是無關的。事實上,我們的生產效率在過去50年間已經提高了8倍,所以,從總體上說,經驗與生產力水平是不相干的。

為什麼在程式碼上的懶惰會變得如此重要?

很多人很勤快,還沒有好好理解需求就開始動手寫程式碼。並且,迅速編寫的程式碼往往不能很好的適應其他人的程式碼。而這一問題往往只有在整合程式碼的時候才能被發現,但是已經晚了。優秀的開發人員很有耐心,他知道快速編碼的風險。

開發人員在心理上很重視他們的程式碼

差的開發人員往往不願意去改變自己寫得不好的程式碼。他們只會選擇增添更多的程式碼來彌補不足,而不會重寫不理想的程式碼。更糟的是,他們往往會去責怪其他人有不良的程式碼,而不願意自我檢討。在他們手中,最終只會導致一個嚴重缺陷和不穩定的系統。

當然,好的開發人員也會寫出差的程式碼,非最優的程式碼。所不同的是,他們願意認識自己的不足,並且對於有問題的部分:

  • 如果程式碼大致還是能正確執行的,那就重構程式碼
  • 否則,就重寫程式碼


當開發人員生產並維護了非最優程式碼,隨著時間的推移,那麼修改這些程式碼就會變得越來越難。這是因為你的同事需要在這些程式碼介面上寫程式碼,然後再建立繁雜的介面等等使用這些非最優程式碼。並且隨著程式碼庫的發展,會有更多更多的程式碼是依賴這些原始程式碼編寫出來的。故而,後面寫的程式碼再怎麼好也幾乎增加不了程式碼的穩定性,也不能對略有改動時bug增殖的情況產生影響。總之,開發過程會變得越來越慢、越來越難。

所以,如果有什麼疑問,那麼不妨偷個懶,晚點再寫程式碼,須知,磨刀不誤砍柴工啊!

英文原文:Productive Developers are Smart and Lazy

翻譯作者:碼農網 – 小峰
評論(1)

相關文章