|
英文原文:Write Less Code
軟件開發(fā)的一個(gè)基本事實(shí)是:你需要寫代碼。但是一個(gè)最大的概念誤區(qū)是“寫代碼就是我的工作”。當(dāng)我開始我的軟件開發(fā)者生涯時(shí),我就陷入了這個(gè)誤區(qū)。代碼是強(qiáng)大的,它能讓你做許多事情,你覺得自己是有效率的,覺得自己完成了工作。然后,這些年來我學(xué)到了事情的真實(shí)的本質(zhì):一個(gè)程序員的工作的本質(zhì)是寫盡可能少的代碼。
不要誤解我的意思。我不是說我們應(yīng)該把壓縮代碼、以盡量少敲鍵盤為目的,從而讓寫出來的代碼根本無法理解。當(dāng)你想到,作為一個(gè)程序員,你的絕大部分時(shí)間將用來維護(hù)你寫的可怕的代碼這一事實(shí)的時(shí)候,你就會(huì)覺得“寫更少的代碼,不要讓自己寫的代碼給自己更來更大的工作量”這一原則是一個(gè)非常不錯(cuò)的主意。
為什么?
想想你的工作。想想你使用的工具,看看你喜歡用來開發(fā)的框架。你做的每件事,你使用的每件工具,都是為了讓你寫更少的代碼。你的工具能讓你犯更少的錯(cuò)誤,并且把那些可能會(huì)給你帶來麻煩的底層細(xì)節(jié)都抽象出來。
那么,為什么你需要寫更少的代碼?前文中我說:你的工作就是寫更少的代碼。其實(shí)我沒有說出真相。你的真正的工作是思考。你的工作是思考要解決的問題,設(shè)計(jì)一個(gè)優(yōu)雅的解決方案,然后把這個(gè)方案變成軟件。而開發(fā)軟體的一個(gè)副產(chǎn)品是,你需要通過寫代碼來解決問題。
代碼是副產(chǎn)品
代碼并沒有那樣重要。之所以我們喜歡讓自己那樣認(rèn)為,是因?yàn)楫?dāng)我們開始干活、把解決方案變成代碼時(shí),寫代碼看來就好像既是手段,又是目的。我們談?wù)撟约菏褂玫木庉嬈鳎務(wù)撐覀兪褂玫木幊陶Z言和我們的編程環(huán)境。我這樣做過,你這樣做過,我們都這樣做過。誠(chéng)然,享受你的工作帶給你的快樂是無可厚非的,但是你要意識(shí)到:代碼是很棒的,但它同樣是你的敵人:寫代碼花掉你大量的時(shí)間,它可能有各種bug,它可能很難理解,或者不夠魯棒。
這就是我為什么堅(jiān)持“寫更少的代碼”的原因。當(dāng)我覺得一些東西變得超出需要的煩瑣、或者比它原本的樣子更復(fù)雜時(shí),我告訴自己“寫更少的代碼”。當(dāng)我寫了太多的代碼以至于很難在上下文中理解它們時(shí),我就重構(gòu),清理,堅(jiān)持想著“寫更少的代碼”。
雖然讓我很痛苦,但不得不說:有時(shí)寫大量的代碼是無法避免的。但是,當(dāng)你不能保持簡(jiǎn)潔(concise)時(shí),保持清晰(clear)。“寫更少的代碼”是就寫干凈(clean)的代碼,寫清晰(clear)的代碼。當(dāng)你寫的代碼足夠簡(jiǎn)練時(shí),你的程序的目的就變得更加清楚。
那么,這一課的經(jīng)驗(yàn)是什么呢?我認(rèn)為最重要的是“代碼只是一個(gè)副產(chǎn)品”,它是你在你工作的過程中不可避免要?jiǎng)?chuàng)造出來的東西。因此,多思考,多重構(gòu),去除一些老舊的代碼,寫更少的新的代碼,給自己一個(gè)機(jī)會(huì),從今天開始。
it知識(shí)庫:寫更少的代碼,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。