當前位置:首頁 » 操作系統 » 如何讀源碼

如何讀源碼

發布時間: 2022-03-13 17:17:40

A. 如何閱讀源代碼

這樣閱讀源代碼:

1、你會懂的這些代碼是什麼意思,點擊右鍵

提示:專業人士才能看懂的

B. 如何閱讀TensorFlow源碼

①.在讀書的過程中,遇到有趣的、有疑問的、重要的等等地方就記錄下來。以備份查閱。
②.在讀書的過程中有自己結合已有的知識而總結出來的結論的,一定要記錄下自己是如何導出這個結論的
③.做讀書筆記,也可以等你看完一整章節的時候憑借回憶來做筆記

C. 為什麼以及如何閱讀源碼

對於這些問題,說到底主要是因為經驗不夠,而經驗主要從項目實踐中積累,所以招聘單位一般都會限定工作時間大於 3 年,因為這些人的項目經驗相對較豐富,項目中遇到的場景相對較多。
工作經驗的積累來自於年限與實踐,然而看源碼可以擴展我們的思路,這是變相增加我們經驗的不錯方法。雖然不能短時間內通過時間積累經驗,但是可以通過學習開源框架、開源項目來獲取。
另外進職場後一般都要先熟悉現有系統,如果有文檔還好,沒文檔的話就得自己去翻代碼研究。如果大家之前對閱讀源碼有經驗,那麼在研究新系統的代碼邏輯時就不會那麼費勁了。

D. 如何讀項目代碼

(再沒有文檔這個總是有的吧?哪怕是個代號) 2.這個項目的性質 3.源代碼的規模 有多少行(其中有多少行是注釋),總共有多少個文件(每一類文件分別有多少個,每個文件是多少行) 如果是面向對象的,有多少個class,如果是面向過程的有多少個function 4.功能的詳細整理功能列表函數名 功能 功能描述 5.功能模塊之間的關系 (哪怕沒有注釋,按名稱,調用關系一定能整理清楚) 如果你把我上面列的5點搞清楚了,再來抱怨,我想應該是下面這個樣子: 老大給了我一個項目源碼讓我看,注釋都沒有,是一個超級留言本,總共有10萬行代碼,就兩個文件,函數不到10個,功能就是注冊和留言,連修改刪除功能都沒有,大家說我看這樣的代碼有意思嗎?我是不是還要待在這里?如果你完成了我上面說的5步,你仍然覺得沒什麼值得學的,沒有什麼需要做的,說明你不適合干編程這一行。下邊呢就具體的介紹一下心得。當我們學習程序編碼時,首先會看一些程序代碼例子,然後學例子去修改編寫代碼;當我們剛進入一個公司,公司會把要維護修改的項目分給我們,讓我們修改維護,要想修改編寫,首先要讀懂項目主要程序;當我們去看一些優秀的開源項目,想從中學習這些項目的設計思想時,我們也要去看項目代碼…如此等等,可以說讀代碼是為了寫代碼,寫出非常優秀的代碼。因此對於程序開發人員來說,快速閱讀項目代碼是一個必需要掌握的能力。前段時間,我接手了一個php做的系統,公司要求我參閱這個項目重新做一個Demo,在讀這個系統代碼時,我積累了一些關於讀項目代碼的心得體會,主要內容如下。 清楚主要功能 想一想如何實現 首先要清楚項目的主要功能,知道它主要是干什麼用的,才可能從總體上去把握項目。可以通過向公司同事或其他人請教、或查閱項目需求分析文檔,概要設計文檔來快速獲得項目主要功能,如果沒有這些文檔,可以在網上搜索項目的功能,如果以上這些都沒有條件的話,那隻有把此項目運行起來,通過自己的實際操作來得到項目的主要功能了。清楚項目主要功能後,自己首先想一想,如果讓我做,該如果去實現呢,這樣能夠得到對自己來說的技術難點,讀源代碼時會更留意這些內容,效率也就提高上去了。 運行項目 找到實現主要功能的代碼 清楚主要功能以後,就可以去讀實現主要功能的代碼了,當然還需要找到這些功能是在那些文件,那些類來實現的。為了找到實現類,我們還要把項目運行起來,依據項目類型及特點,通過不同方法找到實現類代碼。把這些文件記錄下來,隨後只需重點看這些文件中的代碼,就可以了。 依據代碼的類層次關系 了解項目體系結構 通過其他一些工具把這些代碼的類圖導出來,比如(rational rose或powerdesigner的逆向工程),如果是java項目還可以導出Javadoc。依據導出的內容,了解每一個主要實現類的大致功能,及這些類之間相互關系,這樣也就清楚了項目的類層次結構,即項目體系結構。 清楚項目主要實現技術 依據導出的類圖和對項目了解的疑點,如果是技術方面,比如自己不知道或不清楚該怎麼實現某種功能,那就趕緊參照源代碼,找到項目主要實現技術。如果對此技術不熟悉,那就快快在Bai或Google上面搜索一把,ok,一定會很多關於此技術的資料等著你去看呢,抓緊閱讀這些資料,盡快掌握此技術的內容。 調試主要實現類,從中了解實現細節 了解了項目的體系結構,並清除項目主要實現技術後,下一步就是看實現細節了。看實現細節,也是從整體到局部,從看各個方法聲明出發,在逐步看每個方法體。當然沒有必要每個方法都要去一行一行看,只需重點看與實現此類主要功能的核心方法。對某些代碼看過一兩編後,還是很迷茫的話,沒有關系,調試一把,看看它終究是有何作用。調試有很多中,最終要的是一步一步跟蹤,但是有些語言編寫的代碼很難用這種方式做,比如(javascript或applet),那就把一些重要的變數輸出出來。了解了主要功能代碼的主要方法後,可以基本上說我們已經看懂了項目的代碼,把握了項目的整體架構。 修改代碼來滿足自己需求 看懂了項目代碼,最後一步就是根據需要,來修改項目代碼,滿目我們的需要了。以上就是我在看項目代碼中的總結,當然,如果項目非常功能很少,沒有使用什麼復雜技術的話,了解體系結構和清楚項目主要實現技術就可以跳過了,根據實際,直接需要去看源代碼就可以了。

