不斷進(jìn)化的需求
現(xiàn)如今,有一個(gè)普遍的認(rèn)識就是在你開始項(xiàng)目編程之前,你不可能寫下所有的需求,這些需求的確定需要一個(gè)不斷進(jìn)化的過程。在較短的開發(fā)周期中,我們不斷的完善程序,多次迭代從而滿足客戶提出的最新需求。這些都是基于進(jìn)化的原則,就像我們的生活,你是一步一步的向前從而做得更好。
不斷進(jìn)化的代碼
這就可以了嗎?現(xiàn)在的大多數(shù)程序員都已經(jīng)認(rèn)識到了需求是不斷進(jìn)化和完善的。但還不夠,他們依舊認(rèn)為項(xiàng)目使用的框架和架構(gòu)應(yīng)該在項(xiàng)目開始的時(shí)候就確定了,而且代碼一旦完成,就一切都OK了。
錯(cuò)。優(yōu)秀的代碼都至少要寫兩遍。遍寫代碼時(shí),你通常會很匆忙,不能很好的理解并實(shí)現(xiàn)需求。當(dāng)然,如果你看過一些設(shè)計(jì)模式,知道一些方法,你最終的代碼可能會寫得不錯(cuò),但它絕不是最優(yōu)秀的。少寫一些無謂的代碼,多一些思考。
在我們現(xiàn)在的項(xiàng)目中,幾乎所有重要的功能都要從零開始寫,并且重復(fù)修改很多次。這雖然很慢,但確定的是寫出的代碼越來越好了。當(dāng)你修改某一部分的代碼已經(jīng)三到四次,或又修補(bǔ)了這里的一個(gè)bug,你就開始有點(diǎn)想躲避這部分代碼,如果不再處理它你就會很高興。當(dāng)有了這樣的想法后,你肯定會刪了這些代碼。那就又要一切從頭開始了嗎?
再一次錯(cuò)。確實(shí),IDE里空了,代碼沒了,或許只有一些測試程序還在。但是,你已經(jīng)對你寫的這些代碼有了深刻的認(rèn)識,你知道它是什么樣的,你也知道它的問題出在哪。在此基礎(chǔ)上,你現(xiàn)在可以寫出更好,甚至是優(yōu)秀的代碼。當(dāng)然了,我們也可以保留之前的代碼,進(jìn)行一些重構(gòu)等等,但都不如從頭開始,更好的做出它。
這和生活中的道理依然是一樣的,要想把一件事做到極致,就要多次的重復(fù)和進(jìn)化。你的需求是這樣,你的代碼和架構(gòu)也要這樣。