精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

程序員提高閱讀代碼能力的幾個方法

開發 前端
有小伙伴問:如何能快速提升編程能力?這感覺永遠沒有正確答案,每個人都有自己的套路,今天就來聊聊我對這個問題的看法。

 [[417754]]

有小伙伴問:如何能快速提升編程能力?這感覺永遠沒有正確答案,每個人都有自己的套路,今天就來聊聊我對這個問題的看法:

學會高效讀代碼,就是一個不錯的辦法。閱讀代碼,可能和寫代碼一樣重要!

為什么要會讀代碼?

考慮這樣一些場景:

  • Case 1: 你還在讀書,照著教程,照著例子,學習編程。剛開始,大概率是先讀別人的代碼,理解別人的代碼,而非一上來,就開始寫。

這是我YY的一個學寫代碼的學習模型,所以讀了,理解了,在自己就可以發揮了,然后書本上、他人的知識,就流進了自己的腦瓜了。

  • Case 2: 一個職場新人,一進公司,就加入一個項目組,那項目代碼真是海了去了!然后老大可能給你一個小小的活,在現有基礎上,添加一個小功能。項目經驗少的童鞋,一下就傻眼了,特么的,這代碼這么多行,文件幾百上千!該從何入手呢?別說改了,看都看不懂!完了,試用期是不是就要被干掉?!

  • Case 3 :  你進了一個小公司,技術管理混亂,前任已閃人,你受命接任一個一坨翔一樣的項目,那代碼寫的真是云里霧里,工期又緊,老板又逼著出貨,怎么辦?閃人?可是下家會更好么?跳槽往往是從一個坑里,跳到另一個坑里。所以讀吧,總是要讀的。。。

  • Case n: ......

學校往往教授的是如何寫代碼,可能從沒有教如何讀代碼。

然而,理想很豐滿,現實很骨感!工作中,你寫代碼的時間可能只占工作時間很少很少的一部分,大部分時間你可能都是在閱讀已有的代碼,當然除非這個項目從0到1都是你一個人干,可即便是自己寫代碼,也是漸進增長、不斷迭代的,也需要不斷反復閱讀自己寫的代碼。

再者,編程與寫文章,有異曲同工之處。編程與寫作相似之處,都是用語言表達寫作者的想法。

對于如何提升寫作,古人曾講: 熟讀唐詩三百首,不會作詩也會吟 。回想學生時代,老師也常說: 讀書破萬卷,下筆如有神! 強調寫作需要大量閱讀,讀的多了,寫作能力也會相應提升。閱讀之于寫作,相輔相成,互為促進。

那么大量閱讀別人的代碼,也能提升自己的編程水平。閱讀代碼,個人覺得會有這樣些好處:

博采眾長

優秀的源碼,就如傳世佳作一樣,值得反復揣摩,細細品味。其編寫技巧、設計范式、架構思想,都具有極大的學習借鑒價值。比如一些優秀的開源項目:Linux內核、lwIP、u-boot等等。這些作品都匯集了全球優秀頂級程序員的思想智慧。都是非常優秀的作品,廣為流傳,廣為應用。如果能花些時間去閱讀理解一下其代碼,一定是大有裨益的。

正如牛頓所說: 如果我能比別人看的更遠,只因為我站在巨人的肩上。

解決難題

編程生涯中,總會遇到一些感動束手無策的場景。github,搜索都已無能為力的時候。如果說還沒遇到,那一定是機緣未到~

比如做Linux編程的時候,遇到某個API出錯,或許在網上查找半天,都找不到答案。實在找不到答案了,嘗試讀一讀內核底層相關代碼,有時候就能發現問題的原因。

開闊視野

很多時候,日常工作內容或許只是很小的領域,修復一些小的bug,修改一些小的功能等。如果只專注這些小的點,個人成長一定會受到局限。

如果能善于發現一些新的感興趣的領域,并去閱讀相關的代碼,則一定會提升自己的編程能力的。

所以為什么要讀代碼呢?

  • 找bug

  • review別人的代碼

  • 學習

  • 維護等

如何閱讀代碼呢?

這里聊聊我的一些體會,也未必都對,也未必適合其他的朋友。分享以作交流,如有其他想法,也歡迎大家留言交流。

先粗后細

