寫代碼的最高境界:能不寫則不寫、能少些則少些
在 2012 年的時候,筆者寫過這樣一篇文章:Write Less Code,在當時還不錯,但是在那之后,我在 PageCloud 工作,兩年之后,再回過頭來看這篇文章,現在,帶著兩年的思考和經驗(希望如此),對這篇文章重新修改。
軟件開發(fā)的基本真理就是寫代碼。不過***謬論之一就是為工作而寫代碼。當我***次開始寫代碼的時候就落入了這個陷阱。編寫代碼是一件很棒的事情。敲打鍵盤讓自己有成就感,就想正在完成自己的夢想。但是這些年,我學到的東西則更重要——作為軟件開發(fā)者盡可能寫更少的代碼。
別誤會,我的理解,我們不應該將自己置身于編寫代碼,或者敲打讓人難以理解的代碼情境中。事實上,花一點時間思考,我們會發(fā)現,我們大多數的時間,都用來維護代碼。編寫更少的代碼,而不是為自己創(chuàng)造更多的工作看起來像是一個相當好的主意。
為什么?
多看看,我的使用工具,使用的框架。我做的所有的事情,用的所有的工具,都是為了寫更少的代碼。使用工具為了減少代碼中的錯誤,讓你走更少的彎路。
那么,為什么要寫更少的代碼呢?之前,我說你的工作是寫更少的代碼,而今看來,那時候,我是錯的。實際上,你的工作是思考,是思考遇到的問題,找到一個可靠的方法并把它用到軟件開發(fā)中去。開發(fā)軟件的一個副產物就是我們不得不寫代碼來解決問題。
代碼意味著結束
代碼沒那么重要。我們喜歡說服自己,我們正在開始執(zhí)行、并把我們的解決方案放入軟件中。這樣看來,代碼既是一種方式也意味著結束。我們談論自己所用的編輯器,談論我們最喜歡的編程語言,談論使用環(huán)境。每個人都在談論,享受自己的工作,沒什么不好意思的。重點是你是否專注。代碼很棒,但他也可能是敵人。及時我們花很多時間去寫,他也可能很脆弱,不夠清楚,甚至不夠穩(wěn)定。
這就是為什么我要說的"Write less code"。無論何時,我覺得這個項目或者代碼塊變得比想象中大、復雜,我就會想到"寫更少的代碼"。無論何時,我寫了多少代碼,甚至寫了一頁又一頁,我重構他,我重寫他,同時思考"寫更少的代碼"。
有時候,如果不能寫出簡潔、干凈的代碼,對自己來說,寫一堆代碼就是很痛苦的事情。寫更少的代碼就是寫干凈清晰的代碼。當你"節(jié)約代碼"的時候,就意味著,你在寫更少的代碼,意味著你寫代碼的目的就是讓他變得簡潔。
那么,我從中學到了什么?我認為寫完代碼就意味著結束,在軟件開發(fā)中解決各式各樣的問題就不可避免。所以多思考,重構、刪除以前的老代碼,并且使用更少代碼編寫新代碼。
不要猶豫,從今天開始,就這樣做。
英文原文:Write Less Code——A mantra for the modern software developer.
原文鏈接:http://www.evget.com/article/2014/12/19/21965.html