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

閱讀大型開(kāi)源軟件的四個(gè)技巧

開(kāi)源
最近的一段時(shí)間里,我在研究 Android 配套工具和 Android Studio 相關(guān)的實(shí)現(xiàn),以及它們?nèi)绾闻浜贤瓿梢粋€(gè) APK 的構(gòu)建。因?yàn)檎麄€(gè)系統(tǒng)各個(gè)模塊之間的關(guān)系過(guò)于復(fù)雜,除此,不同模塊之間也包含了大量的代碼 —— 無(wú)論是從行數(shù)上,還是從函數(shù)長(zhǎng)度上來(lái)說(shuō)。

[[339183]]

最近的一段時(shí)間里,我在研究 Android 配套工具和 Android Studio 相關(guān)的實(shí)現(xiàn),以及它們?nèi)绾闻浜贤瓿梢粋€(gè) APK 的構(gòu)建。因?yàn)檎麄€(gè)系統(tǒng)各個(gè)模塊之間的關(guān)系過(guò)于復(fù)雜,除此,不同模塊之間也包含了大量的代碼 —— 無(wú)論是從行數(shù)上,還是從函數(shù)長(zhǎng)度上來(lái)說(shuō)。

從總體的思路上來(lái)說(shuō),在進(jìn)入代碼閱讀之前,我們需要:

  1. 理解代碼背后的業(yè)務(wù)流程
  2. 理解架構(gòu)設(shè)計(jì)的思想

從而我們才能理解主流程(脈絡(luò))。針對(duì)于此,我們會(huì)發(fā)現(xiàn)一些不同的模式:

  1. 借鑒他人。從他人的學(xué)習(xí)筆記中,理解整體的思路和過(guò)程。如 Android APK 的構(gòu)建,Android 資源如何優(yōu)化,從中理清代碼閱讀的思路。
  2. 源碼學(xué)習(xí)。
  3. 借助測(cè)試調(diào)試。
  4. fork 主流程。

它們并不是互相獨(dú)立的,往往是結(jié)合一起使用的。

借鑒他人

這種模式,可以實(shí)現(xiàn)快速地學(xué)習(xí)。它存在的一些明顯的缺點(diǎn)是:

  • 學(xué)到的東西是二手加工過(guò)的。
  • 部分的代碼可能與真實(shí)的情形脫節(jié)。

所以,它適用于你想快速了解某一部分的功能,從而了解全貌,隨后我們就可以深入某一部分進(jìn)行了解。

在這種模式之下,我推薦:通過(guò)購(gòu)買(mǎi)、閱讀書(shū)籍的方式來(lái)學(xué)習(xí)。如果能買(mǎi)到書(shū)便是一件幸運(yùn)的事,因?yàn)樗呀?jīng)經(jīng)過(guò)了系統(tǒng)性的加工。唯一的問(wèn)題可能是上面的代碼有些老舊。但是,它更加的系統(tǒng)化、完整,方便我們理解,并減少搜索資料的成本。

為什么不是網(wǎng)上找資料?:

  1. 找資料需要投入時(shí)間成本
  2. 資料不一定詳細(xì)

如果你能直接找到詳細(xì)的資料,畢竟花費(fèi)的時(shí)間足夠短的話,那么也是沒(méi)問(wèn)題的。

源碼學(xué)習(xí)

源碼學(xué)習(xí)是一個(gè)需要花費(fèi)大量時(shí)間和精力的事情,除非萬(wàn)不得已,否則我也不想用這種方式。因?yàn)椋覀儠?huì)缺少大量的上下文,這些上下文可能導(dǎo)致我們理解出現(xiàn)一些誤差。

前期準(zhǔn)備:

  1. 合適的工具。最好是~~收費(fèi)的(🐶)~~能用上的。
  2. 合適的存儲(chǔ)空間。像 Android 這樣的系統(tǒng),clone 下來(lái)就要 120G,編譯的話,估計(jì)得達(dá)到 200G 吧;而像 Android Studio 的源碼,clone 下來(lái)也要 60G。
  3. 尋找閱讀的模式。
  4. 嘗試去構(gòu)建應(yīng)用。它不一定可行,但是如果可以的話,會(huì)節(jié)省你大量的時(shí)間。

