對程序員來說,懶是一種值得稱頌的美德
其實(shí)有很多的博客文章都在講述為什么懶惰是一個(gè)優(yōu)秀程序員的品質(zhì)之一,但只有你成為一個(gè)程序員才會注意到這些博客。而本文想說想是關(guān)于如何檢視一個(gè)程序員的懶惰,看看它是如何成為好事或壞事的。
如果你知道一點(diǎn)關(guān)于編程的事,很快你就會發(fā)現(xiàn)軟件開發(fā)里到處充滿了嘗試和錯誤。你修改一下,刷新瀏覽器,看看是否有效。就像漂洗衣服,一遍又一遍。有時(shí)甚至是為了一個(gè)極其簡單的小問題(如果你為IE開發(fā)web應(yīng)用,你就會知道)。
軟件程序員的工作中充滿了大量重復(fù)性的工作,懶性正為此而來。一個(gè)很快就厭煩了重復(fù)工作的程序員會***時(shí)間開發(fā)出工具來自動執(zhí)行這些工作。他們會想辦法在每次代碼修改時(shí)讓瀏覽器自動刷新。他們會做出工具來清除數(shù)據(jù)庫、自動去執(zhí)行文件導(dǎo)入的測試。如果工作是有規(guī)律可循,他們就會發(fā)現(xiàn),就能讓它們自動來執(zhí)行。
很多時(shí)候,我看到一些客戶,他們實(shí)際需要軟件來替他們做,但他們不知道這是一個(gè)問題,只是長期的手工來做那些重復(fù)性的工作。既無效率,又浪費(fèi)時(shí)間和金錢。
如果他們找到一個(gè)程序員,向他們介紹自己的工作流程,幸運(yùn)的話,程序員能在幾個(gè)小時(shí)里幫他們做出便利工具。如果復(fù)雜些,可能不是那么簡單,但從長期角度看,總比一直使用Excel處理業(yè)務(wù)要強(qiáng)很多。
Ruby on Rails通常是很多程序員用來開發(fā)這種業(yè)務(wù)處理軟件的***框架。它能讓程序員在幾個(gè)小時(shí)里開發(fā)出一套簡單好用的自動業(yè)務(wù)處理工具。這些工具能讓你對業(yè)務(wù)看的更清楚。通過這些工具提升的業(yè)務(wù)流程不僅讓你更方面,也會讓你的客戶受益,很有可能讓你掙更多的錢。
我時(shí)常會說,程序員越懶越好。這并不是說在開發(fā)中圖省事是正確的方法。一個(gè)懶程序員會知道,走捷徑從長期角度看是有害的。事先計(jì)劃好才能后顧無憂。懶程序員都是本壘打,會以長遠(yuǎn)視角出發(fā)。但同時(shí)也知道走捷徑。如果一個(gè)想法還不成熟,只是基于假設(shè),懶程序員會說:我們先做一些,測試一下,看看反饋,然后基于此做出下一步?jīng)Q定?;诩僭O(shè)的軟件,你做的越多,返工時(shí)投入的人力物力以及金錢就越多。這是任何人都不希望的。
如果將來需要修改,懶程序員很容易實(shí)現(xiàn),因?yàn)橐呀?jīng)有預(yù)案了。過度堆砌技術(shù)的程序員反而是把自己困在了一個(gè)盒子里,一個(gè)一開始就有成百上千功能的盒子里。也許他自己認(rèn)為很宏偉。但事實(shí)會證明他設(shè)計(jì)的這個(gè)大盒子很難根據(jù)業(yè)務(wù)的變化來改造。
所以,現(xiàn)在當(dāng)你聽說懶惰是一種美德時(shí),你也明白了其中的道理。懶不再是一個(gè)貶義詞。它是一種贊美。
英文原文:The Laziest Programmer In The Room
譯文鏈接:http://www.aqee.net/the-laziest-programmer-in-the-room/