我一般拿到一份別人的代碼,會先去找這個項目的入口,先梳理個大概的脈絡。如單片機程序,一般會從下面幾個角度先掃一遍:

  • main在哪里?

  • 開了幾個任務?

  • 哪些是關鍵任務,主要功能鏈是怎么樣的?

  • 任務間如何協作的?任務的執行周期是如何安排的?

  • 使用哪些硬件外設?

  • 使用了哪些中斷?中斷與哪些任務發生了交互?

  • 從軟件角度看,大致有哪些子系統?

  • 是否有關鍵算法?

  • 是否使用開源組件?

  • ......

先不關心很細的函數具體怎么寫,數據結構是如何設計的?這樣,我大致能先有一個總體認識,然后在對自己感興趣的進行細讀。當然如果是review別人的代碼則就另當別論了。

如果是Linux應用程序,或者C++應用程序,我也大致采用差不多的思路,先讀個大概,然后再細讀。比如對一個Linux應用程序,會先了解這些方面的概要信息:

  • 入口在哪個文件?一般都是main函數。

  • 是否支持命令行傳啟動參數?

  • 是否是守護進程?

  • 開了哪些線程?

  • 大致有哪些子系統?

  • 使用了哪些開源組件?

  • 是否使用驅動,是否有通訊等?

  • ......

如果項目采用cmake或者makefile進行組織的,那么先閱讀下makefile也會是了解項目概要信息的一個比較好的切入點。

善做筆記

在閱讀代碼的概要信息的時候,我比較喜歡做做筆記,畫畫圖。在閱讀代碼的時候,我比較喜歡先去研究代碼中的數據結構。數據結構往往會體現作者抽象問題、對問題建模的一些思路,并使用UML圖畫出來,剛開始可能都不去看每個函數是怎么實現的,只關心與這些數據結構相關有哪些函數以及數據結構間關系。

“Bad programmers worry about the code. Good programmers worry about data structures and their relationships.”

— Linus Torvalds

或許,有的朋友會說,UML不會。不會沒關系,用你習慣自己能看懂的方式都可以,而且即便是用UML也不必過分糾結繪制的圖是否嚴謹。甚至拿支筆在筆記上手繪也可以。不過個人更建議,盡量寫電子筆記,更容易保存和查閱。

閱讀某一個具體函數時,如果函數內或者模塊內具有狀態機,如果這部分是需要仔細理解的時候,我就會將其狀態機圖,先繪制出來。比如,之前寫的modbus協議中的狀態圖:

這樣做有個好處,邊繪圖邊去理解代碼,就會加速對代碼的理解,對我來說,我如果只用兩只眼睛盯著看,和一邊看一比畫圖效率會低很多。

這樣做還有一個好處,可以將理解以圖的形式記錄下來,如果光用圖還不能表達清楚的時候,我還會再加點文字描述。時間過了很久之后,再來看代碼,可能之前的理解全忘了,可是如果有這樣一份圖文并茂的筆記,我就會很快找回記憶。

善用工具

比如source insght, vs code等工具,都是提高閱讀代碼效率的好工具。盡量熟悉如何使用鍵盤控制閱讀跳轉,用熟了,效率倍增。

另外,還有些工具,可以自動將代碼轉化成類圖等,比如visual studio,可以自動繪制類圖,Enterprise Architect也具有根據代碼生成類圖的功能。具有此類功能的軟件還有很多。有興趣可以搜索一下。

多多調試

如果遇到有的代碼,怎么看也理解不了。這時候可以試著加些打印日志,運行調試一下,也可以使用調試工具進行斷點、單步調試,觀察程序運行的軌跡,數據的變化情況,可能就找到了突破口。

或者嘗試對原有的代碼,做些小的修改,來印證理解,也是不錯的方法。

一個經常調試的程序猿,鍵盤上F10,F11這些鍵大都壞的比較快。

總結一下

把自己閱讀代碼的一些體會分享一下,每個人都會有適合自己的方法。利用適合自己的方法,高效的閱讀代碼,是提升編程的一個行之有效的辦法。

如果我講的這些,如對你有所啟發,也不妨點個贊或者再看,小小的鼓勵一下我。當然你如愿意擴散分享,那就感激不盡啦。

 

責任編輯:張燕妮 來源: 嵌入式客棧
相關推薦

2012-06-21 16:19:30

程序員

2017-11-20 22:28:43

程序員源代碼編程

2022-08-30 08:13:30

流程模板定期復盤數據

2012-04-23 10:08:42

JVM程序員

2020-12-07 11:29:24

ReactVueVue3

2015-11-24 16:33:05

