日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

重构-改善既有代码的设计:重构原则(二)

發布時間:2025/6/15 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 重构-改善既有代码的设计:重构原则(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.什么是重構

重構(Refactoring):在不改變軟件的功能和外部可見性的情況下,為了改善軟件的結構,提高清晰性、可擴展性和可重用性而對軟件進行的改造,對代碼內部的結構進行優化。

2.為何重構

? 1)改進軟件設計(整理代碼)

重構和設計是相輔相成的,它和設計彼此互補。有了重構,你仍然必須做預先的設計,但是不必是最優的設計,只需要一個合理的解決方案就夠了,如果沒有重構、程序設計會逐漸腐敗變質,愈來愈像斷線的風箏,脫韁的野馬無法控制。重構其實就是整理代碼,讓所有帶著發散傾向的代碼回歸本位。

??2)提高代碼質量和可讀性,使軟件系統更易理解和維護

?"任何一個傻瓜都能寫出計算機可以理解的程序,只有寫出人類容易理解的程序才是優秀的程序員"。有些程序員總是能夠快速編寫出可運行的代碼,但代碼中晦澀的命名使人暈眩得需要緊握坐椅扶手,試想一個新兵到來接手這樣的代碼他會不會想當逃兵呢?

軟件的生命周期往往需要多批程序員來維護,我們往往忽略了這些后來人。為了使代碼容易被他人理解,需要在實現軟件功能時做許多額外的事件,如清晰的排版布局,簡明扼要的注釋,其中命名也是一個重要的方面。一個很好的辦法就是采用暗喻命名,即以對象實現的功能的依據,用形象化或擬人化的手法進行命名,一個很好的態度就是將每個代碼元素像新生兒一樣命名,也許筆者有點命名偏執狂的傾向,如能榮此雅號,將深以此為幸。

對于那些讓人充滿迷茫感甚至誤導性的命名,需要果決地、大刀闊斧地整容,永遠不要手下留情!

? 3)幫助盡早的發現錯誤(Defects)

孔子說過:溫故而知新。重構代碼時逼迫你加深理解原先所寫的代碼。程序員經常對自己的程序邏輯不甚理解的情景,曾為此驚悚過,后來發現這種癥狀居然是許多程序員?;嫉?#34;感冒"。當你也發生這樣的情形時,通過重構代碼可以加深對原設計的理解,發現其中的問題和隱患,構建出更好的代碼。

? 4)提高編程速度

良好設計是維持軟件開發速度的根本,重構可以幫助你更快的開發軟件。因為它防止系統腐敗變質。甚至還可以提高設計質量。當你發現解決一個問題變得異常復雜時,往往不是問題本身造成的,而是你用錯了方法,拙劣的設計往往導致臃腫的編碼。

? ? 改善設計、提高可讀性、減少缺陷都是為了穩住陣腳。良好的設計是成功的一半,停下來通過重構改進設計,或許會在當前減緩速度,但它帶來的后發優勢卻是不可低估的。

3.何時重構

? ? 1)重構應該是隨時隨地進行。不應該為重構而重構。
? ? 2)三次法則:第一次做某件事只管去做;第二次做類似的事會產生反感,但無論如何還是可以去做?第三次 再做類似的事情,就應該重構了。
? ? 3)添加功能
? ? 4)修復bug
? ? 5)復審代碼,即Code Review時候
? ? 重構可能會引入更多見階層,重構往往需要把大型對象拆成多個小型對象。把大型函數拆成多個小型函數。間接層是把雙刃劍:一是你需要管理多分內容。
? ? 但間接層有以下作用:
? ? 1)允許邏輯共享,小函數復用性高。
? ? 2)分開解釋意圖和實現:可以選擇類名和函數名解釋實現意圖的做法。
? ? 3)隔離變化
? ? 4)封裝條件邏輯:對象有一種奇妙的機制:多態消息,可以靈活而清晰地表達條件邏輯。將條件邏輯轉化為消息形式,往往能降低代碼的重復。增加清晰度并提高彈性。

4.何時不該重構

? ? 1)代碼是在太混亂了,設計完全錯誤。
? ? 2)如果項目已近最后期限,應該避免重構。??

? ? 3)重構還不如重新編碼。即重構的工作量顯著的影響Estimate?

?

5.重構流程

1)讀懂代碼(包括測試例子代碼) 2)進行重構 3)運行所有的Unit Tests?

6.?重構與設計

