国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

閱讀源碼的三種境界

企業動態
"源碼應該怎么閱讀,我曾經嘗試閱讀一些源碼,例如alibaba的druid中sqlparser部分,spring-mvc,但是發現很吃力,都說debug是最好的閱讀方式,我在debug時經常有跟丟的現象……就是走著走著感覺好像進入了一些我當前不太關注細枝末節。 "

 "沒有經驗的技術差底子薄的初級程序員,如何閱讀項目源碼? "

"有人閱讀過 mybatis 的源碼嗎 ?就看一個初始化過程就看的已經頭暈眼花了,小伙伴們支支招吧!"

"源碼應該怎么閱讀,我曾經嘗試閱讀一些源碼,例如alibaba的druid中sqlparser部分,spring-mvc,但是發現很吃力,都說debug是***的閱讀方式,我在debug時經常有跟丟的現象……就是走著走著感覺好像進入了一些我當前不太關注細枝末節。 "

。。。。。。

估計很多人都有這樣的疑惑。

我非常能理解小伙伴們的痛苦,因為我也是這么痛苦著走過來的。

閱讀優秀源碼的好處想必大家都知道,學習別人優秀的設計,合理的抽象,簡潔的代碼...... 總之是好處多多。

但是真的把龐大的代碼放到你的面前,就如同一個巨大的迷宮,要在其中東轉西轉尋出一條路來,把迷宮的整個結構搞清楚,理解核心思想,真心不容易。

在閱讀由面向對象的語言如Java寫的代碼時,會發現接口和具體的實現經常對應不起來,不太清楚一個功能到底是怎么在哪個實現類中才能找到。  不像C語言,就是函數調用函數,相對還好點。

如果是動態語言如Ruby,Python, 一個變量的類型甚至都不容易知道,閱讀的難度大大增加。

還有一個重要的原因,現在我們看到的源碼基本上都經過若干年發展、經過很多人不斷地完善的,枝枝蔓蔓非常多,魔鬼都在細節中。  閱讀的時候很容易陷進去, 看了幾十層函數調用以后,就徹底懵了,就放棄了: 甭管你把源碼吹得天花亂墜, 老子再也不看了。

經過很多痛苦的掙扎以后,我也算有一些成功的經歷,今天用治學的三個境界來類比, 給大家分享一下:

昨夜西風凋碧樹,獨上高樓,望盡天涯路

想把源碼搞懂,吃透,首先得登高望遠,瞰察路徑,明確目標與方向,了解源碼的概貌。

所以有些準備工作必須得做。

1. 閱讀源碼之前,需要有一定的技術儲備。

比如設計模式,在很多Java源碼中幾乎就是標配,尤其是這幾個:模板方法,單例,觀察者,工廠方法,代理,策略,裝飾者。

再比如閱讀Spring源碼,肯定得先了解IoC是怎么回事,AOP的實現方式,CGLib,Java動態代理等,自己動手,寫點相關的代碼,把這些知識點掌握了。

2. 必須得會使用這個框架/類庫, ***是精通各種各樣的用法。

上面剛提過,魔鬼都在細節中,如果有些用法根本不知道,可能你能看明白代碼是什么意思,但是不知道它為什么這些寫。

3. 先去找書,找資料,了解這個軟件的整體設計。

都有哪些模塊? 模塊之間是怎么關聯的?怎么關聯的?

可能一下子理解不了,但是要建立一個整體的概念,就像一個地圖,防止你迷航。

在讀源碼的時候可以時不時看看自己在什么地方。

4. 搭建系統,把源代碼跑起來!

相信我,Debug是非常非常重要的手段, 你想通過只看而不運行就把系統搞清楚,那是根本不可能的!

衣帶漸寬終不悔,為伊消得人憔悴。

5. 根據你對系統的理解,設計幾個主要的測試案例,定義好輸入,輸出。

運行系統,慢慢地debug ,一步步地走,這是個死功夫,沒有辦法繞過。

Debug一遍肯定是不行的,需要Debug很多遍。

***遍盡可能拋棄細節,抓住主要流程, 比如有些看起來不重要的方法就不進去看了。

第二遍、第三遍....再去看那些細節。

一個非常重要的工作就是記筆記(又是寫作!),畫出系統的類圖(不要依靠IDE給你生成的), 記錄下主要的函數調用, 方便后續查看。

