Memcache原始碼閱讀(1) 看原始碼的心得

2021-07-25 11:00:32 字數 839 閱讀 2535

我這是第一次看原始碼。說不上什麼心得,不過也總結一下~

我覺得閱讀乙個專案的原始碼,應該是先知道這個專案具體怎麼用之後,先估計一下作者的實現,然後再看原始碼來驗證自己的想法。

我這次閱讀原始碼是在沒有用過這個專案的前提下閱讀的,一開始的時候不知道從何讀起,於是就去網上找別人的部落格,跟著別人的博文一篇一篇的看,然後自己對著原始碼看。慢慢的自己就開始知道要看什麼了,就不再跟著別人的博文的步驟來,自己想知道那個功能是怎麼實現的,然後就找到對應的函式,看看作者是怎麼實現的。可是這樣到後來我看著作者的**,卻不知道使用者的輸入是什麼,也就不知道作者為什麼要那樣處理輸入。

比如說看到作者處理使用者的命令的時候看得不懂,因為我根本不知道使用者的命令會是什麼,所以,在看源**之前,最好就是熟悉一下這個專案的用法。

還有就是,一開始看原始碼的時候就是先看大概,怎麼處理使用者的請求,怎麼儲存,怎麼管理記憶體等等,這些內容可以先通過網上的部落格的講解來了解,對這個專案有個大概的印象會對我們看源**很有幫助。不要一開始就看**細節,**細節一開始看估計也看不懂吧?

比如說,我們可以先看看memcache關於記憶體管理的部落格,很多部落格都會有比較畫出比較形象的圖來表示出記憶體如何管理的,我們先對它的記憶體管理有個印象,然後再自己看源**的實現。這樣會比直接看原始碼好多了,因為直接看原始碼看到乙個結構體那麼多變數,都不知道他們什麼用,一時就懵了。記憶體管理的部落格的例子,下圖是引用這個部落格的~

乙個圖是不是比自己看結構體的變數要清晰的多?我們要站在巨人的肩膀上~~~

開源專案一般都會有多個版本,我覺得一開始就應該看比較老的版本,因為老版本一般都是比較簡單,功能比較少,相對容易看懂。先看那些老版本知道這個專案具體要實現什麼功能,看完老版本之後如果還有興趣看看一些較新的功能,再看新的版本,我覺得這樣會比較好。

OpenCV原始碼閱讀 1

開始從讀取檔案的函式說起,這裡主要有兩個函式用於讀取影象的 實際上,當我們在做數字影象處理系統的時候,主要要考慮的也是怎麼讀乙個進來。第乙個函式 cvloadimage主要是用於返回乙個iplimage 的資料結構。第二個函式 cvloadimagem主要是用於返回乙個cvmat 的資料結構。實際上...

Spring 原始碼閱讀(1)

這週在學習spring的原始碼,常常迷失在 森林中,因為英語水平不高,常常需要借助google翻譯幫忙解釋注釋,所以速度比較慢。下面是我模擬spring的解析xml,依賴注入的過程,比較簡略。node node nodes.item i if node instanceof element claz...

spring原始碼閱讀(1)

spring核心是ioc和aop,aop的底層是 實現。分為兩種 jdk動態 和cglib 區別 動態 被 物件是要實現乙個介面,類首先要拿到這個介面,來進行強制轉換,通過反射來生成 物件 public class meipo implements invocationhandler overrid...