<<代碼整潔之道(cleancode)>>讀書重點(diǎn)筆記

整潔的代碼

創(chuàng)新互聯(lián)公司不只是一家網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司;我們對(duì)營(yíng)銷、技術(shù)、服務(wù)都有自己獨(dú)特見解,公司采取“創(chuàng)意+綜合+營(yíng)銷”一體化的方式為您提供更專業(yè)的服務(wù)!我們經(jīng)歷的每一步也許不一定是最完美的,但每一步都有值得深思的意義。我們珍視每一份信任,關(guān)注我們的網(wǎng)站建設(shè)、網(wǎng)站制作質(zhì)量和服務(wù)品質(zhì),在得到用戶滿意的同時(shí),也能得到同行業(yè)的專業(yè)認(rèn)可,能夠?yàn)樾袠I(yè)創(chuàng)新發(fā)展助力。未來將繼續(xù)專注于技術(shù)創(chuàng)新,服務(wù)升級(jí),滿足企業(yè)一站式成都全網(wǎng)營(yíng)銷需求,讓再小的成都品牌網(wǎng)站建設(shè)也能產(chǎn)生價(jià)值!

1.習(xí)藝之要

   1).知:習(xí)得有關(guān)原則、模式和實(shí)踐的知識(shí),窮盡應(yīng)知之事,并且要對(duì)其了如指掌

   2).行:通過刻苦實(shí)踐掌握它

2.閱讀本書原因

  1)。你是個(gè)程序員

  2)。你想成為更好的程序員

3.勒布朗法則:

   稍后等于永不

4.花時(shí)間保持代碼整潔不但有關(guān)效率,還有關(guān)生存

5.程序員遵從不了解混亂風(fēng)險(xiǎn)的經(jīng)理的意愿,也是不專業(yè)的做法

6.趕上期限的唯一方法,做得快的唯一方法----就是始終盡可能保持代碼整潔

7.破窗理論

8.整潔的代碼只做好一件事

  力求集中,每個(gè)函數(shù)、每個(gè)類、模塊都全神貫注于一事,完全不受四周細(xì)節(jié)的干擾和污染

9.整潔的代碼應(yīng)當(dāng)明確展現(xiàn)出要解決問題的張力

10.簡(jiǎn)單代碼規(guī)則:

       按重要順序:

          .能通過所有測(cè)試

           沒有重復(fù)代碼

           體現(xiàn)系統(tǒng)中的全部設(shè)計(jì)理念

           包括盡量少的實(shí)體,比如類、方法、函數(shù)等

   無重復(fù)代碼:

        如果同一段代碼反復(fù)出現(xiàn),就表示某種想法未在代碼中得到良好的體現(xiàn),應(yīng)該盡力

        去找出到底那是什么,然后再盡力更清晰地表達(dá)出來

 11.提高表達(dá)力

    1)。有意義的命名

    2)。只做一件事

    3)。小規(guī)模抽象

 12.想要干得快、想要早點(diǎn)做完、想要輕松寫代碼,先讓代碼易讀

 有意義的命名

 1.一旦發(fā)現(xiàn)有更好的名稱,就換掉舊的

 2.名副其實(shí)

    如果名稱需要注釋來補(bǔ)充,就不是名副其實(shí)

 3.避免誤導(dǎo)

   做有意義的區(qū)分

   使用讀得出來的名稱

   使用可搜索的名稱

      如:MAX_CLASSES_PRE_STUDENT

  

 4.類名

    類名和對(duì)象名應(yīng)該是名詞或名詞短語,如Customer WikiPage Account

    AddressParser

    不應(yīng)該是動(dòng)詞

  

 5.方法名

     應(yīng)該是動(dòng)詞或動(dòng)詞短語,如postPayment deletePage save

     屬性訪問器、修改器、斷言,應(yīng)該根據(jù)其命名前加上get、set、is前綴

函數(shù)

1.短小是函數(shù)的第一規(guī)則

2.只做一件事,做好這件事

