軟件開發(fā)的一個(gè)最基本的事實(shí)是寫代碼,但是最大的誤區(qū)之一就是把寫代碼當(dāng)做工作。當(dāng)我作為一個(gè)程序員第一次參加工作的時(shí)候,就犯了這樣的錯(cuò)誤。老實(shí)說,寫代碼真的是一件特有意思的事,它的強(qiáng)大功能,它的多種作用等等都讓我有一種揮斥方遒的豪情壯志,倍有滿足感。但是經(jīng)過這么多年在這個(gè)行業(yè)沉浸,我才終于發(fā)現(xiàn)了這個(gè)真理:軟件開發(fā)人員應(yīng)該盡可能地少寫代碼。 不過,可別誤解我的意思,我可不是說我們應(yīng)該死命地壓縮代碼,像“代碼高爾夫”競賽那樣,步步為營,搞得最后自己寫出來的代碼自己都不理解了。我的意思是,我們現(xiàn)在大多數(shù)的時(shí)間都用在了寫大段大段的可怕代碼上,少寫代碼其實(shí)就意味著給自己減輕工作負(fù)擔(dān)。怎么樣,聽上去是不是像夏娃的蛇果一樣誘人? 原因環(huán)顧四周,看看你的工具,看看你的框架,正是依靠這些我們才能搞定我們手頭的工作。所有你使用的工具,所有你做的嘗試,這所有的一切歸根究底都是朝著“少寫代碼”的目標(biāo)而前進(jìn)的。工具可以讓我們少犯錯(cuò),掃掉會(huì)導(dǎo)致麻煩的垃圾。 那么,為什么要少寫代碼呢?首先我得承認(rèn),我前面所說的軟件開發(fā)人員的任務(wù)就是少寫代碼這一點(diǎn)有點(diǎn)言過其實(shí)了。事實(shí)是,軟件開發(fā)的任務(wù)應(yīng)該是思考,思考手頭的問題,設(shè)計(jì)出一個(gè)完美的解決方案,然后再把這個(gè)方案轉(zhuǎn)變成可供用戶使用的軟件。而寫代碼僅僅是在這一系列步驟最后一步——寫成軟件——這一過程中產(chǎn)生的副產(chǎn)品。 代碼就是一個(gè)副產(chǎn)品其實(shí)代碼沒有我們想象的那么重要。為什么呢?因?yàn)楫?dāng)我們將方案轉(zhuǎn)化成軟件時(shí),寫代碼僅僅是一個(gè)手段而已。在日常生活中,我們會(huì)說說編輯器,談?wù)劸幊陶Z言,聊聊工作環(huán)境。我會(huì)這樣做,他會(huì)這樣做,大家都會(huì)這樣做。享受我們從事的工作所帶來的成果并不可恥。不過關(guān)鍵要保持專注。代碼的確是個(gè)超級(jí)棒的工具,但是它從有的角度來看也是個(gè)麻煩:我們得花大量的時(shí)間去寫,一不留神就容易出現(xiàn)bug,光看代碼還不甚明了,并且不甚耐用,需要維護(hù)等等。 這就是文章題目我提出“少寫代碼”的原因。當(dāng)有時(shí)候我感覺事情越來越繁瑣,遠(yuǎn)遠(yuǎn)超過原先的預(yù)計(jì),或者最后的成果過于復(fù)雜,我會(huì)提醒自己“我需要少寫代碼”。不論何時(shí),要是我的代碼在上下文中放不下了,我會(huì)毫不猶豫地刪掉重構(gòu)。與此同時(shí),心中一直默念著這個(gè)原則:我要少寫代碼。 如果代碼亂糟糟的一坨堆在那里,而這時(shí)候如果我不得不瀏覽這些玩意兒的時(shí)候,我會(huì)異常痛苦。少寫代碼也意味著寫好的代碼清清楚楚,明明白白。如果我們大家都可以簡練地寫代碼,那我寫這篇文章的目的就達(dá)到了。 最后,本文想說明什么呢?我覺得,最最重要的是,我們的代碼只是一個(gè)副產(chǎn)品,是在軟件開發(fā)過程中產(chǎn)生的,而對此,我們難以避免,唯有選擇接受。不過,我們可以做的是,多多思考,好好重構(gòu),及時(shí)刪掉過時(shí)的代碼,代之精簡的新代碼。好吧,各位,改變從今天開始,加油! 譯文鏈接:http://news./why-programmer-write-less-code.html |
|