編程就如同對(duì)世界的思考。
有很多重復(fù)的代碼,原因在于有很多重復(fù)的東西,開(kāi)始時(shí)沒(méi)想到抽象,總是做一步走一步,而不是先進(jìn)行總體規(guī)劃。
但總體規(guī)劃時(shí),也要想想好具體的執(zhí)行過(guò)程,當(dāng)然這個(gè)過(guò)程越詳細(xì)越好,但是畢竟精力和能力有限。
除了事前想好,對(duì)抽象和每一步奏的實(shí)現(xiàn)必須細(xì)節(jié)和分解清楚,界限分明才能互相正交。
出了錯(cuò)時(shí),要得到反饋,要從錯(cuò)誤最開(kāi)始的地方,一步步用最小的邏輯差別測(cè)試,要不就很難知道錯(cuò)在哪。
大體完工之后,或許還需要重構(gòu),重構(gòu)的代碼是補(bǔ)足了原先的缺點(diǎn)。當(dāng)然也可以用原型開(kāi)發(fā)或者曳光彈。
就像世界的分層,每一步計(jì)算的開(kāi)始都建立在上一層的結(jié)果上,對(duì)需要輸出為文件儲(chǔ)存中間結(jié)果的,一般是計(jì)算時(shí)間過(guò)長(zhǎng),或者可能需要中斷的,每一步正確無(wú)誤的可以設(shè)置為函數(shù),也就是說(shuō),至少每個(gè)重要輸入應(yīng)該有封裝,或者函數(shù)、類(lèi),或者文件。