- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
如何阅读他人的程式码.ppt
如何閱讀他人的程式碼 視閱讀他人的程式碼為畏途? 有許多人視閱讀他人所寫成的程式碼為畏途 程式員寧可自己重新寫過程式碼,也不願意接收別人的程式碼, 許多程式員心裡都有一種不自覺的恐懼感,深怕被迫去碰觸其他人所寫的程式碼,這是來自於人類內心深處對於陌生事物的原始恐懼 接觸他人的程式碼在現實生活中在所難免 基於許多現實的原因,程式員時常受迫要去接收別人的程式碼 同事離職 同事昇職 接手或是整合客戶前一個廠商所遺留下來的系統 … 大家都不想接手別人的程式碼,因為不想花時間去探索別人的程式碼 大家寧可將生產力花在產生新的程式碼,而不是耗費在了解別人的程式碼上 從負面觀點的「被迫接收」轉換成具正面價值的「汲取養份」 在現今開放原始碼的風氣如此盛行的今日,你可以透過開放原始碼 學習到新的技術 學習到高手的架構設計 以直接自開放原始碼專案中抽取、提煉出自己所需的程式碼 現代程式員的新技藝 倘若撰寫程式碼是程式員的重要技藝之一,那麼讀懂別人的程式碼接著加以修改,也勢必會是另一個重要的技藝 如果你不能熟悉這項技藝 不能解決眼前接手他人程式碼的難題 看著眼前現成的程式碼,卻不知如何從中擷取自己所需 接觸他人的程式碼的三種不同程度 接觸他人的程式碼的三種不同程度 了解 修改 、擴充 抽取、提煉 不能了解自己要處理的程式碼,就甭論要對這些程式碼進行修改或擴充 更不可能去蕪存菁,從中萃取出自己所需,回收再利用別人所撰寫的程式碼 閱讀他人程式碼四件事 準備 工具 方法 心態 閱讀他人程式碼的基本準備 了解程式碼寫成的程式語言 確認程式碼所用的命名慣例 變數的名稱、函式的名稱 、類別的名稱 原始碼檔案、專案建構目錄的名稱 設計模式 程式員透過共通約束、遵守的命名慣例,來表達一些較高階的概念 當你了解整個系統所採用的慣例時,你便能試著以他們所共同操用的語彙來進行理解 像以設計模式寫成的程式碼,便處處充滿著模式的名稱 Factory、Facade、Proxy 、… 如何得知命名慣例 取得命名慣例的說明文件 進到程式碼中大略的瀏覽一遍 ,自行發掘出該系統所用的命名慣例 常見的命名方式不脫幾類 經驗就很重要,倘若你知道的慣例愈多,就愈能輕易的識別他人所用的慣例 若欲閱讀的程式碼之慣例是你前所未見的 花點時間歸納,找出規則 對工具的需求 瀏覽原始碼 找出特定類別/函式/變數位於那一原始檔 找出特定訊息由那一函式所丟出(或記錄) 找出自訂類別/型別的原始定義處 找出自訂類別/型別的引用關係 找出函式的呼叫關係 隨著瀏覽的需求,快速的切換至感興趣的函式程式碼本體部份 自動從原始碼建立模型 例如自動產生類別圖 常用的工具 IDE,例如Visual Studio 簡化瀏覽 便利在不同的函式間切換跳躍 便於取得函式原型宣告 grep 允許我們搜尋某個目錄(包括遞迴進到其所有子目錄)中所有指定檔案,是否有符合指定條件(常數字串或正規表示式)檔案 閱讀、探索原始碼時十分好用的工具 grep的缺點 它並不會為所搜尋的原始碼檔案進行索引 每當你進行搜尋時,它都會逐一的找出所有的檔案,並且讀取其中的所有內容,過濾出滿足你所指定條件的檔案 當專案中的原始碼數量太大時,會有搜尋效率的問題 它只是一個單純的文字檔搜尋工具 它本身並不會剖析原始碼所對應的語言語法 當我們只想針對「函式」名稱進行搜尋時,它有可能將註解中含有該指定名稱的原始碼也一併找出 搜尋結果便有可能含有過多的雜訊,影響搜尋的有效性 gtags (1/2) GNU GLOBAL source code tag system 不單只會進行文字層次的搜尋 具備了各種語言的語法剖析器,使得它在進行搜尋時,可以只針對和語言有關的元素,例如類別名稱、函式名稱等等 它能針對原始碼的內容進行索引 一旦建好索引之後,每次的搜尋動作,都毋需重新讀取所有原始碼的內容並逐一搜尋 以現成的索引結構為基礎,進行有效率的搜尋 gtags (2/2) 提供了許多有用的額外檢索方式 ,例如 找出專案中定義某個資料結構的檔案及定義所在的行號 找出專案中所有引用某資料結構的檔案,以及引用處的行號。 htags (1/4) gtags所提供的工具,能夠幫你將已製作完成的索引結構,製作成為一組相互參考的HTML文件 直接閱讀htags所產生的HTML文件,十分便利 比起單純的直接閱讀原始碼,來得更有結構 已經為你建立起閱讀程式碼時在各個原始碼檔案片段間跳躍的鏈結 htags (2/4) htags (3/4) htags (4/4) 閱讀他人的程式就像是在拼圖 你憑藉著自己的組織能力,自行在不同的程式碼間跳躍,拼湊出自己腦中想要構建的圖像 在閱讀程式碼時,你最常做的事,就是隨著
您可能关注的文档
最近下载
- 电厂 电气维修培训课件.ppt VIP
- 电气设备操作与检修安全课件.ppt VIP
- 2025曲靖供电局及所属县级供电企业项目制用工招聘(55人)笔试备考试题及答案解析.docx VIP
- 雷克萨斯-Lexus RX-产品使用说明书-RX200t-AGL20L-AWTGZC2-RX200tOM_OM48E46C_01-1509-00.pdf VIP
- 基于Glauert法的风力机叶片设计设计说明书论文.docx VIP
- 企业法律知识培训讲座培训课件——房地产法律合规与风险管控(1).pptx VIP
- 2025南方电网保山供电局项目制用工招聘(3人)笔试备考试题及答案解析.docx VIP
- 大学生五四青年课活动策划书范文 - 172校园活动网.doc VIP
- 烹调工艺学全套教学课件.pptx
- 新时达电梯控制系统AS380S随机图纸RH0000741;国标20;非18芯;V1.0.pdf
文档评论(0)