<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();
           }

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

    主站蜘蛛池模板: 日本中文字幕免费高清视频| 69xx免费观看视频| 亚洲精品高清视频| 两性刺激生活片免费视频| 色欲色欲天天天www亚洲伊| 亚洲精品黄色视频在线观看免费资源| aaa毛片免费观看| 亚洲毛片免费视频| 亚洲成A人片在线观看中文| 成全视频免费观看在线看| 精品久久亚洲中文无码| 亚洲男女内射在线播放| av无码久久久久不卡免费网站| 国产精品亚洲色婷婷99久久精品| 亚洲成A人片在线观看无码不卡 | 亚洲 综合 国产 欧洲 丝袜| 国内精品一级毛片免费看| jiz zz在亚洲| 亚洲av最新在线网址| 拔擦拔擦8x华人免费久久| 久久青草免费91线频观看不卡| 亚洲欧洲无码AV不卡在线| 久久亚洲国产中v天仙www| 日本二区免费一片黄2019| 特级无码毛片免费视频尤物 | 99久久国产免费-99久久国产免费| 亚洲精品无码你懂的| 久久久亚洲欧洲日产国码农村| 日韩免费三级电影| 99久久人妻精品免费二区| 久久高潮一级毛片免费| 亚洲熟女www一区二区三区| 亚洲国产一区在线| 亚洲国产精品激情在线观看| 色妞WWW精品免费视频| 久久国产免费一区二区三区 | 中文字幕成人免费视频| 成人免费无码H在线观看不卡| 亚洲欧洲av综合色无码| 亚洲午夜电影在线观看高清| 国产av无码专区亚洲av桃花庵|