日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

教你如何剖析源码

發布時間:2023/12/13 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 教你如何剖析源码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、源碼閱讀需求

  在學習中,我們會需要了解,學習,使用一個框架,一個新的函數庫。在工作中,因為業務需求,因為性能問題,可能通過一個更高性能的工具,架構去優化我們的程序。

那么,問題就來了。網站下載了源碼,目錄一層一層,頭文件無數,打開之后又是一個函數上百行代碼,一個類可能有近千行代碼。看著都崩潰了,只想關機去靜靜。

那么,現在。就談談如何閱讀源碼的問題了。

二、源碼閱讀方法

  認知過程:

  ①了解庫/框架的功能-->具體做法:找到相關文檔或者書籍,獲取庫/框架的功能簡介。知道他是干什么的。(相關知識儲備足夠了,那么學習這個框架就會事半功倍的)

  ②認識庫,能夠簡單使用庫-->具體做法:通過官方文檔或者工具,獲取框架的外部接口,嘗試在程序中使用它。這個過程可以是個深度優先、廣度優先方式。看個人學習了解方式和能力了(ps:a.接收能力強,那么你可以嘗試將大致的功能都嘗試調用,全局體驗,了解整個庫/框架的使用,作用,而后深入剖析。

        b.如果你是個可以做到深入,能鉆進去的人,那么你就通過深度優先方式,逐個模塊的深入學習。然后慢慢的熟悉整個框架)

  ③閱讀源碼,了解整個框架/抽離核心,實現簡潔版-->這個過程可能對不同的人就有差距了,深入理解的,那么就可能做到抽離框架核心,實現簡潔版,獲取框架思想,并且做到框架功能優化,提交bug等。而一般點,那就是熟悉框架結構,了解功能接口,在學習工作中使用。當然,這樣也許在程序中出現某些bug時,就不能準確定位錯誤并改進了。

  ④第三個過程其實是一個漫長的過程,還要能夠保持足夠的耐心動力去探索。可以具體劃分為:

    a.根據目錄層次,將整個框架進行模塊劃分認知,了解模塊間耦合關系。

    b.進入目錄,學習一個模塊的實現細節,這時。可以選擇,拷貝一份源碼,閱讀同時加入注釋。

    c.遇到類間關系復雜的地方,可以通過UML類圖視覺體現關系,而后詳細學習。

boss 級方案

  利用UML工具,將源碼生成對應UML圖,了解類接口,成員函數以及類間關系。然后深入源碼(ps這個太強大,一般人駕馭不了)

  當然,vs調試過程也會有這個功能。http://jingyan.baidu.com/article/7f41ecec15092c593d095c17.html

三、工具推薦

  windows環境 源碼剖析工具:vs20XX (源程序閱讀,測試程序運行調試),everything(目錄文件搜索),source insight(源文檔閱讀,支持函數跳轉,體現調用樹,關聯性等)

  linux環境 工具推薦:vim?+?ctags?+?taglist ?

四、工具簡單使用教程

  ①vs

http://blog.csdn.net/anzhongliu/article/details/48750637

http://feiger.cn/?p=4118

②everything

  這就是個簡單的目錄搜索工具,可以找到任何你有的東西哦。---保證讓你沒有小秘密可言。

③source Insight

  這個就是我們今天介紹的重點了

a.工具簡介:sourceinsight,英文解讀“深入到源代碼”該軟件只具有代碼的閱讀,編輯,簡單語法檢查功能,而不具有編譯功能。但是在閱讀大規模工程代碼時,sourceinsight在代碼導航,高亮注釋,顏色區分,代碼關聯等方面對于源碼閱讀都有 很好地幫助。

b.工具獲取http://www.sourceinsight.com/

c.基本使用

源碼導入/新建工程

project-->newProject(alt+shift+n)

添加項目文件:也就是你需要查看的源碼,在文件系統中找到需要添加的項目文件夾,然后點擊add All即可

彈窗提示是否遞歸添加子文件夾,選中,確定

至此,工程建立完成,那么。下面就看看具體如何使用軟件進行源碼閱讀了

比較常用的視圖,設置出來

?

對于比較長的文件,那么如果順序讀源文件肯定不方便了。這時,你應該發現左邊的的選項框了。

且文件瀏覽中,支持快速定位,跳轉等功能,這個窗口可以看到具體的類,函數調用關系,引用,使用位置等。

快捷方式:

Source Insight常用的快捷鍵:?
??? Ctrl+= :Jump to definition?
??? Alt+/ :Look up reference?
??? F3 : search backward?
??? F4 : search forward?
??? F5: go to Line?
??? F7 :Look up symbols?
??? F8 :Look up local symbols?
??? F9 :Ident left?
??? F10 :Ident right?
??? Alt+, :Jump backword?
??? Alt+. : Jump forward?
??? Shift+F3 : search the word under cusor backward?
??? Shift+F4 : search the word under cusor forward?
??? F12 : incremental search?
??? Shift+Ctrl+f: search in project?
??? shift+F8 : hilight word?
Source Insight的窗口操作:?
??? project window Ctrl+O打開?
??? symbol window Alt+F8打開和關閉?
??? Contex Window 自定義鍵打開和關閉?
??? Relation Window 自定義鍵打開 先鎖定再刷新聯系

?

最后,關于sourceinsight的使用,參考

http://www.cnblogs.com/olvo/archive/2012/05/04/2483424.html

http://blog.csdn.net/lyl_98/article/details/889706

有任何疑問或者改正之處,歡迎交流。

轉載于:https://www.cnblogs.com/lang5230/p/5516348.html

總結

以上是生活随笔為你收集整理的教你如何剖析源码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。