有關程式碼重構的定義為: 在不改變軟體本身功能的前提下,要讓它內部結構趨於完善。重構程式碼的時機重構所帶來的的影響範圍的大小也是要做判斷的。 系統級重構:系統內部程式碼
2021-06-10 15:51:00
在不改變軟體本身功能的前提下,要讓它內部結構趨於完善。
重構所帶來的的影響範圍的大小也是要做判斷的。
系統級重構:
系統內部程式碼越來越複雜,業務呼叫鏈路也交錯,難以正常的維護;
新的功能上線要付出代價很大;
造成需要重構的原因:
我見過一個公司是因為初創的時候沒有組建自己的技術團隊,app第一版是外包公司做的。後期隨著業務增加,新的功能和需求要來的時候,也是新技術總監最難的時候。
主要是因為編碼之前缺乏有效的設計,小公司在考慮成本的時候,直接在原有的功能上堆加,外加缺乏一個程式碼質量監督的機制。
其實這個很好理解,大型重構是頂層程式碼重構,整個系統和模組還有程式碼結構重構。就跟知乎將Python用Go語言重構一樣。
大型重構的時候需要我們有一定的設計思想、原則和模式的理解。這類重構要改動的程式碼非常多。
小型重構:主要是對程式碼細節把控,針對類、函數、變數等程式碼級別的重構。比如一個模組的所有命名和註釋的重構,這都算小型重構
這樣小型的重構可以降低企業的測試成本。可以在日常開發中逐一模組進行重構。
單一職責原則:就是一個類只負責一個職責,不互相依賴。但是切勿拆分的太細了,反而會降低內聚性,也會造成程式碼過多過亂,影響後面的維護性。
開放-關閉原則:在新增一個新的功能的時候原本是在已有的程式碼上擴展,現在是不在已有的程式碼上完成。
里氏替換原則:子類物件能夠替換程式中父類物件出現的任何地方,保證原來程式的邏輯行為不變以及正確性不被破壞。
介面隔離原則:一個類對另一個類的依賴建立在最小的介面。
依賴翻轉:高層模組不應該依賴低層,兩者都是依賴抽象,抽象不依賴細節,細節依賴抽象。
迪米特法則:一個物件應該對其它物件保持最少的瞭解。
想要學習重構並不是很簡單,畢竟理論基礎是一回事,不同企業面臨的實際情況不同。
相關文章
有關程式碼重構的定義為: 在不改變軟體本身功能的前提下,要讓它內部結構趨於完善。重構程式碼的時機重構所帶來的的影響範圍的大小也是要做判斷的。 系統級重構:系統內部程式碼
2021-06-10 15:51:00
之前realme CEO李炳忠在接受採訪時就表示,realme將圍繞個人、家庭、出行三大場景,推出更多全方位的IoT產品,其中包括音訊類、可穿戴裝置、電視、生活周邊類產品。現在realme即
2021-06-10 15:50:05
很多人偏向於買安卓平板,而不是iPad,你覺得原因有哪些?就我而言,先看iPad:科學地上網,截止至2019年6月,app store科學地上網軟體全部下架,雖然可以通過第三方助手安裝,但很麻煩,你說讓
2021-06-10 15:37:07
在5月27日,OPPO Reno6系列正式釋出,給我們帶來了三款機型。OPPO Reno6 Pro和OPPO Reno6 Pro+已經在6月5日正式開售,開售一小時就斬獲了全網全價位段銷量&銷售額雙冠軍,足以
2021-06-10 15:36:13
日前,谷歌公佈了用人工智慧提升晶片設計速度的研究結果,發表論文刊登於Nature上。該篇名為《一種用於加速晶片設計的佈局規劃方法》論文研究證明,一種基於深度學習的晶片佈局規
2021-06-10 15:35:15
13英寸左右大小的筆記本,向來都是被視為輕薄、便攜的選擇,但這樣換來的是,只夠滿足普通影音和辦公使用的硬體效能,所以主流市場的13英寸筆記本多被定位成輕薄本、商務本,當然也還
2021-06-10 15:33:52