日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

《重構(gòu):改善既有代碼的設(shè)計》 讀書筆記 第三章

 印度阿三17 2020-01-14

第三章 代碼的壞味道

3.1 神秘命名

命名是編程中很難的事情,所以最常用的重構(gòu)手段就是去改個名字。

如果你發(fā)現(xiàn)改名很難,那就說明代碼設(shè)計有問題。

3.2 重復(fù)代碼

同一類的兩個函數(shù)含有相同的表達(dá)式,就應(yīng)該提煉。

3.3 過長函數(shù)

活得最長,最好的函數(shù),一般都很短。

如果你覺得需要寫注釋,大部分情況就代表這個東西需要寫進(jìn)一個獨(dú)立的函數(shù)里面,然后根據(jù)用途來命名比較好。

3.4 過長的參數(shù)列表

將幾個函數(shù)共用的參數(shù)抽象成類,然后再調(diào)用類。

3.5 全局?jǐn)?shù)據(jù)

全局?jǐn)?shù)據(jù)的問題是,全局?jǐn)?shù)據(jù)在任何地方都可以被修改。

所以正確的做法是將全局?jǐn)?shù)據(jù)封裝起來,用函數(shù)將其包起來,這樣就知道那些地方修改了它。

3.6 可變數(shù)據(jù)

核心是縮小作用域。

3.7 發(fā)散式變化

如果這個模塊,加不同原因的需求的時候,修改的模塊都不相同的話,你需要考慮是否要分離出來。比如說你加入redis需要改3個地方,加入mysql需要改4個地方,你就應(yīng)該抽離出來。

3.8 霰彈式修改

在每次修改的時候,應(yīng)該只修改一處,而不是到處的修改。如果你說你要加入一個數(shù)據(jù)庫,需要修改3個函數(shù),那么這就需要思考,你是否應(yīng)該抽離出來。

3.9 依戀情結(jié)

模塊化,力求代碼分出區(qū)域,最大化區(qū)域內(nèi)部交互,最小化區(qū)域間交互。

如果兩個模塊交互頻繁,你應(yīng)該合并在一起。

3.10 數(shù)據(jù)泥團(tuán)

如果在多個類中,出現(xiàn)了很多相同項的數(shù)據(jù),你需要想想是否要抽離出來一個對象。

3.11 基本類型偏執(zhí)

我們應(yīng)該創(chuàng)建對象,而不是用一個字符串來寫任何東西。

比如有程序員用字符串來表示電話號碼,實際上你應(yīng)該抽象出來一個電話號碼對象。

3.12 重復(fù)的switch

switch這個東西就不應(yīng)該存在。

3.13 循環(huán)語句

我們應(yīng)該用管道操作來替代循環(huán),這樣能更看清被處理的元素和處理他們的動作。

3.14 冗贅的元素

能簡單的代碼,盡量簡單。未來變復(fù)雜的時候,再去考慮它。

3.15 夸夸其談通用型

同上。

3.16 臨時字段

臨時的字段不應(yīng)該存在。

3.17 過長的消息鏈

如果關(guān)系過長,你最好提煉函數(shù)。

...... (省略其中的很多點(diǎn))

3.24 注釋

注釋是提示你,這個地方該重構(gòu)啦。

如果你覺得需要寫注釋的時候,請先重構(gòu),試著讓所有注釋都變得多余。

來源:https://www./content-4-614201.html

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多