源碼學(xué)習(xí)是一個(gè)非常重的學(xué)習(xí)模式。我們要花費(fèi)大量的時(shí)間:

  1. 在代碼間跳轉(zhuǎn)
  2. 梳理業(yè)務(wù)邏輯

所以,還有一些不錯(cuò)的犯懶的姿勢(shì):

通過(guò)書(shū)籍來(lái)加強(qiáng)。我一直覺(jué)得對(duì)于學(xué)習(xí)來(lái)說(shuō),閱讀書(shū)籍是最理想的方式。因?yàn)閷ふ屹Y料需要成本,而多數(shù)的書(shū)都會(huì)起到一個(gè)索引的目的。

尋找相似的輪子。一個(gè)有意思的技術(shù),必然有很多公司、很多人都研究過(guò)。他們都會(huì)嘗試去創(chuàng)造類(lèi)似的輪子。唯一的問(wèn)題是,我們要學(xué)習(xí)到什么程度,如果只是理解的話,那么看看別人重復(fù)的輪子也是可以的;如果是為了深入的話,那么還得回過(guò)頭去看看源碼

借助測(cè)試調(diào)試

對(duì)于調(diào)試來(lái)說(shuō),我們還會(huì)面臨的一個(gè)挑戰(zhàn)是:諸如我這樣的入門(mén)級(jí) MBP 配置,對(duì)于大型系統(tǒng)來(lái)說(shuō)編譯根本不夠用。應(yīng)對(duì)這種問(wèn)題的一個(gè)比較良好的姿勢(shì)是:通過(guò) IDE 調(diào)試測(cè)試來(lái)完成對(duì)部分代碼的調(diào)試。(PS:這種方式也適用于業(yè)務(wù)代碼的開(kāi)發(fā))

如果我們可以在應(yīng)用的入口中創(chuàng)建某一模塊對(duì)應(yīng)的測(cè)試,那么我們就可以快速調(diào)試整個(gè)應(yīng)用了。

fork 主流程

對(duì)于我來(lái)說(shuō),我覺(jué)得只閱讀源碼是一種只為了解決一時(shí)問(wèn)題的方式。同時(shí),像我這樣的凡人,對(duì)于某些知識(shí)和內(nèi)容,只要不使用,我可能隔個(gè)十天半個(gè)月,我就忘光了(雖然我一直覺(jué)得這是一件好事)。

邊閱讀代碼,邊 fork 項(xiàng)目,我們還會(huì)有一些挑戰(zhàn):

  1. 語(yǔ)言的熟練度和模式。對(duì)于熟悉的語(yǔ)言來(lái)說(shuō),比如日常編寫(xiě)業(yè)務(wù)代碼的時(shí)候,我們并不需要理解于諸如類(lèi)加載器、元編程、字節(jié)碼這一類(lèi)的復(fù)雜模式。
  2. 新的框架、工具或語(yǔ)言的學(xué)習(xí)成本。比如,我在過(guò)程中就遇到需要理解和學(xué)習(xí) Gradle 插件的一些構(gòu)建機(jī)制。
  3. 代碼中大量的、無(wú)用的異常處理的代碼。
  4. 別人的代碼都是 💩。(PS:一個(gè)月后自己的代碼也是屎)