程序員思考分享

2015-08-18 15:22:59

程序員成長階段

2021-05-29 07:32:14

優秀程序員代碼

2015-07-27 09:26:41

程序員

2014-07-29 09:55:33

程序員代碼可讀性

2021-09-28 09:57:50

程序員技能開發

2014-07-28 10:28:25

程序員

2021-06-02 05:47:32

程序員編程開發

2015-11-30 11:01:07

程序員閱讀源代碼

2015-11-30 08:57:07

源代碼閱讀程序員

2011-06-11 20:59:12

程序員

2012-09-13 09:47:01

程序員

2021-09-08 17:36:58

程序員技能開發者

2015-05-27 09:45:59

程序員

2012-11-30 11:29:05

高級程序員程序員
點贊
收藏

51CTO技術棧公眾號

欧美亚洲日本国产| 成人av在线播放网址| 中文字幕日韩av电影| 中文字幕22页| 黄毛片在线观看| 国产精品美女久久久久高潮| 99re在线观看视频| 五月婷婷视频在线| 91成人精品| 日韩精品日韩在线观看| 不卡中文字幕在线观看| 男人av在线播放| 亚洲天堂福利av| 免费日韩电影在线观看| av在线免费在线观看| 国产精品久久久久久模特| 日韩在线观看精品| 国产全是老熟女太爽了| 午夜精品在线| 欧美日韩三级一区| 久久久999免费视频| 成a人片在线观看| 国产视频在线观看一区二区三区 | 伊人国产在线观看| av一区二区在线播放| 欧美精品一区二区三区四区| 免费成年人高清视频| 国产精品伦理| 亚洲大片精品永久免费| 一级全黄肉体裸体全过程| 男女污视频在线观看| 岛国一区二区三区| 亚洲va欧美va国产综合剧情| 中文字幕欧美人妻精品| 性高湖久久久久久久久| 久久久久久久91| 欧美成人黄色网| 97偷自拍亚洲综合二区| 国产亚洲一区二区在线| v8888av| 成人精品毛片| 精品国产三级电影在线观看| 亚洲一区二区三区四区精品| 亚洲成人a级片| 欧美日韩国产综合一区二区三区| 能在线观看的av网站| 日韩大片免费观看| 日韩欧美a级成人黄色| 国产精彩视频一区二区| 白浆视频在线观看| 欧美日韩免费一区| 免费无码不卡视频在线观看| 大菠萝精品导航| 五月天激情综合| 国产免费观看高清视频| 蜜桃av在线| 欧美日韩一区二区免费在线观看| 欧美二区在线视频| 欧美大片高清| 欧美日韩国产高清一区| 午夜视频在线网站| 日韩最新av| 日韩美女一区二区三区四区| 任你躁av一区二区三区| 99re8这里有精品热视频免费 | 亚洲福利视频一区二区| 天堂8在线天堂资源bt| 国产精品一区hongkong| 亚洲二区在线观看| 一本色道无码道dvd在线观看| 欧美亚洲韩国| 制服丝袜亚洲播放| 无码人妻一区二区三区免费n鬼沢| 丁香婷婷成人| 精品无人区太爽高潮在线播放| 手机免费看av| 999久久久亚洲| 欧美日本在线视频中文字字幕| 久久精品视频日本| 美日韩精品视频| 国产在线高清精品| 丰满肥臀噗嗤啊x99av| 久久综合久久综合久久综合| 午夜精品亚洲一区二区三区嫩草| 国产视频在线播放| 亚洲成人手机在线| 少妇黄色一级片| 久久久久九九精品影院| 精品亚洲一区二区| 尤物在线免费视频| 午夜在线视频一区二区区别| 国产精品专区第二| 亚洲精品一级片| 欧美—级在线免费片| 今天免费高清在线观看国语| 中文字幕乱码在线播放| 欧美一区二区三区视频| 日本xxx在线播放| 1024精品久久久久久久久| 欧美亚洲国产日本| 国产黄色片网站| 久久久99精品久久| 日韩精品一区二区免费| 久久亚洲人体| 国产丝袜一区视频在线观看| 乱h高h女3p含苞待放| 蜜桃久久av| 国产一区二区免费在线观看| 免费人成在线观看播放视频| 欧美日韩亚洲系列| 美女流白浆视频| 91综合在线| 日韩免费观看高清| 好男人www在线视频| 国产精品不卡一区二区三区| 免费成人午夜视频| 亚洲精品在线播放| 波霸ol色综合久久| 午夜精品一区二| av电影一区二区| 成年丰满熟妇午夜免费视频| 国产欧美自拍| 亚洲人a成www在线影院| 日韩成人在线免费视频| 国产精品亚洲午夜一区二区三区| 亚洲欧洲日韩综合二区| 精品国产免费人成网站| 日韩成人在线观看| 国产一级片播放| 国产成人综合网站| 免费观看中文字幕| 国产情侣一区二区三区| 在线日韩中文字幕| 男人天堂视频网| 91麻豆123| 欧美精品99久久| 国产精品qvod| 久久久久久久久久久成人| av一区二区三| 亚洲在线观看免费| 国产精品日日摸夜夜爽| 一区二区三区四区日韩| 91精品免费看| 91高清在线观看视频| 91精品国产麻豆国产自产在线| 欧美另类69xxxx| 美日韩一区二区三区| 亚洲一区二区在| 欧美天堂在线| 久久伊人精品天天| 精品人妻一区二区三区浪潮在线| 亚洲精品高清在线| 国产xxx在线观看| 亚洲韩日在线| 久久久影院一区二区三区| xxxxx性欧美特大| 亚洲欧洲偷拍精品| 黄色av一区二区| 国产精品久久久爽爽爽麻豆色哟哟 | 18视频免费网址在线观看| 欧美日韩一区二区在线观看| 神马午夜精品91| 国产成人综合在线观看| 欧美精品一区二区三区三州| 色狠狠久久av综合| 国产精品影片在线观看| 成人影院在线观看| 亚洲第一精品久久忘忧草社区| 日韩成人免费在线视频| 国产亚洲精品aa午夜观看| 亚洲国产高清av| 综合国产在线| 精品免费国产| 99精品国自产在线| 欧美成人一区在线| 五月天福利视频| 在线免费观看日本一区| 国产探花在线视频| 不卡一区二区三区四区| 成人精品视频一区二区| 中文在线播放一区二区| 久草一区二区| 在线视频成人| 97超级碰在线看视频免费在线看 | 亚洲国产一区二区三区网站| 欧美一级大胆视频| 免费看美女视频在线网站| 亚洲国产精品小视频| 自拍偷拍福利视频| 亚洲专区一二三| 国产jk精品白丝av在线观看| 国产成人免费视频| 手机看片福利盒子久久| 在线欧美亚洲| 亚洲欧美丝袜| 欧美黑人做爰爽爽爽| 成人午夜在线观看| 日韩精选视频| 韩国视频理论视频久久| 日本在线观看www| 亚洲精品久久久久国产| 国产精品色综合| 色综合久久中文综合久久牛| 男人与禽猛交狂配| 日本一区二区三级电影在线观看 | 欧美三级午夜理伦三级在线观看| 国产精品一区=区| 麻豆国产在线| 欧美另类在线播放| 色的视频在线免费看| 日韩成人性视频| 亚洲精品网站在线| 91精品国产一区二区三区| 91青青草视频| 精品国产电影一区| 久久无码精品丰满人妻| 中文字幕中文字幕在线一区| 亚洲精品午夜视频| av亚洲精华国产精华精| 午夜诱惑痒痒网| 美女视频黄久久| 国产一区二区视频免费在线观看 | 免费看国产黄色片| 中文一区二区| 日韩精品一区在线视频| 欧美视频成人| 看全色黄大色大片| 99久精品视频在线观看视频| 色姑娘综合网| 国产一区二区区别| 日本一区二区久久精品| 亚洲动漫精品| 久久久亚洲综合网站| 日韩成人av在线资源| 国产在线欧美日韩| 久久资源综合| 国产综合欧美在线看| 91精品导航| 国产三级精品在线不卡| 国产成人aa在线观看网站站| caoporn国产精品免费公开| 欧美影院精品| 国产精品 日韩| av成人资源| 国产美女精品久久久| 成人午夜大片| 精品一区久久久| 亚洲人成网站77777在线观看| 久久久久久a亚洲欧洲aⅴ| 亚洲春色h网| 奇米影视首页 狠狠色丁香婷婷久久综合 | 中日韩视频在线观看| 欧美日韩一道本| 久久亚洲欧美| 亚洲一二三区av| 麻豆91小视频| 中文写幕一区二区三区免费观成熟| 国产成人精品一区二区三区四区 | 国产精品无码永久免费888| 男人的天堂官网| 国产精品九色蝌蚪自拍| www.av视频| 激情久久av一区av二区av三区| 国产精品一区二区三区四| 日韩av成人在线| 日本在线观看视频网站| 精品久久久久久中文字幕| 久久国产视频一区| 3d性欧美动漫精品xxxx软件| 制服视频三区第一页精品| av资源免费看| 亚洲福利精品在线| 麻豆av电影在线观看| 日韩在线免费观看视频| 污污片在线免费视频| 欧美亚洲视频在线观看| 久久久加勒比| 国产精品日韩高清| 欧美精品一区二区久久| www.午夜色| 亚洲三级影院| 色国产在线视频| 北岛玲一区二区三区四区| 国产高清一区二区三区四区| 亚洲人成人一区二区在线观看| 四虎永久在线精品| 在线免费观看日本一区| 亚洲精品视频网| 在线观看日韩视频| 欧美黑人猛交| 国产精品三级网站| 东京久久高清| 这里只有精品66| 一本色道久久综合| 亚洲黄色片免费看| 国产天堂亚洲国产碰碰| 久久免费视频99| 在线观看网站黄不卡| 亚洲国产福利视频| 亚洲最新av网址| 国产污视频在线播放| 成人淫片在线看| 国产不卡av一区二区| 日韩精品一区二区三区四| 美女视频网站久久| 久久久久亚洲av无码专区桃色| 亚洲欧美一区二区三区极速播放| 毛片视频网站在线观看| 日韩一级片在线观看| 成人免费在线观看| 午夜精品视频在线| 麻豆久久一区| 亚洲人成人77777线观看| 最新亚洲激情| 中国老熟女重囗味hdxx| 中文字幕 久热精品 视频在线| 色婷婷在线观看视频| 日韩免费观看高清完整版 | 9l国产精品久久久久麻豆| 搜索黄色一级片| 欧美三级日韩三级国产三级| 香蕉视频成人在线| 久久久久久久久久久亚洲| 亚洲精品三区| 神马欧美一区二区| 久久天堂精品| 亚洲综合自拍网| 亚洲一区欧美一区| www男人的天堂| 久久精品人人做人人爽| 久久精品国产精品亚洲毛片| 欧美一区二区三区精美影视 | 欧美美女一级片| 国产日韩精品一区二区浪潮av| youjizz在线视频| 亚洲跨种族黑人xxx| 五月婷婷亚洲综合| 国产精品中文字幕亚洲欧美| 午夜探花在线观看| 狠狠色狠狠色综合| 欧美特级一级片| 欧美一区二区视频网站| 国产理论在线观看| 91色中文字幕| 国产精品久久观看| 精品亚洲视频在线| 亚洲图片你懂的| 99久久久久成人国产免费| 操人视频在线观看欧美| 高清一区二区三区av| 成人性做爰片免费视频| 国产成人在线视频网站| 黄色小视频在线免费看| 亚洲成年网站在线观看| 久久男人av资源站| 欧美18视频| 日韩成人免费电影| 99精品中文字幕| 91精品国产色综合久久ai换脸 | 久久99性xxx老妇胖精品| 粗暴91大变态调教| 国产精品国产三级国产| 99精品免费观看| 久久久久久久久久亚洲| 小说区图片区色综合区| 冲田杏梨av在线| 亚洲免费av观看| 欧美一级一区二区三区| 欧美在线视频导航| 日韩精品电影| 91丨porny丨九色| 天天av天天翘天天综合网色鬼国产| 青青草超碰在线| 国产欧美日韩中文字幕在线| 欧美a级片一区| 国产艳俗歌舞表演hd| 欧美视频一区在线| 日本在线观看大片免费视频| 久久久久久久久四区三区| 蜜桃免费网站一区二区三区| 欧美黄色一区二区三区| 亚洲欧洲av一区二区| 亚洲欧美在线综合| 黄色av网址在线播放| 亚洲欧洲另类国产综合| 日本wwwxxxx| 国产噜噜噜噜久久久久久久久| 亚洲一级影院| 91导航在线观看| 亚洲的天堂在线中文字幕| 91精品国产经典在线观看| av在线观看地址| 国产精品丝袜在线| 欧美 日韩 人妻 高清 中文| 国产成人精品日本亚洲 | 伊人成色综合网| 亚洲欧美综合色| 深夜福利在线看| 亚洲自拍偷拍在线| 日韩电影在线免费观看|