<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 176, comments - 240, trackbacks - 0, articles - 7

    代碼習慣

    Posted on 2005-11-17 11:55 canonical 閱讀(427) 評論(0)  編輯  收藏 所屬分類: 軟件開發
        新手總是有很多不好的代碼習慣. 最常見的一個是不使用臨時變量.例如
        for(int i=0;i<myList.size();i++){
            otherList.get(i).getSomeVar().getName();
            otherList.get(i).getSomeVar().getValue();
        }
        這種做法有如下后果:
        1. 代碼冗長, 容易出錯, 例如循環體中的某個i寫成了j
        2. 函數調用終究是要耗費時間的, 在一個循環體中的調用往往對性能有可見的影響. 特別是當函數動態裝載數據的時候, 例如每次調用該函數都查詢數據庫, 這種不使用臨時變量的方法將會為系統留下性能隱患.
        3. 一條很長的語句如果不是為流式調用而設計的, 則這種調用方式會影響到我們的調試工作. 例如 當某個中間步驟返回空指針時, 程序會拋出NullPointerException異常, 而我們得到的信息只是某一行存在空指針異常, 但是無法定位到具體是哪個步驟. 當某個中間步驟返回的值不是null但也不是我們所期望的值的時候, 我們同樣難以診斷出具體出錯的步驟. 使用臨時變量將會為調試提供便利
          int i,n=myList.size();
          for(i=0;i<n;i++){
              MyVar var = otherList.get(i);
              var.getName();
              var.getValue();
              ...
          }
          在需要的時候我們可以在出錯語句處加上斷點, 或者直接輸出可疑的變量值.
        4. 長語句不利于抽象出子函數. 例如在第二種方式中我們抽象出子函數的難度比第一種方式小
           void processVar(MyVar var){
               var.getName();
               var.getValue();
           }

        造成這些習慣的原因很耐人尋味, 我猜想缺乏抽象能力似乎是最基本的原因, 畢竟為變量起一個名字也是最簡單的抽象步驟之一.

    主站蜘蛛池模板: 国产婷婷高清在线观看免费| 在线精品亚洲一区二区三区 | 激情吃奶吻胸免费视频xxxx| 亚洲精品无码久久久| 久久青草免费91线频观看站街| 亚洲免费视频观看| 亚洲国产成人精品91久久久| 久久精品无码精品免费专区| 亚洲中文字幕久久精品无码VA| 国产亚洲成归v人片在线观看| 美女内射毛片在线看免费人动物| 亚洲av午夜电影在线观看| 久久精品亚洲视频| 日本免费无遮挡吸乳视频电影| 最近国语视频在线观看免费播放| 91丁香亚洲综合社区| 亚洲精品二区国产综合野狼| 成年美女黄网站18禁免费| 国产在线精品一区免费香蕉| 亚洲AV无码无限在线观看不卡| 亚洲成av人片天堂网| 国产免费人成在线视频| 曰批全过程免费视频播放网站 | 美女羞羞喷液视频免费| 亚洲精品成人图区| 亚洲愉拍99热成人精品热久久| 日本一区免费电影| 欧美男同gv免费网站观看| 久久大香香蕉国产免费网站| 精品在线观看免费| 一本色道久久88亚洲精品综合 | 91香蕉国产线观看免费全集| 一级特黄录像视频免费| 亚洲欧洲AV无码专区| 亚洲高清免费在线观看| 亚洲乱色熟女一区二区三区丝袜| 免费A级毛片无码久久版| 亚洲免费观看视频| 亚洲阿v天堂在线2017免费| 女人18毛片水最多免费观看| 18禁网站免费无遮挡无码中文|