• <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>

            技術(shù),瞎侃,健康,休閑……

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

            zz如何閱讀別人代碼 10

            Posted on 2006-06-26 22:52 mahudu@cppblog 閱讀(209) 評論(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.使用編輯器的大綱視圖,?可以獲得源代碼結(jié)構(gòu)的鳥瞰圖.

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

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

            235.使用?grep?定位符號的聲明|定義和應(yīng)用.

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

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

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

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

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

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

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

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

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

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

            小寫不敏感.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

            264.理解復(fù)雜的算法或巧妙的數(shù)據(jù)結(jié)構(gòu),?要選擇一個安靜的環(huán)境,?然后聚精會神地考慮
            ,?不要借助于任何計算機化或自動化的幫助.
            综合久久一区二区三区| 久久精品国产亚洲AV嫖农村妇女| 99久久国产热无码精品免费久久久久| 99久久精品国产一区二区蜜芽 | 亚洲中文字幕伊人久久无码| 久久亚洲AV无码精品色午夜| 欧美黑人又粗又大久久久| 精品久久久久久久久久中文字幕| 久久这里都是精品| 天天综合久久久网| 久久亚洲国产成人精品性色| 国产巨作麻豆欧美亚洲综合久久 | 狠狠色丁香婷综合久久| 久久无码AV一区二区三区| 亚洲国产精品久久| 国产成人精品免费久久久久| 中文字幕无码av激情不卡久久| 久久精品国产91久久综合麻豆自制 | 亚洲AV无码久久精品蜜桃| 欧美粉嫩小泬久久久久久久 | 无码乱码观看精品久久| 国产亚洲成人久久| AA级片免费看视频久久| 香蕉久久一区二区不卡无毒影院| 亚洲AV乱码久久精品蜜桃| 伊人久久综合成人网| 狠狠色丁香婷婷久久综合五月 | 久久最新免费视频| 色悠久久久久久久综合网| 秋霞久久国产精品电影院| 国产精品久久99| 99国产精品久久| 99久久精品国产一区二区| 很黄很污的网站久久mimi色| 亚洲天堂久久精品| 久久高潮一级毛片免费| 日韩十八禁一区二区久久| 久久亚洲AV无码精品色午夜| 亚洲精品高清国产一线久久| 无码专区久久综合久中文字幕| 色8久久人人97超碰香蕉987|