• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            技術,瞎侃,健康,休閑……

            mahu@cppblog 人類的全部才能無非是時間和耐心的混合物
            posts - 11, comments - 13, trackbacks - 0, articles - 12
              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            zz如何閱讀別人代碼 10

            Posted on 2006-06-26 22:52 mahudu@cppblog 閱讀(201) 評論(0)  編輯 收藏 引用 所屬分類: Programming
            ???
            +++++++++++++++++

            第十章:?代碼閱讀工具

            +++++++++++++++++


            223.詞匯工具可以高效地在一個大代碼文件中或者跨多個文件查找某種模式.

            224.使用程序編輯器和正則表達式查找命令,?瀏覽龐大的源代碼文件.

            225.以只讀方式瀏覽源代碼文件.

            226.使用正則表達式?^function?name?可以找出函數(shù)的定義.

            227.使用正則表達式的字符類,?可以查找名稱遵循特定模式的變量.

            228.使用正則表達式的否定字符類,?可以避免非積極匹配.

            229.使用正則表達式?symbol-1.?*symbol-2,?可以查找出現(xiàn)在同一行的符號.

            230.使用編輯器的?tags?功能,?可以快速地找出實體的定義.

            231.可以用特定的?tag?創(chuàng)建工具,?增加編輯器的瀏覽功能.

            232.使用編輯器的大綱視圖,?可以獲得源代碼結構的鳥瞰圖.

            233.使用您的編輯器來檢測源代碼中圓括號|方括號和花括號的匹配.

            234.使用?grep?跨多個文件查找代碼模式.

            235.使用?grep?定位符號的聲明|定義和應用.

            236.當您不能精確地表述要查找的內容時,?請使用關鍵單詞的詞干對程序的源代碼進行
            查找.

            237.用?grep?過濾其他工具生成的輸出,?分離出您要查找的項.

            238.將?grep?的輸出輸送到其他工具,?使復雜處理任務自動化.

            239.通過對?grep?的輸出進行流編輯,?重用代碼查找的結果.

            240.通過選取與噪音模式不匹配的輸出行(grep-v),?過濾虛假的?grep?輸出.

            241.使用?fgrep?在源代碼中查找字符串列表.

            242.查找注釋,?或標識符大小寫不敏感的語言編寫的代碼時,?要使用大小寫不敏感的模
            式匹配(grep?-i).

            243.使用?grep?–n?命令行開關,?可以創(chuàng)建與給定正則表達式匹配的文件和行號的檢查
            表.

            244.可以使用?diff?比較文件或程序不同版本之間的差別.

            245.在運行?diff?命令時,?可以使用?diff?–b,?使文件比較算法忽略結尾的空格,?用?
            –w?忽略所有空白區(qū)域的差異,?用?–i?使文件比較對大

            小寫不敏感.

            246.不要對創(chuàng)建自己的代碼閱讀工具心存畏懼.

            247.在構建自己的代碼閱讀工具時:?要充分利用現(xiàn)代快速原型語言所提供的能力;?從簡
            單開始,?根據(jù)需要逐漸改進;?使用利用代碼詞匯結構的

            各種試探法;?要允許一些輸出噪音或寂靜(無關輸出或缺失輸出);?使用其他工具對輸入
            進行預處理,?或者對輸出進行后期處理.

            248.要使編譯器成為您的:?指定恰當級別的編譯器警告,?并小心地評估生成的結果.

            249.使用C預處理器理清那些濫用預處理器特性的程序.

            250.要徹底地了解編譯器如何處理特定的代碼塊,?需要查看生成的符號(匯編)代碼.

            251.通過分析相應目標文件中的符號,?可以清晰地了解源文件的輸入和輸出.

            252.使用源代碼瀏覽器瀏覽大型的代碼集合以及對象類型.

            253.要抵制住按照您的編碼規(guī)范對外部代碼進行美化的誘惑;?不必要的編排更改會創(chuàng)建
            不同的代碼,?并妨礙工作的組織.

            254.優(yōu)美打印程序和編輯器語法著色可以使得程序的源代碼為易讀.

            255.cdecl?程序可以將難以理解的C和C++類型聲明轉換成純英語(反之亦然).

            256.實際運行程序,?往往可以更深刻地理解程序的動作.

            257.系統(tǒng)調用|事件和數(shù)據(jù)包跟蹤程序可以增進對程序動作的理解.

            258.執(zhí)行剖析器可以找出需要著重優(yōu)化的代碼,?驗證輸入數(shù)據(jù)的覆蓋性,?以及分析算法
            的動作.

            259.通過檢查從未執(zhí)行的代碼行,?可以找出測試覆蓋的弱點,?并據(jù)此修正測試數(shù)據(jù).

            260.要探究程序動態(tài)動作時的每個細節(jié),?需要在調試器中運作它.

            261.將您覺得難以理解的代碼打印到紙上.

            262.可以繪制圖示來描繪代碼的動作.

            263.可以試著向別人介紹您在閱讀的代碼,?這樣做一般會增進您對代碼的理解.

            264.理解復雜的算法或巧妙的數(shù)據(jù)結構,?要選擇一個安靜的環(huán)境,?然后聚精會神地考慮
            ,?不要借助于任何計算機化或自動化的幫助.
            久久精品这里热有精品| 香蕉久久av一区二区三区| 久久精品国产99国产精品| 亚洲AV伊人久久青青草原| 久久人人爽人人爽人人片av麻烦| 久久精品天天中文字幕人妻| 91精品国产91久久久久久蜜臀| 一本一道久久a久久精品综合 | 青青热久久国产久精品| 久久久亚洲欧洲日产国码是AV | 久久久精品午夜免费不卡| 伊人久久国产免费观看视频| 久久国产精品无码一区二区三区| 国产精品成人久久久久三级午夜电影| 久久99久久99精品免视看动漫| 精品国产青草久久久久福利| 久久精品人人做人人妻人人玩| 久久嫩草影院免费看夜色| 国产国产成人精品久久| 久久久久久精品成人免费图片| 久久精品中文字幕第23页| 99久久er这里只有精品18| 亚洲午夜久久久| 色欲综合久久躁天天躁| 国产ww久久久久久久久久| AV无码久久久久不卡网站下载| 亚洲国产美女精品久久久久∴| 怡红院日本一道日本久久 | 亚洲欧美日韩久久精品| 国产综合免费精品久久久| 94久久国产乱子伦精品免费| 国产精品99久久99久久久| 亚洲国产精品高清久久久| 亚洲香蕉网久久综合影视| 久久久久国产精品嫩草影院| 国产精品久久新婚兰兰| 亚洲婷婷国产精品电影人久久| 色综合久久天天综线观看| 四虎国产精品成人免费久久| 麻豆av久久av盛宴av| 亚洲精品国产字幕久久不卡|