學(xué)AI,好工作 就找北大青鳥
關(guān)注小青 聽(tīng)課做題,輕松學(xué)習(xí)
周一至周日
4000-9696-28

好代碼都是改出來(lái)的

來(lái)源:北大青鳥總部 2014年11月25日 17:01

摘要: 好代碼都是改出來(lái)的

近些年來(lái),越來(lái)越多的人開(kāi)始轉(zhuǎn)向敏捷開(kāi)發(fā),而且這些敏捷開(kāi)發(fā)的技術(shù)已不再新鮮,大多都是在 80 和 90 年代設(shè)計(jì)形成的。但是,最近幾年,程序員,特別是一些商業(yè)顧問(wèn),架構(gòu)師和客戶開(kāi)始喜歡上了敏捷開(kāi)發(fā)。


不斷進(jìn)化的需求

現(xiàn)如今,有一個(gè)普遍的認(rèn)識(shí)就是在你開(kāi)始項(xiàng)目編程之前,你不可能寫下所有的需求,這些需求的確定需要一個(gè)不斷進(jìn)化的過(guò)程。在較短的開(kāi)發(fā)周期中,我們不 斷的完善程序,多次迭代從而滿足客戶提出的最新需求。這些都是基于進(jìn)化的原則,就像我們的生活,你是一步一步的向前從而做得更好。


不斷進(jìn)化的代碼

這就可以了嗎?現(xiàn)在的大多數(shù)程序員都已經(jīng)認(rèn)識(shí)到了需求是不斷進(jìn)化和完善的。但還不夠,他們依舊認(rèn)為項(xiàng)目使用的框架和架構(gòu)應(yīng)該在項(xiàng)目開(kāi)始的時(shí)候就確定了,而且代碼一旦完成,就一切都 OK 了。

錯(cuò)。根據(jù)我的經(jīng)驗(yàn),所有優(yōu)秀的代碼都至少要寫兩遍。第一遍寫代碼時(shí),你通常會(huì)很匆忙,不能很好的理解并實(shí)現(xiàn)需求。當(dāng)然,如果你看過(guò)一些設(shè)計(jì)模式,知道一些方法,你最終的代碼可能會(huì)寫得不錯(cuò),但它絕不是最優(yōu)秀的。少寫一些無(wú)謂的代碼,多一些思考。


在我們現(xiàn)在的項(xiàng)目中,幾乎所有重要的功能都要從零開(kāi)始寫,并且重復(fù)修改很多次。這雖然很慢,但確定的是寫出的代碼越來(lái)越好了。當(dāng)你修改某一部分的代 碼已經(jīng)三到四次,或又修補(bǔ)了這里的一個(gè) bug,你就開(kāi)始有點(diǎn)想躲避這部分代碼,如果不再處理它你就會(huì)很高興。當(dāng)有了這樣的想法后,你肯定會(huì)刪了這些代碼。那就又要一切從頭開(kāi)始了嗎?


再一次錯(cuò)。確實(shí),IDE 里空了,代碼沒(méi)了,或許只有一些測(cè)試程序還在。但是,你已經(jīng)對(duì)你寫的這些代碼有了深刻的認(rèn)識(shí),你知道它是什么樣的,你也知道它的問(wèn)題出在哪。在此基礎(chǔ)上, 你現(xiàn)在可以寫出更好,甚至是優(yōu)秀的代碼。當(dāng)然了,我們也可以保留之前的代碼,進(jìn)行一些重構(gòu)等等,但都不如從頭開(kāi)始,更好的做出它。


這和生活中的道理依然是一樣的,要想把一件事做到極致,就要多次的重復(fù)和進(jìn)化。你的需求是這樣,你的代碼和架構(gòu)也要這樣。



寫兩遍代碼會(huì)花費(fèi)兩倍的時(shí)間?

當(dāng)我告訴人們所有的程序都要至少寫兩遍時(shí),他們擔(dān)心這樣會(huì)使完成整個(gè)項(xiàng)目的時(shí)間加倍。但事實(shí)不是這樣的,我來(lái)告訴你原因:

1. 第二次寫代碼,只會(huì)花費(fèi)你第一次寫代碼時(shí)的部分時(shí)間;

2. 重寫之后的代碼在質(zhì)量上會(huì)有顯著提高,而且維護(hù)性和可擴(kuò)展性都會(huì)更好,你的編程速度也會(huì)越來(lái)越快。


所以,堅(jiān)持重寫你的代碼,不斷優(yōu)化它吧!


熱門班型時(shí)間
人工智能就業(yè)班 即將爆滿
AI應(yīng)用線上班 即將爆滿
UI設(shè)計(jì)全能班 即將爆滿
數(shù)據(jù)分析綜合班 即將爆滿
軟件開(kāi)發(fā)全能班 爆滿開(kāi)班
網(wǎng)絡(luò)安全運(yùn)營(yíng)班 爆滿開(kāi)班
報(bào)名優(yōu)惠
免費(fèi)試聽(tīng)
課程資料
官方微信
返回頂部
培訓(xùn)課程 熱門話題 站內(nèi)鏈接