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