代碼重構(gòu)的意義是什么?真實(shí)的好處讓每個(gè)程序員都搶著做

2021-01-30    分類: 網(wǎng)站建設(shè)

有位名人說(shuō)過(guò),程序都有兩面性,一是程序今天可以做什么,二是程序明天可以做什么。通常,我們只關(guān)心,準(zhǔn)確地說(shuō),是老板只關(guān)心,程序今天能做什么。雖然老板口頭上天天喊著關(guān)心程序員成長(zhǎng),程序質(zhì)量最重要,但實(shí)際上還是進(jìn)度最重要。

什么是重構(gòu)

什么是重構(gòu)呢?重構(gòu)是對(duì)軟件內(nèi)部的結(jié)構(gòu)性調(diào)整,在保持原有的功能的前提下,提高程序的可理解性,降低修改的成本,提升程序的運(yùn)行性能。



讓代碼更容易理解

我們的程序,無(wú)論多么優(yōu)秀的設(shè)計(jì),往往隨著我們不停的維護(hù),代碼總會(huì)變爛,特別是代碼往往是不同人的維護(hù),每個(gè)人的代碼習(xí)慣,對(duì)業(yè)務(wù)的認(rèn)識(shí),對(duì)系統(tǒng)的理解都不一樣,最重要的是,開(kāi)發(fā)時(shí)間太趕了,導(dǎo)致代碼越來(lái)越難以理解。

代碼越多,就越來(lái)越難以理解,一個(gè)邏輯,可能散落在系統(tǒng)各個(gè)地方,我們常常把線上代碼必成盜墓機(jī)關(guān),稍有不慎,就會(huì)帶來(lái)Bug。這是次要,為什么我們總在加班,因?yàn)楹芎?jiǎn)單的功能,本來(lái)預(yù)估2個(gè)小時(shí),后來(lái)寫(xiě)著寫(xiě)著才發(fā)現(xiàn)還要花18個(gè)小時(shí)來(lái)兼容其他邏輯問(wèn)題。

發(fā)現(xiàn)原有的Bug

偉大的程序員,不是天生的。每一個(gè)程序員都會(huì)犯錯(cuò)誤,也會(huì)留下埋得很深的Bug。重構(gòu),需要我們?nèi)ド钊胧崂順I(yè)務(wù),深入了解每一行代碼,對(duì)每一個(gè)代碼中的“機(jī)關(guān)”做出假設(shè),最后總能發(fā)現(xiàn)意想不到的Bug。



提高程序的運(yùn)行速度與編譯速度

我們的代碼中,常常有一些爛代碼,最常見(jiàn)的情況莫過(guò)于幾個(gè)一些重復(fù)的函數(shù),無(wú)關(guān)緊要的類,無(wú)關(guān)緊要的邏輯。舉個(gè)簡(jiǎn)單的例子,我們寫(xiě)一個(gè)電商計(jì)算運(yùn)費(fèi)系統(tǒng),去數(shù)據(jù)庫(kù)里面查詢了用戶的地址,快遞公司的信息,用戶有沒(méi)有相關(guān)卡券,最后卻發(fā)現(xiàn)用戶買(mǎi)的商品是虛擬產(chǎn)品,壓根就不需要去計(jì)算運(yùn)費(fèi)!

架構(gòu)師都是從重構(gòu)開(kāi)始的

這個(gè)其實(shí)才是最重要的,每一個(gè)架構(gòu)師,都是從重構(gòu)系統(tǒng)開(kāi)始的!如果一個(gè)架構(gòu)師沒(méi)有重構(gòu)過(guò)一個(gè)系統(tǒng),那只能說(shuō)他夸夸其談,紙上談兵。重構(gòu),對(duì)一個(gè)程序員的成長(zhǎng)有多大?

  • 對(duì)業(yè)務(wù)的代碼非常熟悉,很快就能成長(zhǎng)為骨干
  • 重構(gòu)的時(shí)候適合使用新技術(shù),新框架,更有利于你的成長(zhǎng)。
  • 重構(gòu),又稱高速上換輪胎,如何保證系統(tǒng)的穩(wěn)定,是考驗(yàn)?zāi)阏嬲龑?shí)力的時(shí)候
  • 重構(gòu)的結(jié)果,必定會(huì)讓你的上級(jí)對(duì)你刮目相看。
  • 即便是重構(gòu)出問(wèn)題,損失的更多的還是老板,對(duì)于程序員,最多也只是丟掉飯碗。當(dāng)然,出于職業(yè)道德,我們當(dāng)然不能故意搞出問(wèn)題。


何時(shí)開(kāi)始重構(gòu),需要注意什么

重構(gòu),一般都在比較大的需求變更的時(shí)候,當(dāng)然,我們要選擇在時(shí)間比較富余,公司有其他資源支持的情況下。重構(gòu)的時(shí)候,我們當(dāng)然要先深入理解業(yè)務(wù),知會(huì)相應(yīng)的測(cè)試,自己編寫(xiě)測(cè)試用例。當(dāng)然,我們能引入自動(dòng)化測(cè)試那就更好了。如果經(jīng)理支持,那是最好的情況,當(dāng)然我一般都是先斬后奏,把需求做好的基礎(chǔ)上,進(jìn)行小規(guī)模的重構(gòu),完成后才向老板進(jìn)行匯報(bào)。(這種還是要看老板而異,哈哈,只能說(shuō)我運(yùn)氣好,遇到的老板都支持我折騰)

總結(jié)

重構(gòu),很多人很討厭,大家都喜歡堆代碼,追求完成功能。但其實(shí),重構(gòu)是對(duì)一個(gè)程序員最好的成長(zhǎng)機(jī)會(huì),是讓你成為架構(gòu)師最好的墊腳石,希望大家能夠好好珍惜這個(gè)機(jī)會(huì),學(xué)好相關(guān)的重構(gòu)技巧,大膽嘗試!

新聞名稱:代碼重構(gòu)的意義是什么?真實(shí)的好處讓每個(gè)程序員都搶著做
轉(zhuǎn)載源于:http://www.muchs.cn/news17/98267.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、品牌網(wǎng)站建設(shè)網(wǎng)站維護(hù)、微信公眾號(hào)App設(shè)計(jì)、服務(wù)器托管

廣告

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

小程序開(kāi)發(fā)