所以,還有一些模式:

  1. 劃分模塊邊界。尋找架構(gòu)圖,通過(guò)架構(gòu)圖來(lái)劃分模塊。
  2. 切片化運(yùn)行。一個(gè)模塊,一個(gè)模塊來(lái)理解整個(gè)系統(tǒng)。如 IDEA 插件的編寫(xiě)、IDEA 插件與 Gradle 如何交互,Gradle 插件的原理與編寫(xiě),Gradle 如何調(diào)用其它命令行工具,命令行工具的原理與編寫(xiě)。
  3. 通過(guò)測(cè)試運(yùn)行。如針對(duì)于 ApkAnalyser 這樣的工具,我們可以通過(guò)單元測(cè)試而非構(gòu)建一個(gè) CLI 的方式來(lái)運(yùn)行。
  4. 選擇另外一門(mén)語(yǔ)言。因?yàn)閯e人用 Java、Groovy、Kotlin 編寫(xiě)的應(yīng)用,如果你用 Rust、Go 再寫(xiě)一遍的話,那么你就能一次學(xué)到兩個(gè)東西了:一個(gè)是新的編程語(yǔ)言,一個(gè)是這個(gè)開(kāi)源項(xiàng)目的代碼。

README 輸出

為了方便我們查閱和其他/她人使用,我往往會(huì)把相關(guān)的內(nèi)容記錄到項(xiàng)目的 README 上。

  • 相關(guān)的文檔資料
  • 相似的開(kāi)源項(xiàng)目
  • 過(guò)程中的內(nèi)容產(chǎn)出
  • 代碼簡(jiǎn)要說(shuō)明
  • ……

這樣一來(lái),其他/她人在學(xué)習(xí)的過(guò)程中還能 GET 到相似的思路。

結(jié)論

最后,簡(jiǎn)單做一些成本對(duì)比:

模式 成本 性?xún)r(jià)比 主要場(chǎng)景
借鑒他人 學(xué)習(xí)
閱讀源碼學(xué)習(xí) 理解思想
fork 主流程 理解、模仿
借助測(cè)試調(diào)試 較高 理解、模仿

一些結(jié)合模式:

閱讀二手資料,根據(jù)二手資料理解主脈絡(luò)

編寫(xiě)主流程調(diào)用鏈,理解架構(gòu)設(shè)計(jì)理想

借助開(kāi)源軟件的測(cè)試調(diào)試,理解參數(shù)及流程

 

……

本文轉(zhuǎn)載自微信公眾號(hào)「phodal」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系phodal公眾號(hào)。

 

責(zé)任編輯:武曉燕 來(lái)源: Phodal
相關(guān)推薦

2021-03-08 15:42:54

數(shù)據(jù)庫(kù)Apache Iceb開(kāi)源

2022-05-04 12:44:57

Python編程語(yǔ)言

2023-02-19 15:22:22

React技巧

2023-11-13 10:00:09

數(shù)據(jù)中心服務(wù)器

2021-09-27 08:56:36

Python代碼函數(shù)

2011-07-25 14:39:06

組策略

2021-10-19 09:53:38

智能建筑數(shù)據(jù)中心邊緣計(jì)算

2023-10-26 07:47:35

JavaScript代碼變量

2014-10-16 09:50:41

2024-11-14 09:00:00

Python編程元編程

2022-10-08 15:32:24

Python開(kāi)發(fā)技巧

2022-07-15 14:54:00

DockerLinux技巧

2018-11-02 08:53:28

開(kāi)源Android郵件客戶端

2020-05-20 15:27:44

智慧城市數(shù)據(jù)技術(shù)

2022-10-21 10:22:30

網(wǎng)絡(luò)網(wǎng)絡(luò)容量網(wǎng)絡(luò)資源 Tech

2019-11-04 06:08:48

云計(jì)算成本云計(jì)算遷移

2022-04-07 09:34:39

技巧云服務(wù)費(fèi)用

2024-06-26 11:08:46

2011-08-29 18:37:47

Ubuntu11.04

2009-03-03 11:41:14

數(shù)據(jù)庫(kù)表表分區(qū)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