E. 如何讀JAVA源碼

最好下個編輯器,editplus,gvim之類的,我用的是gvim,當然有myeclipse之類的軟體就更好,將代碼引進去,然後從主類開始,先看一遍主類,大體知道是幹嘛的就好了,然後再細看,從上到下,當看到新類時,再轉過去看那個類,看懂了再回主類繼續,

F. 如何有效地閱讀PyTorch的源代碼

最近剛開始使用theano, 經驗不多,連個基本的模型都跑不通,於是去看了下Keras,源碼比較簡潔,可以當作theano的示例教程來看,感受如下:
文檔看似很全,每個layer是幹啥的,每個參數是啥都寫了,但是不去讀代碼,實際很多人是無法從文檔理解其具體用法的。這點看issue里的討論里可以看出。同樣,example似乎很多,而且都能直接run,還都是real world的數據集,看似很好,但是實際上,對於新手,如果需要的模型跟example里的不完全一樣,不容易搞懂到底需要把輸入輸出的數據搞成啥格式。舉個例子,example都是做的classification的,沒有做sequence labeling的例子,如果想拿來做個pos tagging,不知道數據如何組織。當然,這些其實花一天讀下代碼或者好好翻翻issue討論就可以解決了,但我相信不少人不會去認真讀代碼或者看討論,而是直接換個工具。我感覺目前的doc只有懂了代碼的人才能看懂,不懂得看文檔還是沒啥用。
2.項目很簡單所以開發者不多,但是很活躍,每天都有新東西加進去。今天增加了一個新的分支後端可以用theano或者tensorflow了,不過貌似由於不支持scan,backend用tensorflow的沒實現recurrent layer。他們也意識到文檔的問題,覺得需要為小白用戶多加點tutorial而不是光給develop看。
我沒用過其他的framework,僅說keras拿來學習theano基本用法,很不錯
庫本身的代碼,比較簡單易讀,我作為python菜鳥,也能看懂。目前model有sequential和grapgh兩種,前者並不是指recurrent而是說網路是一層層堆的(也包括recurrent).其他的主要概念包括layer,regularizer, optimizer,objective都分離開。layer用於build每層的輸出函數,model會用最後一層的輸出,根據objective和每個layer的regularizer來確定最終的cost,然後在update時用optimizer來更新參數。把這四個看下加上model里的fit函數,就會用theano啦。很多模型都能cover,seq2seq這種也有現成的可用。建議不要光看example,多看看github上的 issues討論,實在找不到,直接提問。效率方面,我不懂theano怎麼優化,感覺keras的這種封裝,沒什麼成本,跟自己用原生theano是一樣的。當然,theano本身就好慢啊。。估計是我不懂用吧。。
用於測試函數式返回的數值是否有錯。如果有錯,該函數返回