? ? 1)很多人都把設計看作軟件開發的關鍵換進。而把編程看作只是機械式的低級勞動。
? ? 2)另外的觀點就是:重構可以取代預先設計。你不必要做任何設計,只管按照最初的想法開始編碼,讓代碼運作,然后再將它重構成型。

? ? 實際上重構與設計是互補的,程序應該是先設計,而在開始編碼后,設計上的不足可以用重構來彌補.設計應該是適度的設計,而不必過度的設計.如果能很容易的通過重構來適應需求的變化,那么就不必過度的設計,當需求改變時再重構代碼 。

7.重構與性能

? ? 三種快速編寫軟件的方法: ? ?1)時間預算法 在設計時就對程序花費的時間進行預算,通常用于性能要求極高的實時系統.普通的企業應用程序一般對性能要求不高.只要不太慢就可以了 。 ? ?2)?持續關注法 要求程序員在任何時間都要設法保持系統的高性能.這個方法有個缺陷,就是大部分的程序90%的優化工作都是白費勁,這樣會浪費大量的時間 。 ? ?3)?良好的分解方式 ??這個方式是在開發程序階段不對性能投以任何關注,直到進入性能優化階段,再分析程序中性能差的程序,然后對這些程序進分解,查出性能差的程序,進行優化。

總結

以上是生活随笔為你收集整理的重构-改善既有代码的设计:重构原则(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 在线国产精品视频 | 青青草精品在线视频 | 最新黄色网页 | 妺妺窝人体色www聚色窝仙踪 | 欧美a v在线| 国产一线在线观看 | 午夜精品久久久久久99热 | 人人干人人模 | 69免费视频 | 欧美亚洲综合另类 | 国产人妻大战黑人20p | 99精品人妻无码专区在线视频区 | 亚洲欧美精品午睡沙发 | 成人欧美一区二区三区黑人冫 | 国产成人精品一区在线播放 | 国产精品1区2区 | 射久久久 | av大片在线看 | 午夜视频在线免费 | 国产一级美女 | 毛片3| 久久精品99国产精品日本 | 亚洲情人网 | 美女av网站| 欧美毛片视频 | 绿帽视频 | 中文字字幕在线中文乱码电影 | 美女免费黄视频 | 国产欧美一区二区视频 | 91pao| 色偷偷91| 免费黄色小网站 | av午夜天堂 | 色在线视频 | 国产人妻互换一区二区 | 国产精品果冻传媒 | 图片区视频区小说区 | 亚洲自拍偷拍一区二区 | 亚洲精品91天天久久人人 | 日韩 国产 欧美 | 日韩成人高清 | 成人性生交生交视频 | 国产美女主播在线观看 | 中文字幕无码毛片免费看 | 隣の若妻さん波多野结衣 | 激情综合网五月激情 | 桥本有菜aⅴ一区二区三区 在线午夜电影 | 国产在线观看无码免费视频 | 韩国日本在线观看 | 一级性生活黄色片 | 久久色视频 | 黄色大全免费观看 | 成人激情视频在线 | 国产成人精品综合久久久久99 | 波多野结衣视频一区 | 男女啪啪免费看 | 国产一区视频免费观看 | 国产日韩一区二区三免费高清 | 午夜影院91| 日韩欧美精品在线观看 | 国产高清不卡一区 | jizz日本免费 | av网站在线观看免费 | 国产人澡人澡澡澡人碰视频 | 成人短视频在线观看 | 瑟瑟视频免费观看 | 免费看黄色网 | av天天有 | 久久香蕉av| 免费香蕉视频 | 中文在线观看视频 | 毛片网站在线播放 | 东京热加勒比无码少妇 | 99自拍视频在线观看 | 亚洲精品一区二区 | 精品人妻无码一区二区三区 | 夜夜操狠狠干 | 久久男人av| 国产成人亚洲精品自产在线 | 午夜宫 | 性感美女在线 | 日韩中文欧美 | 欧美日本道| 99亚洲欲妇| av色综合 | 亚洲最大黄网 | 按摩毛片 | 色吧在线观看 | 精品在线小视频 | 未满十八岁禁止进入 | 日本中文字幕网站 | 亚洲AV成人无码一二三区在线 | 桃色av网站| 国产乱子伦一区二区 | 日产精品久久久久 | 中国av一级片 | 日韩免费av片 | 永久免费网站直接看 | 自拍亚洲一区 |