3.每個(gè)函數(shù)一個(gè)抽象層級(jí)

   如 getHtml() 高

      PathParser.render(pagePath) 中

      .append("\n") 低

   函數(shù)中混雜不同的抽象層級(jí),會(huì)讓人迷惑

   自頂向下讀代碼:向下規(guī)則

4.函數(shù)參數(shù)

  最理想的參數(shù)是零(零參數(shù)函數(shù)),其次是一,盡量避免三個(gè)參數(shù)及以上的函數(shù)

  從測(cè)試角度,參數(shù)越多越難測(cè)

5.轉(zhuǎn)換結(jié)果的函數(shù)應(yīng)該體現(xiàn)在返回值

6.應(yīng)該盡量將二元函數(shù)轉(zhuǎn)換為一元函數(shù)(元:參數(shù)個(gè)數(shù))

7.參數(shù)對(duì)象

  如果函數(shù)看來需要三個(gè)或以上參數(shù),說明其中一些參數(shù)應(yīng)該封閉為類

  如:

    Circle makeCircle(double x, double y, double radius);

    |

    Circle makeCircle(Point center, double radius);

  從參數(shù)創(chuàng)建對(duì)象,從而減少參數(shù)數(shù)量,當(dāng)一組參數(shù)被共同傳遞,往往就是該有自己名稱的某個(gè)概念的一部分

8.動(dòng)詞與關(guān)鍵詞

  給函數(shù)取好名字,能較好地解釋函數(shù)的意圖,以及參數(shù)的順序和意圖

  如一元函數(shù) writeFile(name) 動(dòng)詞/名詞

  將參數(shù)的名稱編碼成函數(shù)名,如

   assertEqual->assertExceptedEqualsActual(excepted, actual)

9.避免使用輸出參數(shù),如果函數(shù)必須修改某種狀態(tài),就修改所屬對(duì)象的狀態(tài)

    面向?qū)ο笳Z言中對(duì)輸出參數(shù)的大部分需要已經(jīng)消失,因?yàn)閠his也有輸出參數(shù)的意味

10.分隔指令與詢問

    public boolean set(String attribute, String value);

    

    if(set("username", "unclebob"))...

    上述為指令與詢問都在set函數(shù)中,應(yīng)該改為

    if(attributeExists("username")) {

        setAttribute("username", "unclebob")

    }

11.使用異常替代返回錯(cuò)誤碼

    try {

        deletePage(page);

        registry.deleteReference(page.name);

        configKeys.deleteKey(page.name.makeKey());

    }catch (Exception e) {

        logger.log(e.getMessage())

    }

    

    完美的隔離(try catch 代碼塊主體抽離 )

    public void delete(Page page) {

        try{

            deletePageAndAllReferences(page);

        }catch (Exception e) {

            logError(e);

        }

    }

    private void deletePageAndAllReferences(Page page) throws Exception {

        deltePage(page);

        registry.deleteReference(page.name);

        configKeys.deleteKey(page.name.makeKey());

    }

    private void logError(Exception e)

    {

        logger.log(e.getMessage());

    }

12.錯(cuò)誤處理就是一件事

   如上述代碼,如果關(guān)鍵詞try在某個(gè)函數(shù)中存在,它就是該函數(shù)的第一個(gè)單詞,而且在catch/finally代碼塊后面也不該有

   其他的內(nèi)容

13.依賴磁鐵

   public enum Error {

        OK,

        INVALID,

        NO_SUCH,

        LOCKED;

   }

    

   使用異常替代錯(cuò)誤碼,新異常就可以從異常類派生出來,無需重新編譯或重新部署

14.重復(fù)可能是軟件中一切邪惡的根源

網(wǎng)頁(yè)題目:<<代碼整潔之道(cleancode)>>讀書重點(diǎn)筆記
URL標(biāo)題:http://muchs.cn/article36/pipopg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、品牌網(wǎng)站制作軟件開發(fā)、用戶體驗(yàn)、服務(wù)器托管企業(yè)網(wǎng)站制作

廣告

聲明:本網(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í)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)