91麻豆精品国产91久久久久久久久 | 中文字幕日韩精品在线| 亚洲综合日韩欧美| 丁香花视频在线观看| 国产日韩欧美一区二区三区乱码| 成人在线国产精品| 台湾佬中文在线| 午夜精品网站| 伊人久久精品视频| 国产xxxx视频| 欧美成人一二区| 亚洲成av人片| 在线无限看免费粉色视频| 五月婷婷在线观看视频| 国产在线不卡一卡二卡三卡四卡| 午夜精品久久17c| 久久精品一区二区三区四区五区| 日韩av网站在线免费观看| 欧美日韩久久久| 欧美爱爱视频免费看| 激情在线小视频| 久久久久国产精品人| 亚洲综合第一页| 中文字幕一区二区人妻| 亚洲精品欧洲| 久久国产精品偷| 国产一区二区三区四区在线| 牛牛精品成人免费视频| 欧美一区二区三区在线电影 | 黑人狂躁日本娇小| 免费看成人吃奶视频在线| 日韩精品一区二区三区老鸭窝 | 国产成人精品免费在线| 国产欧美日韩中文字幕| 亚洲黄色小说图片| 亚洲国产一区二区三区a毛片 | 日本不卡久久| 亚洲 精品 综合 精品 自拍| 国产91精品免费| 91精品视频大全| 中文字幕一区二区免费| 日日夜夜免费精品视频| 91成人天堂久久成人| 久久久久久久久久久久久久免费看| 色男人天堂综合再现| 一本色道久久综合狠狠躁篇怎么玩| 日本japanese极品少妇| 极品国产人妖chinesets亚洲人妖 激情亚洲另类图片区小说区 | 99久久婷婷国产精品综合| 不卡视频一区二区三区| 丰满熟妇人妻中文字幕| 国产乱码精品一区二区三区av| 国产精品丝袜久久久久久高清 | 日韩一区国产二区欧美三区| 久久综合在线观看| 疯狂欧洲av久久成人av电影| 欧美日本国产视频| 色91精品久久久久久久久| 黄色精品视频网站| 欧美猛男男办公室激情| www.久久91| 永久免费观看精品视频| 欧美一区在线视频| 91精品国产高清91久久久久久| 深夜福利一区| 亚洲第一色在线| 精品国产人妻一区二区三区| 午夜欧洲一区| 一区二区三区天堂av | 亚洲午夜久久久| 九九爱精品视频| 成人免费看黄| 欧美少妇一区二区| 九九九九九九九九| 伊人久久噜噜噜躁狠狠躁| 亚洲高清色综合| 自拍偷拍中文字幕| 色小子综合网| 欧美国产日韩在线| 欧美videossex极品| 日韩黄色免费网站| 91免费看片在线| 污视频网站免费观看| 国产夜色精品一区二区av| 亚洲精品国产精品国自产| 顶级网黄在线播放| 精品国产1区2区| 中文字幕av专区| 1313精品午夜理伦电影| 亚洲男人的天堂在线播放| 日本裸体美女视频| 亚洲国产电影| 国产欧美日韩免费| 黄色av中文字幕| 欧美高清在线一区二区| 日韩一区二区高清视频| 成人美女黄网站| 日韩西西人体444www| 欧美深性狂猛ⅹxxx深喉| 欧美日韩在线二区| 欧美精品激情在线观看| 中文字幕精品无码亚| 成人性色生活片| 伊人情人网综合| 日本黄色免费在线| 欧美一区二区视频网站| 三级网站在线免费观看| 欧美aa国产视频| 国产精品第七影院| 欧洲av在线播放| 中文字幕一区二区三区蜜月| 男女激情无遮挡| 国产精品亚洲四区在线观看| 亚洲天堂视频在线观看| 国产性生活网站| 九九久久精品视频 | 999国产精品999久久久久久| 97精品久久久| 性欧美一区二区三区| 国产欧美精品一区二区色综合| 国产xxxx振车| 国产精品美女久久久久| 国产亚洲免费的视频看| 国产美女激情视频| 成人动漫一区二区三区| 中文字幕精品在线播放| 久久久国产精品网站| 国产视频欧美视频| 日本少妇久久久| 国产盗摄一区二区三区| 婷婷视频在线播放| 国产成人精品一区二区三区视频| 亚洲欧美成人网| 久久久久久久久久久久久久av| 国产成人综合在线| 欧美少妇一区二区三区| 日日狠狠久久| 日韩在线观看av| 在线观看黄色网| 国产日韩精品久久久| 久久久精品在线视频| 欧美久久精品| 欧美亚洲视频在线观看| 色综合视频在线| 性欧美大战久久久久久久久| 欧美xxxx日本和非洲| 欧美片第1页综合| 91精品久久香蕉国产线看观看| 成人福利片网站| 欧美一区二区三区系列电影| 五月天av网站| 丁香桃色午夜亚洲一区二区三区| 久久精品在线免费视频| 玖玖玖视频精品| 欧美成人三级视频网站| www.欧美国产| 亚洲电影激情视频网站| 国产精品无码网站| 老牛影视一区二区三区| 日本一区二区三区免费看| 免费观看成人性生生活片| 国产亚洲欧美日韩美女| 在线观看视频二区| 亚洲欧美国产高清| 东京热av一区| 六月丁香综合| 亚洲国产精品综合| 精品午夜视频| 久久久久久亚洲精品不卡| 视频一区二区免费| 在线一区二区三区做爰视频网站| 国产视频123区| 国产麻豆精品视频| av在线观看地址| 怕怕欧美视频免费大全| 国产一区深夜福利| 视频在线观看入口黄最新永久免费国产 | 中文在线免费一区三区高中清不卡| 亚洲最大综合网| 伊人久久大香线| 精品一区二区不卡| 国产香蕉久久| 久久久久久久久91| 欧美高清成人| 欧美一区日韩一区| 青青操免费在线视频| 中文字幕二三区不卡| 可以看的av网址| 久久综合九色综合欧美狠狠| 伊甸园精品99久久久久久| 99re91这里只有精品| 日本高清不卡在线| a级毛片免费观看在线| 日韩精品黄色网| 国产成人精品白浆久久69| 精品magnet| 91嫩草丨国产丨精品| www.亚洲色图.com| 亚洲一区精品视频在线观看| 亚洲精品女人| 国产免费xxx| 欧美日韩国产在线观看网站 | 日本高清视频精品| 污片在线免费观看| 亚洲色图35p| 亚洲免费国产视频| 欧美日韩不卡在线| 99热只有这里有精品| 亚洲欧美视频在线观看视频| 天天躁日日躁aaaxxⅹ| 国产精品影视网| 午夜精品在线免费观看| 在线综合亚洲| 国产精品va在线观看无码| 日韩理论在线| 青青草成人激情在线| 国产在线播放精品| 91亚洲精品久久久久久久久久久久| 亚洲色图官网| 午夜精品久久久久久久男人的天堂 | 中文一区在线播放| 精品人妻少妇嫩草av无码| 成人免费毛片高清视频| 最新av免费在线观看| 日韩在线播放一区二区| 国产av麻豆mag剧集| 国内精品亚洲| 欧美 亚洲 视频| 中文精品久久| 波多野结衣激情| 日韩久久久久| 午夜精品一区二区三区在线观看 | 一区二区免费电影| 精品国产91| 欧美黑人xxxxx| 午夜先锋成人动漫在线| 久久本道综合色狠狠五月| 第四色在线一区二区| 69174成人网| 日韩中文在线| 成人欧美一区二区三区视频| 国产精品一区三区在线观看| 成人乱色短篇合集| 91视频亚洲| 亚洲free性xxxx护士hd| 久久9999免费视频| 99久久99久久| 红杏一区二区三区| 国产精选一区二区| 欧洲vs亚洲vs国产| 久久久精品国产一区二区三区| 欧美在线导航| 日产精品久久久一区二区| 精品视频亚洲| 在线视频不卡一区二区三区| 97精品视频在线看| 老司机午夜免费福利视频| 欧美aⅴ99久久黑人专区| 国产情侣第一页| 国产免费成人| 国产九九在线视频| 国内精品写真在线观看| 日本一本在线视频| 成人午夜看片网址| 一区二区三区免费在线观看视频| 久久一区二区三区国产精品| 女人十八毛片嫩草av| 国产精品电影院| 国产一级在线免费观看| 欧美日韩亚洲成人| 中文字幕 视频一区| 欧美一区二区三区公司| 懂色av一区二区三区四区| 亚洲精品第一页| 亚洲成人三级| 欧美大码xxxx| 三级中文字幕在线观看| 国产精品你懂得| 日韩一区免费| 日本不卡在线观看| 一区二区中文| 国产最新免费视频| 美女脱光内衣内裤视频久久网站| 深夜做爰性大片蜜桃| 99久久婷婷国产| 在线观看免费黄色网址| 夜夜精品浪潮av一区二区三区| 少妇一级淫片免费放中国| 欧美日韩和欧美的一区二区| 性欧美videos另类hd| 一区二区欧美久久| 91精品久久| 国产精品久久久久99| 91久久偷偷做嫩草影院电| 欧美尤物一区| 狠狠爱综合网| 日本中文字幕观看| 91麻豆视频网站| 天天干中文字幕| 欧美自拍丝袜亚洲| 少妇高潮一区二区三区69| www.日韩免费| 九九精品调教| 92国产精品久久久久首页| 午夜精品福利影院| 日本香蕉视频在线观看| 麻豆一区二区三区| 中文字幕高清视频| 亚洲福利一区二区| 国产精品欧美久久久久天天影视| 日韩高清不卡av| 色婷婷av在线| 成人www视频在线观看| 欧美猛男同性videos| 国产一二三在线视频| 狠狠色综合播放一区二区| 成人乱码一区二区三区av| 洋洋av久久久久久久一区| 国产精品女同一区二区| 中文日韩在线观看| 毛片免费看不卡网站| 国产呦系列欧美呦日韩呦| 欧美理论在线| 免费看三级黄色片| 中文字幕一区在线观看视频| 国产情侣免费视频| 亚洲片在线资源| 色是在线视频| 国产欧美亚洲日本| 国产一在线精品一区在线观看| 午夜一级免费视频| 国产农村妇女毛片精品久久麻豆| 日韩一区二区视频在线| 亚洲国产精品久久| sqte在线播放| 国产激情一区二区三区在线观看| 午夜国产欧美理论在线播放| 亚洲涩涩在线观看| 综合欧美亚洲日本| 国产又粗又大又爽| 久久精品在线视频| 国产精品一区二区三区av| 日本高清xxxx| 国产激情一区二区三区四区 | 一区二区黄色片| 一本一本大道香蕉久在线精品 | 久久综合一区二区| 天天操天天操天天操天天| 日韩av有码在线| 成人私拍视频| 五月天亚洲综合小说网| 久久国产精品露脸对白| 黄色录像免费观看| 精品激情国产视频| av基地在线| 国产精品久久久av久久久| sdde在线播放一区二区| 一区二区三区韩国| 中文字幕亚洲电影| a级片免费视频| 欧美激情视频一区二区| 国产精品丝袜在线播放| 精品人妻一区二区三区四区在线| 97久久精品人人做人人爽50路| 成人免费视频毛片| 一区二区三区视频免费在线观看 | 国产精品一区电影| 午夜激情久久| 中文字幕一区二区三区人妻在线视频 | 国产成人在线观看免费网站| 日韩大片免费在线观看| 亚洲精品日韩在线| 国产亚洲精彩久久| av无码久久久久久不卡网站| 国产午夜亚洲精品羞羞网站| 91精品国自产| 久久久在线视频| 欧美影院三区| 少妇献身老头系列| 一本久道中文字幕精品亚洲嫩| 秋霞a级毛片在线看| 国产精品av一区| 日本不卡高清视频| 久久久久久蜜桃| 亚洲天堂开心观看| 亚洲综合色婷婷在线观看| 国产一区二区视频免费在线观看| 亚洲精品日韩综合观看成人91| 天天操天天干天天| 成人高h视频在线| 一本久久综合| 欧美另类videoxo高潮| 日韩国产在线看| 国产精品一区二区精品视频观看| 37pao成人国产永久免费视频| 亚洲精品国产无天堂网2021 | 国产又粗又长又黄| 青青久久av北条麻妃海外网| 综合激情婷婷| 欧美成人另类视频|