程序員的九大重構(gòu)天梯

“java程序員”
開發(fā)一個項目系統(tǒng)和后續(xù)維護一個系統(tǒng),這兩種需求對于程序員的能力要求是完全不同的。

清徐網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),清徐網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為清徐上1000家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的清徐做網(wǎng)站的公司定做!

全新開發(fā)項目對程序員的基礎(chǔ)要求是符合需求、符合技術(shù)規(guī)范。

而維護一個長期的系統(tǒng),內(nèi)部的代碼往往是不完整,紛繁雜亂的,很多時候程序員往往需要從這些代碼中理解程序的結(jié)構(gòu),理解其邏輯關(guān)系,然后才可以修改更新。

因此我們可以按照程序員重構(gòu)代碼的能力劃分成九個層次。本文就講講代碼重構(gòu)九重天。

一、看不懂代碼,按照需求重寫

如果需求和程序?qū)崿F(xiàn)不一致的話,那么就只符合需求了。

這雖然是重構(gòu)最低的一級,但是放在程序員開發(fā)中,也是中等的程序員了,因為很多程序員按照需求文檔都不能正確實現(xiàn)需求。

二、能對照需求理解代碼,按照理解后的需求重寫

和第一層類似,不過在對照需求理解代碼的同時,能挖掘出很多需求文檔中沒有寫,但是代碼中已經(jīng)實現(xiàn)了的需求。

這時候有了一定的領(lǐng)悟理解能力了。

三、能對照需求梳理代碼,按照梳理后的需求重寫

理解和梳理不同,理解是看到一塊代碼理解一塊代碼,而梳理則是在理解的基礎(chǔ)上,還可以抽象出已經(jīng)實現(xiàn)的代碼的結(jié)構(gòu),盡管這種抽象是體現(xiàn)在代碼中,但是并沒有明確的寫出來,而且散亂在很多地方,需要程序員匯集整理。

這就是在領(lǐng)悟了各種代碼之后,能自己把獨立的抽象概念匯聚融合在一起了。

前面三個層次,都是重寫,也就是需要重新完成原有的工作,需要投入相當(dāng)一樣的工作量。

四、當(dāng)原有代碼有一定質(zhì)量的時候,能看懂代碼結(jié)構(gòu),可以遵照原有代碼結(jié)構(gòu)進行小范圍增加

這里面的要求是原有代碼有一定質(zhì)量,如果原有代碼質(zhì)量差,那么還是重寫吧。

第四層還有一個意義,也就是這個級別的程序員,工作可以不斷的累積,同時不會降低代碼質(zhì)量。

五、當(dāng)原有代碼有一定質(zhì)量的時候,能看懂代碼結(jié)構(gòu)和所涉及的代碼,可以遵照原有代碼結(jié)構(gòu)進行小范圍修改

增加和修改不同,增加是追加邏輯,不影響原有邏輯,而修改可能影響原有邏輯,特別是原有邏輯之間存在隱含的依賴關(guān)系的時候。

修改的前提也是原有代碼有一定質(zhì)量,而且代碼的修改也是要一直不低于這個級別的程序員,這樣工作才能累計,而且不會降低代碼質(zhì)量。

六、當(dāng)原有代碼有一定質(zhì)量的時候,能看懂代碼結(jié)構(gòu),可以遵照原有代碼結(jié)構(gòu)修改代碼結(jié)構(gòu)

修改代碼結(jié)構(gòu)可能很多人覺得這種情況很少見,事實上最常見的就是升級框架,升級第三方庫等各種基礎(chǔ)代碼。

在實際項目中往往被忽視,甚至有的企業(yè)會安排新手做這件事,因為覺得沒有實現(xiàn)什么新需求,不創(chuàng)造價值。

對于成熟的框架、第三方庫來說,因為已經(jīng)有大量的升級實踐發(fā)現(xiàn)了各種缺陷,不過對于不成熟的框架和第三方庫來說,特別是企業(yè)內(nèi)部專屬的框架和庫,升級后不兼容甚至原有邏輯混亂的情況就很常見了。這時候不可能全部項目重寫,就需要有這個能力的程序員在升級結(jié)構(gòu)的同時保證程序質(zhì)量。

和前面兩層同樣,類似的工作需要有相同能力的程序員才能保證代碼質(zhì)量,有些公司經(jīng)常是讓新手重構(gòu),然后搞砸了讓熟手打補丁。

七、當(dāng)原有結(jié)構(gòu)清晰健壯的時候,能擴展原有結(jié)構(gòu)

這種情況主要出現(xiàn)在集成的時候,幾個程序的結(jié)構(gòu)都清晰健壯,但也需要有人把兩者集成在一起,當(dāng)然,到了這個層次的程序員的重構(gòu)工作就不再是具體需求了,而是擴展結(jié)構(gòu)后讓其他程序員按照擴展后的結(jié)構(gòu)繼續(xù)開發(fā)了。

八、當(dāng)原有結(jié)構(gòu)清晰健壯的時候,能調(diào)整原有結(jié)構(gòu)

這種情況主要出現(xiàn)在基礎(chǔ)架構(gòu)調(diào)整,同時不想重寫業(yè)務(wù)代碼,就需要在中間的結(jié)構(gòu)層面進行調(diào)整,例如單機部署變成集群部署,就需要調(diào)整結(jié)構(gòu),使得調(diào)整過程對業(yè)務(wù)代碼透明。當(dāng)然,這不意味著是最優(yōu)的,后續(xù)還需要對業(yè)務(wù)代碼按照新的結(jié)構(gòu)調(diào)優(yōu)。

九、當(dāng)原有結(jié)構(gòu)清晰健壯到時候,能重構(gòu)原有結(jié)構(gòu)

這種大神級的世界我是不懂的

但是

不能否認有這種超乎想像的程序員存在。

本文題目:程序員的九大重構(gòu)天梯
文章來源:http://muchs.cn/article40/ghicho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、企業(yè)建站、網(wǎng)站制作、域名注冊、網(wǎng)站策劃、微信公眾號

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司