送給當(dāng)代軟件開發(fā)者的咒語(yǔ):"Write Less Code"
在2012年的時(shí)候,筆者寫過(guò)這樣一篇文章:Write Less Code,在當(dāng)時(shí)還不錯(cuò),但是在那之后,我在PageCloud工作,兩年之后,再回過(guò)頭來(lái)看這篇文章,現(xiàn)在,帶著兩年的思考和經(jīng)驗(yàn)(希望如此),對(duì)這篇文章重新修改。
軟件開發(fā)的基本真理就是寫代碼。不過(guò)最大謬論之一就是為工作而寫代碼。當(dāng)我第一次開始寫代碼的時(shí)候就落入了這個(gè)陷阱。編寫代碼是一件很棒的事情。敲打鍵盤讓自己有成就 感,就想正在完成自己的夢(mèng)想。但是這些年,我學(xué)到的東西則更重要——作為軟件開發(fā)者盡可能寫更少的代碼。
別誤會(huì),我的理解,我們不應(yīng)該將自己置身于編寫代碼,或者敲打讓人難以理解的代碼情境中。事實(shí)上,花一點(diǎn)時(shí)間思考,我們會(huì)發(fā)現(xiàn),我們大多數(shù)的時(shí)間,都用來(lái)維護(hù)代碼。編寫更少的代碼,而不是為自己創(chuàng)造更多的工作看起來(lái)像是一個(gè)相當(dāng)好的主意。
為什么?
多看看,我的使用工具,使用的框架。我做的所有的事情,用的所有的工具,都是為了寫更少的代碼。使用工具為了減少代碼中的錯(cuò)誤,讓你走更少的彎路。
那么,為什么要寫更少的代碼呢?之前,我說(shuō)你的工作是寫更少的代碼,而今看來(lái),那時(shí)候,我是錯(cuò)的。實(shí)際上,你的工作是思考,是思考遇到的問(wèn)題,找到一個(gè)可靠的方法并把它用到軟件開發(fā)中去。開發(fā)軟件的一個(gè)副產(chǎn)物就是我們不得不寫代碼來(lái)解決問(wèn)題。
代碼意味著結(jié)束
代碼沒(méi)那么重要。我們喜歡說(shuō)服自己,我們正在開始執(zhí)行、并把我們的解決方案放入軟件中。這樣看來(lái),代碼既是一種方式也意味著結(jié)束。我們談?wù)撟约核?的編輯器,談?wù)撐覀冏钕矚g的編程語(yǔ)言,談?wù)撌褂铆h(huán)境。每個(gè)人都在談?wù)摚硎茏约旱墓ぷ?,沒(méi)什么不好意思的。重點(diǎn)是你是否專注。代碼很棒,但他也可能是敵 人。及時(shí)我們花很多時(shí)間去寫,他也可能很脆弱,不夠清楚,甚至不夠穩(wěn)定。
這就是為什么我要說(shuō)的"Write less code"。無(wú)論何時(shí),我覺得這個(gè)項(xiàng)目或者代碼塊變得比想象中大、復(fù)雜,我就會(huì)想到"寫更少的代碼"。無(wú)論何時(shí),我寫了多少代碼,甚至寫了一頁(yè)又一頁(yè),我重構(gòu)他,我重寫他,同時(shí)思考"寫更少的代碼"。
有時(shí)候,如果不能寫出簡(jiǎn)潔、干凈的代碼,對(duì)自己來(lái)說(shuō),寫一堆代碼就是很痛苦的事情。寫更少的代碼就是寫干凈清晰的代碼。當(dāng)你"節(jié)約代碼"的時(shí)候,就意味著,你在寫更少的代碼,意味著你寫代碼的目的就是讓他變得簡(jiǎn)潔。
那么,我從中學(xué)到了什么?我認(rèn)為寫完代碼就意味著結(jié)束,在軟件開發(fā)中解決各式各樣的問(wèn)題就不可避免。所以多思考,重構(gòu)、刪除以前的老代碼,并且使用更少代碼編寫新代碼。
不要猶豫,從今天開始,就這樣做。
英文原文:medium.com
文章轉(zhuǎn)載自:慧都控件網(wǎng) 及譯文鏈接:送給當(dāng)代軟件開發(fā)者的咒語(yǔ):"Write Less Code"