文檔工作極為重要,因為代碼太復雜,人的大腦容量也有限,記不住所有的細節。 文檔可以幫助你記住關鍵點, 到時候可以回想起來,迅速地接著往下看。

要不然,你今天看的,可能到明天就忘個差不多了。

給大家看看我做的一些筆記, 格式不重要,很隨意,方便自己看懂就行。

6. 主要的測試案例搞明白了,豐富測試案例,考慮一些分支流程。

繼續Debug......

總之,靜態地看代碼 + 動態地debug (從業務的角度), 就會慢慢揭開這個黑暗森林的面紗。

這一步會非常非常地花費時間,但是你做完了,對系統的理解絕對有質的飛躍。

眾里尋他千百度,驀然回首,那人卻在燈火闌珊處。

沒有千百度的上下求索,不會有瞬間的頓悟和理解,衷心祝愿閱讀源碼的朋友們都能達到這一境界。

***一點,也是最關鍵的一點: 要能堅持下去。

我不是一個聰明人, 但是笨人自有笨辦法:什么事都架不住不斷的重復,一遍看不明白,再來第二遍, 兩遍搞不明白,再來第三遍......

可能有人要問: 你怎么能這么堅持地刨根問底呢?

答案就是好奇心: 這玩意兒到底是怎么實現的?!

【本文為51CTO專欄作者“劉欣”的原創稿件,轉載請通過作者微信公眾號coderising獲取授權】

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 碼農翻身
相關推薦

2010-06-12 11:03:02

UML應用

2011-01-18 15:35:59

jQueryJavaScriptweb

2010-09-24 19:18:22

SQL索引

2015-09-14 09:31:44

結對設計

2012-07-17 09:16:16

SpringSSH

2013-04-01 09:55:03

OpenStack存儲

2022-05-30 07:07:35

Java監聽文件Java 8

2022-06-20 08:50:16

TypeScript類型語法

2010-09-25 14:38:29

SQL分頁

2009-07-16 16:23:59

Swing線程

2010-10-28 10:27:35

oracle賦權

2018-06-29 10:54:11

云部署策略公共云

2009-09-25 15:58:04

Hibernate對象

2009-09-24 11:17:32

Hibernate查詢

2009-07-08 12:56:32

編寫Servlet

2009-08-26 18:10:44

C# using的用法

2020-11-01 17:10:46

異步事件開發前端

2023-10-13 00:00:00

Redis模塊空間對象

2021-08-10 10:14:14

存儲接口存儲設備存儲

2022-05-27 11:33:02

前端代碼設計模式
點贊
收藏

51CTO技術棧公眾號