G. 怎樣讀取html文件源碼

代碼如下:


function readHTML(){

$.ajax({

async:false,

url : "aa.html「,

success : function(result){

alert(result);

}

});

}


async:false,這個是做與其他的js同步的,若為true或不填將會先運行同級別的其它代碼,也就是說這里的result為空,只有其它代碼執行完畢後才會運行裡面的東西,result才會有值,這通常不是所需要的


表達的可能不是很清楚,自己做個測試就明了了,這是介紹此屬性的一個詳細的例子:http://www.cnblogs.com/wlmemail/archive/2010/06/22/1762765.html


註:這是使用的jQuery


使用js的話是下面的代碼

復制代碼 代碼如下:


var xmlhttp;

if (window.XMLHttpRequest) { // 兼容 IE7+, Firefox, Chrome, Opera, Safari

xmlhttp = new XMLHttpRequest();

}

else { // 兼容IE6, IE5

xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

}

xmlhttp.onreadystatechange = function() {

if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {

document.getElementById("myDiv").innerHTML = xmlhttp.responseText;

}

}

xmlhttp.open("GET", "aa.html", true);

xmlhttp.send();


myDiv是你輸出的位置,這個是定義在了頁面上的一個div




http://www.jb51.net/article/41454.htm

H. 如何閱讀源代碼 uboot

可以用sourceinsight工具,比較方便。

I. 如何正確的閱讀源代碼

