国产精品无码亚一区二区三区_亚洲中文字幕在线观看视频_香蕉视频国产在线2020_亚洲精品视频国产_欧美丰满熟妇XXXX性_放荡的护士HD高清电影在线观看_爆乳少妇在办公室在线观看_好男人看在线视频_中文字幕人妻三级中文无码视频_国产精品无码中文在线人妻嫩草,亚洲Av无码第一区二区三区,色欲综合视频天天天在线观看,成年人在线观看视频

恒遠科技官網(wǎng)_裝備制造行業(yè)工業(yè)智能化服務商 恒遠科技官網(wǎng)_裝備制造行業(yè)工業(yè)智能化服務商

恒遠科技官網(wǎng)_裝備制造行業(yè)工業(yè)智能化服務商
當提起代碼重構(gòu)時,我們究竟要做什么,?

06-03

2021
瀏覽量:2888

對于重構(gòu)一詞,很多人對它還停留在模糊的概念上,摸不清重構(gòu)是什么,,于是害怕影響項目進度或質(zhì)量就會讓人“談重構(gòu)色變”。下面我們從重構(gòu)中獲得什么,,重構(gòu)會不會造成嚴重的影響,,有沒有什么原則等角度即探討一下重構(gòu)的本質(zhì)。

1,、重構(gòu)的目的
“代碼結(jié)構(gòu)的流失有累積效應,,當人們只為短期目的而修改代碼時,他們經(jīng)常沒有完全理解架構(gòu)的整體設計,,于是代碼逐漸失去了自己的結(jié)構(gòu),,程序員越來越難通過閱讀源碼來理解原來的設計。”
重構(gòu)這件事想解決的就是上述問題,,把難懂的代碼變得容易理解,,使得后續(xù)開發(fā)的人(極有可能這個人是自己)很容易在原來的基礎上修改,重構(gòu)是純粹從經(jīng)濟利益角度出發(fā)的,,而不是一味追求整潔光亮的代碼,,不要掉入“整潔的代碼”“良好的工程實踐”之類道德理由的陷阱。選擇重構(gòu)的唯一理由就是能讓我們更快,,開發(fā)功能變快,、修復 bug 變快、交接代碼變快,。

2,、軟件開發(fā)如同行軍
我們用左腿右腿來描述軟件開發(fā)。在軟件開發(fā)時,,添加新功能先邁出了左腿,,但之后發(fā)現(xiàn)修改一部分設計會好添加很多,,花上十分鐘進行重構(gòu)邁出右腿,,再繼續(xù)添加功能…如此往復,我們的左右腿邁開了,,唰唰唰快速而穩(wěn)健地向前走,。
在這個過程中我們左腿要邁,右腿也要邁,。當然,,不是說只邁一條腿就走不動路,完全可以拖著走嘛,只是那樣不夠穩(wěn)健,,就像一個瘸了腿的人,。

恒遠科技

3、士兵不是體育運動員
重構(gòu)是一種小步快跑的行為,,是我們開發(fā)過程中持續(xù)的,、不起眼但無比重要的邁步。
當然有時團隊會專門花幾個星期甚至幾個月的時間進行重構(gòu),,以彌補他們之前對重構(gòu)的忽視,。這種急行軍的行為確實會發(fā)生,但不可能一直發(fā)生,,大部分的重構(gòu)應該是不起眼的,、伴隨開發(fā)同步去做。這些重構(gòu)的工作往往是立竿見影,,給幾個變量重命名,、調(diào)整函數(shù)的功能——這些看似微小的改變就能在開發(fā)前讓我們看清之前的設計,改造之前的設計,,更好地敲代碼,。

“如果不做前面的重構(gòu),我可能永遠都看不見這些設計問題,,因為我不夠聰明,,無法在腦海中推演所有這些變化。Ralph Johnson 說,,這些初步的重構(gòu)就像掃去窗上的塵埃,,使我們得以看到窗外的風景。”

4,、令行禁止
如果有一塊丑陋的代碼能被隱藏在一個完全不需要改造/接觸的API之下,,就繼續(xù)容忍它的丑陋。記住我們的目的,,為了經(jīng)濟利益,,只有需要理解其工作原理時,對其重構(gòu)才有價值,。漂亮的代碼也需要很多重構(gòu),,有時過度的設計會干擾現(xiàn)在的功能,或者當時很漂亮的設計并不容易修改代碼,,這些漂亮的石頭需要從道路上搬開,。

5、你們的隊伍有指導員么,?
一份重構(gòu)的代碼要如何才能保證與原來的軟件行為不偏離呢,?答案是也需要被指導——被測試指導。
“自測試的代碼不僅使重構(gòu)成為可能,而且使添加新功能更加安全,,因為我可以很快發(fā)現(xiàn)并干掉新近引入的 bug,。”

最后,重構(gòu)不是包治百病的靈丹,,也絕對不是所謂的“銀彈”,。它更像是一把鉗子,在搭建新管道時發(fā)現(xiàn)舊管道的問題就修修補補,,把控住我們的代碼,。一艘船被造出來是因為開始的良好設計,在海上航行不沉是因為日常的保養(yǎng),。

免責聲明:未標明原創(chuàng)或來源的文章轉(zhuǎn)載自官方媒體或其他網(wǎng)站,,版權(quán)歸原創(chuàng)者所有,。本站轉(zhuǎn)載旨在使信息更廣泛地傳播以更好地發(fā)揮其價值,如涉及版權(quán)等問題,,請作者與本網(wǎng)站聯(lián)系,,郵箱:[email protected]