美女网站在线看| 99热一区二区三区| caoporn-草棚在线视频最| 亚洲无人区一区| 欧美三级一级片| 国产精品影音先锋| 日韩偷拍一区二区| 国产日韩专区| 国产经品一区二区| 一个色综合网| 懂色一区二区三区av片| 天天做天天爱天天综合网| 国产不卡在线观看| 精品中文一区| 国产伦精品一区二区三区精品视频| 欧美美女黄色| 国产精品第一视频| 91综合网人人| 国产传媒一区| 国产精品普通话对白| 欧美精品一区在线| 免费观看久久久4p| 久久久久99精品成人片| 不卡视频一二三四| 久久午夜夜伦鲁鲁一区二区| 国产精品久久久久久户外露出 | 日日夜夜精品网站| 亚洲永久在线| 一区二区在线观| 成人免费视频播放| 少妇高清精品毛片在线视频| 亚洲国产精品激情在线观看| 成人亚洲一区二区三区| 亚洲国产精品一区二区尤物区| 在线观影网站| 欧美成人猛片aaaaaaa| 日本成人三级电影| 欧美激情视频一区二区三区不卡| 你懂的一区二区三区| 国产欧美综合精品一区二区| 久久综合九色综合欧美狠狠| 国产精品久久久影院| 国产欧美日本一区二区三区| 中文在线网在线中文| 91精品婷婷国产综合久久竹菊| 羞羞污视频在线观看| 国产一区二区成人| 综合亚洲自拍| 欧美日韩一区在线视频| 国产成人免费在线视频| 激情视频国产| 91精品国产色综合久久久蜜香臀| 欧美大片1688网站| 国产精品美女久久| 日韩国产高清在线| 男人靠女人免费视频网站| 亚洲午夜久久久久久久久电影网 | 天天综合狠狠精品| 99精品国产在热久久| 国产91成人在在线播放| 亚洲字幕一区二区| 免费人成网站在线观看欧美高清| 久青草视频在线播放| 一区二区三区四区在线播放 | 久久久久久久久一| 青青草在线免费视频| 亚洲第一区在线| 国产精品115| 国产精品二区二区三区| 丁香啪啪综合成人亚洲小说| 在线人体午夜视频| 亚洲视频专区在线| 97国产成人高清在线观看| 久久久久福利视频| 亚洲成人精品影院| 嫩草伊人久久精品少妇av杨幂| 成人在线国产精品| 91网站视频在线观看| 二人午夜免费观看在线视频| 欧美超级乱淫片喷水| 免费看黄裸体一级大秀欧美| bdsm在线观看播放视频| 亚洲美女av在线播放| 久久精品亚洲欧美日韩精品中文字幕| 久久www视频| 欧美另类z0zxhd电影| 小说区图片区色综合区| 激情六月天婷婷| 婷婷六月综合网| 亚洲五码在线| 男女爱爱视频网站| 色妹子一区二区| 色狼人综合干| 欧美二区在线视频| 日韩一区二区在线观看| 精品久久久中文字幕| 国产av无码专区亚洲精品| 亚洲电影第1页| 国产日韩一区二区三区在线| 亚洲人成小说| 国产精品美女久久久久av超清| av亚洲精华国产精华精华| 婷婷av在线| 51国偷自产一区二区三区的来源| 中文字幕中文字幕一区| 成人av在线播放| 妞干网在线观看视频| 日韩精品免费视频| 午夜综合激情| 日本亚洲精品| 成人免费在线一区二区三区| 亚洲丶国产丶欧美一区二区三区| 久久久久久毛片免费看| 无码aⅴ精品一区二区三区浪潮 | 成年人黄视频在线观看| 91aaaa| 午夜精品一区二区三区三上悠亚| 国产精品超碰| 午夜激情福利在线| 久久av中文字幕| 国产白丝精品91爽爽久久| 久草在线新免费首页资源站| 日韩精品成人一区二区在线观看| 7777精品伊人久久久大香线蕉超级流畅 | 我看黄色一级片| 自拍偷拍亚洲一区| 久久成人久久爱| av免费在线视| 亚洲三级一区| 亚洲精品第一页| 久久成人综合网| 特黄毛片在线观看| 欧美xxxx吸乳| 一区国产精品视频| 95精品视频在线| 日韩在线观看一区二区三区| 久久国产精品视频在线观看| 中文字幕欧美亚洲| 91久色porny| 国产精品毛片av| 91破解版在线看| 日韩精品五月天| 亚洲bt欧美bt精品777| 香蕉视频在线播放| 日韩精品福利网| 99色在线观看| 少妇久久久久久被弄到高潮| 在线观看国产精品日韩av| 国产成人久久精品77777最新版本| 调教视频vk| 又黄又爽在线免费观看| 国产毛片久久久久久国产毛片| 欧美最顶级a∨艳星| 成人精品久久久| 日本二三区不卡| 国产日韩亚洲欧美精品| a国产在线视频| 免费成人午夜视频| 日本人成精品视频在线| 色老汉一区二区三区| 国产欧美日韩一区二区三区在线| 久操免费在线| 水蜜桃色314在线观看| 午夜精品理论片| 午夜精品福利一区二区蜜股av| 亚洲激情视频| 成人久久网站| 美日韩在线观看| 欧美日韩高清在线一区| 中文字幕精品www乱入免费视频| 亚洲人吸女人奶水| 奶水喷射视频一区| 欧美经典一区| 视频二区在线| 看一级黄色录像| 91精品国产色综合| 欧美理论片在线| 久久综合九色综合久久久精品综合 | 国产精品久久7| 亚洲欧美www| 国产精品九色蝌蚪自拍| 亚洲视频综合| 国产 日韩 欧美一区| 嫩草懂你的影院| 一区二区三区国产福利| 欧美在线观看日本一区| 欧美一区二区在线免费观看| 95精品视频在线| 精品99视频| 日韩三级av高清片| 免费在线看黄| 嫩草影院在线观看网站成人| 美国av一区二区三区| 午夜精品一区二区三区av| 欧洲色大大久久| 26uuu成人网一区二区三区| 国产亚洲欧洲| 北条麻妃国产九九九精品小说| 欧美日韩激情电影| 欧美成人精品一区二区男人看|