除了閱讀代碼以外, 沒有更好的方法. 7.在尋找bug時, 請從問題的表現形式到問題的根源來分析代碼. 不要沿著不相關的路徑(誤入歧途). 8.我們要充分利用調試器|編譯器給出的警告或輸出的符號代碼|系統調用跟蹤器|資料庫結構化查詢語言的日誌機制|包轉儲工具和Windows的消息偵查程序,
定出的bug的位置. 9.對於那些大型且組織良好的系統, 您只需要最低限度地了解它的全部功能, 就能夠對它做出修改. 10.當向系統中增加新功能時, 首先的任務就是找到實現類似特性的代碼, 將它作為待實現功能的模板. 11.從特性的功能描述到代碼的實現, 可以按照字元串消息, 或使用關鍵詞來搜索代碼. 12.在移植代碼或修改介面時, 您可以通過編譯器直接定位出問題涉及的范圍, 從而減少代碼閱讀的工作量. 13.進行重構時, 您從一個能夠正常工作的系統開始做起, 希望確保結束時系統能夠正常工作. 一套恰當的測試用例(test
case)可以幫助您滿足此項約束. 14.閱讀代碼尋找重構機會時, 先從系統的構架開始, 然後逐步細化, 能夠獲得最大的效益. 15.代碼的可重用性是一個很誘人, 但難以理解與分離, 可以試著尋找粒度更大一些的包, 甚至其他代碼. 16.在復查軟體系統時, 要注意, 系統是由很多部分組成的, 不僅僅只是執行語句. 還要注意分析以下內容:
文件和目錄結構|生成和配置過程|用戶界面和系統的文檔. 18.可以將軟體復查作為一個學習|講授|援之以手和接受幫助的機會. ++++++++++++++++++++ 第二章: 基本編程元素 ++++++++++++++++++++ 19.第一次分析一個程序時, main是一個好的起始點. 20.層疊if-else if-…-else序列可以看作是由互斥選擇項組成的選擇結構. 21.有時, 要想了解程序在某一方面的功能, 運行它可能比閱讀源代碼更為恰當. 22.在分析重要的程序時, 最好首先識別出重要的組成部分. 23.了解局部的命名約定, 利用它們來猜測變數和函數的功能用途. 24.當基於猜測修改代碼時, 您應該設計能夠驗證最初假設的過程. 這個過程可能包括用編譯器進行檢查|引入斷言|或者執行適當的測試用例. 25.理解了代碼的某一部分, 可能幫助你理解餘下的代碼. 26.解決困難的代碼要從容易的部分入手. 27.要養成遇到庫元素就去閱讀相關文檔的習慣; 這將會增強您閱讀和編寫代碼的能力. 28.代碼閱讀有許多可選擇的策略: 自底向上和自頂向下的分析|應用試探法和檢查注釋和外部文檔, 應該依據問題的需要嘗試所有這些方法. 29.for (i=0; i 30.涉及兩項不等測試(其中一項包括相等條件)的比較表達式可以看作是區間成員測試. 31.我們經常可以將表達式應用在樣本數據上, 藉以了解它的含義. 32.使用De Morgan法則簡化復雜的邏輯表達式. 33.在閱讀邏輯乘表達式時, 問題可以認為正在分析的表達式以左的表達式均為true; 在閱讀邏輯和表達式時, 類似地,

J. 如何閱讀源碼包

在Eclipse查看開發包jar源碼的方法如下:
1.選擇項目,右鍵中單擊【Properties】
2.【Java Build Path】-【Configure Build Path】-【Libraries】,在下面找到如:Guava-r09.jar包,展開它,選擇【Source attachment】,單擊右邊的【Edit…】按鈕。
3.在打開的窗口中,可選擇文件(jar\zip),目錄或工作空間中的jar文件,在這里我選擇External Folder…,選擇如E:/java project/guava即可。

4.連續單擊【OK】兩次回到Eclipse工作平台即可。

有源碼,把它加到eclipse中:

方法1:直接用壓縮軟體打開相應的jar包,然後把源碼拖進去壓縮一下,最後選中工程刷新一下ok。

方法2:右擊referenced

熱點內容
蘋果手機怎麼裝安卓耳機 發布:2024-09-25 03:23:48 瀏覽:741
linuxgcc64位 發布:2024-09-25 03:14:19 瀏覽:742
文件夾恢復軟體免費版 發布:2024-09-25 03:14:14 瀏覽:713
雅閣空調壓縮機多少錢 發布:2024-09-25 03:13:38 瀏覽:22
手機在哪裡找到解鎖密碼 發布:2024-09-25 03:09:21 瀏覽:995
宏被默認腳本 發布:2024-09-25 03:04:27 瀏覽:705
交叉編譯x264 發布:2024-09-25 02:58:59 瀏覽:437
安卓手機cpu關閉後怎麼打開 發布:2024-09-25 02:47:56 瀏覽:33
什麼配置的電子垃圾最好 發布:2024-09-25 02:41:57 瀏覽:526
如何租用雲伺服器挖fil 發布:2024-09-25 02:21:19 瀏覽:614