高效的程序員是聰明和懶惰的

jopen 9年前發布 | 5K 次閱讀 程序員

我之所以要用聰明和懶惰來形容高效的程序員,原因有以下幾點:

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

高效的程序員是聰明和懶惰的

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

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

主要需要做到以下幾點:

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

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

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

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

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

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

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

為什么在代碼上的懶惰會變得如此重要?

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

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

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

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

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

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

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

譯文鏈接:http://www.codeceo.com/article/productive-programmer-lazy-smart.html
英文原文:Productive Developers are Smart and Lazy
翻譯作者:碼農網 – 小峰

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!