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

只懂 Git 如何成為架構磚家?從代碼的物理分析說起

開源
我們所熟知的包,可以定義為:一個包就是被組織成一個物理內聚單位的組件集合。而包的呈現形式便是文件夾,其中的一個個物理單元就是文件。通過對文件的修改的監測,我們可以知道文件夾的變化,進而觀測到整個包的變化。

 [[385786]]

物理分析這一詞,來源于我同事 @NoaLand 所推薦的《大規模 C++ 程序設計》一書中所介紹的物理設計。

物理設計集成于研究系統中的物理實體,及它們之間如何相互關聯。邏輯設計只研究體系結構(架構)問題,物理設計研究組織問題。

在粗粗了這本書的一些概念之后,我對整體的物理設計思路有更深入的了解。于是,在結合了《系統重構與遷移指南》一書中引入的『四級重構』,重新論證了我先前的一個想法:并不需要成為 xx 語言的熟練開發者,我也能分析這個語言的系統設計得是否合理?(PS:這是建立在我已經熟練使用多門語言 Copy/Paste 的前提下。)

于是乎,只需要學會對物理設計進行分析,就能成為架構上的磚家 —— 對于這部分的分析,是個程序員都會做。

而一系列的理論建立在幾個基本的前提之下:

  1. 代碼組件方式使用文件系統的方式組件。即包和組件使用文件夾管理等。
  2. 項目使用的是 Git,絕大多數的 Git 修改都是自然發生的,即技術需求和業務需求。
  3. 項目所使用的是主流的企業開發語言。如 Java、Golang、JavaScript/TypeScript、C#、C++ 等,而不是 Haskell 等。

這里,我們使用的分析工具是 Inherd 開源小組開發的研發效能分析工具 Coco,GitHub:https://github.com/inherd/coco。

文中使用的是 Redis 案例在線版本見:https://inherd.org/cases/redis/

“物理”架構設計

我們所熟知的包,可以定義為:一個包就是被組織成一個物理內聚單位的組件集合。而包的呈現形式便是文件夾,其中的一個個物理單元就是文件。通過對文件的修改的監測,我們可以知道文件夾的變化,進而觀測到整個包的變化。

通過這些物理上的變化,我們可以知道一個包是否是穩定的,從它的大小,我們還能知道整體的設計是否合理。如下是 自 2020.3.1 號起, Redis 中不同模塊的源碼變化情況:

Redis Changes

(PS:該圖是交互式的網頁。左側的五彩斑斕部分是 src/,也就是主要源碼,右側是依賴的了模塊,上方是測試模塊的變化。)

從上圖中:

觀測頻繁修改模塊。可以清晰地看到哪個模塊變化較多。對于業務代碼來說,我們則可以通過時間軸的大小,來觀測不同時代段的修改。

了解包的大小。如圖中的 redis-cli.c:41,其中的 41 是自 2020.3.1 起的修改次數,hover 在上面之后,可以知道這個文件的行數為 7012 行。

根據我們《系統重構與遷移指南》定義的高引用、高修改的關系:

高引用-高修改

我們也可以建議一個輕微地模型(不會那么準確),來證明一個長行數 + 頻繁修改這是一個非常不穩定、容易出錯的包。而在業務場景之下,如果我們實現的一個功能,為于 A 業務之下,但是一直在修改 B 業務,那么說明引用是不正確的,存在一定的耦合度。

變更頻率

變更頻率是一個非常有意思的指標,從版本管理工具中,我們可以獲得歷史上發生的一些變化。從結論上來說,我們常知道的一些事實有:

  1. 隨著代碼行數的上升,新增代碼的占比會越來越少,修改成本也越來越高,因此提交量會呈一定的下降趨勢。
  2. 軟件開發是周期性的活動。修改頻率與軟件發布成正比例關系。

下圖展示的是 Redis 的所有提交與時間的關系:

Redis Commit Contributions

從圖上來看,在 2014 ~ 2015 之前發生了大量的代碼提交。與它與后面的發布頻率,做一個對比,我們就會發現這一段時間發布了大量的新版本。從這些現象來看,它可能意味著:

  1. 在這段時間引入了大量的功能。
  2. 因為過多的功能,并因此引入了大量的 bug,所以需要更多地版本發布。

除此,另外一個不是那么有意思的指標就是行數上的變化:

Redis Line History

從圖中我們可以看到在 2011 ~ 2012 這個時間點上,代碼量突然發生了劇烈的變化。其中原因,我想就是因為他們所采用的是 feature branche 的機制。即,功能在開發完成后,才會合并到主分支。

從下面的發布頻率中,我們也可以看到這個變化的趨勢。

發布頻率與部署

從 Git 中想看到發布頻率相關的內容,只能從以下兩部分:

  1. 分支。可以展示分支的使用情況,以及不同分支的變化。
  2. Git Tag。展示軟件的發布頻率與時間等的關系。

如下是 Redis 的分支歷史:

Redis Branches

從圖中,我們可以清晰地看到 Redis 的不同特性地開發,如 arm,如 acl-log。除此,還有不同版本的維護情況,如 2.8 的修改在 3.0 之后。

同樣的,因為 Redis 采用的是標準的 Git 實踐來發布軟件。所以,從 2019 年的 tags,我們可以看到軟件的整體發布情況:

Redis Tags

咦,從上圖來看,這個是 6.0 是不是來得非常快。沒有 5.1.x 就直接 666 了。

學習成本與知識管理

軟件開發是一個知識生產和消費的過程。—— 《軟件開發管理為什么這么難》

在一個項目的不同時期(技術準備、業務回補、成長優化、架構演進),其對于不同級別的開發人員的難度都是不一樣的。這一點從理論上來講,我們可以從分析其的提交資料,來分析它的學習成本。開發人員的提交量會隨著在項目的年限逐漸變多,直到趨于穩定。

于是,我們嘗試從 Redis 項目里建立這個模型:

Redis Curve

然后失敗了。后來,發現這個模式并不適合于開源項目。

與商業軟件相比,開源軟件的更加動態,團隊的生命周期很少超過六個月,并且常常會以各種方式重組。——《軟件之道:軟件開發爭議問題剖析》

但是,我們相信它對于常規的軟件開發團隊是適用的。

隨后,我們再正視了一下這個問題,重新考量了適合于開源項目的模型 —— 通過人員在項目的提交時間,來看一個項目是否穩定,知識傳播是否靠譜。

如下是 Redis 項目中,開發人員的第一次提交時間和最后一次開發時間產生的 timeline:

Redis Members

它從側面反應了,開源項目的團隊模式,只有少數的開發人員。對于商業軟件來說,如果 timeline 如上的話,那么這個軟件仍然能夠開發下去。但是,如果核心開發人員離開團隊,項目將非常不穩定,那么這個軟件將充斥著大量未知的 bug。

其它

這樣一看,Coco 是不是降低了架構分析的門檻。歡迎試用 Coco,可以從 GitHub 直接下載:https://github.com/inherd/coco/releases

文中說的一些分析內容,已經在我之前的另外一分析工具 Coca 中引入過。但是,受限于語法分析的成本,所以在 Coco 中采用了輕量級的分析方式。我們會在后續的文章中,介紹更多想多的實現方式。你也可以通過添加微信號 phodal02 (注明 Inherd),參與到相關的討論中。

文中使用的是 Redis 案例在線版本見:https://inherd.org/cases/redis/

相關資源:

《Introducing the Polyglot Code Explorer》

《Your code as a crime scene》

本文轉載自微信公眾號「phodal」,可以通過以下二維碼關注。轉載本文請聯系phodal公眾號。

 

責任編輯:武曉燕 來源: phodal
相關推薦

2022-05-16 08:00:55

ReactReact 18數組

2024-06-28 09:25:51

2010-09-16 10:46:47

2016-11-29 09:53:40

Dash iOS開源

2013-04-03 10:40:17

Windows平板

2019-10-08 09:29:41

架構代碼業務邏輯

2019-04-15 13:18:38

開源AWS云供應商

2018-02-27 12:41:21

Serverless邊緣計算存儲

2012-03-19 21:06:52

Android

2021-04-25 09:00:14

項目互聯網上線

2021-03-01 09:16:10

程序員系統模式

2021-02-22 10:20:06

云計算分析數字化轉型

2013-09-11 17:42:46

IT運維管理

2011-12-15 22:13:30

手機平板電腦移動互聯

2025-06-20 10:18:58

大模型

2022-08-09 18:26:04

KubernetesLinux

2021-12-02 22:34:22

自動駕駛車燈技術

2021-03-17 09:51:31

網絡編程TCP網絡協議

2018-11-30 11:19:02

DNS根服務器網絡

2010-05-05 09:52:06

Unix BSD
點贊
收藏

51CTO技術棧公眾號

亚洲的天堂在线中文字幕| 日韩综合网站| 一区二区视频在线| 亚洲永久免费观看| 欧美成人精品欧美一| 成人av免费电影网站| 成人白浆超碰人人人人| 97免费在线视频| av无码av天天av天天爽| 波多视频一区| 国产视频一区二区在线观看| 国产精品青草久久久久福利99| 日韩av片在线免费观看| 国产电影一区二区| 亚洲主播在线播放| 精品视频免费观看| 久久久久久久久久一级| 欧美激情欧美| 精品sm捆绑视频| 国产精品无码专区av在线播放| 成人在线免费视频| 国产精品66部| 91av在线网站| 最新中文字幕av| 欧美舌奴丨vk视频| 最新中文字幕一区二区三区 | 精品久久久久久久中文字幕| 欧美乱偷一区二区三区在线| 国产又粗又黄视频| 欧美三区美女| 亚洲免费小视频| 激情黄色小视频| 黄色18在线观看| 综合自拍亚洲综合图不卡区| 97久久人人超碰caoprom欧美| 日韩女优在线观看| 日韩欧美一区免费| 亚洲丁香久久久| 亚洲一区日韩精品| 蜜桃在线视频| 亚洲三级久久久| 久久国产一区| 中文字幕欧美人妻精品| 一个色综合网| 国产一区二区三区毛片| 国产污在线观看| 久久久免费人体| 亚洲成av人片一区二区三区| 国产精品无码乱伦| 亚洲av成人精品一区二区三区在线播放| 日韩av中文在线观看| 性欧美亚洲xxxx乳在线观看| 欧美第一页在线观看| 国产亚洲一区| 亚洲精品成人免费| 亚洲欧美激情一区二区三区| 国产成人a视频高清在线观看| 婷婷久久综合九色综合绿巨人| 一级全黄肉体裸体全过程| 国产在线视频网址| 精品一区二区三区免费播放| 日本欧美精品在线| 国产无码精品一区二区| 欧美成人日韩| 日韩中文在线中文网三级| 亚洲色成人网站www永久四虎| 国内精品偷拍| 欧美tickling挠脚心丨vk| 午夜免费高清视频| 欧美日韩视频网站| 日韩欧美亚洲一二三区| 在线观看成人免费| av中文字幕一区二区三区| 久久综合久久鬼色| 欧美日韩国产一二| 色吊丝在线永久观看最新版本| 久久99久久精品欧美| 国产精品久久久久久亚洲调教| 国产美女激情视频| 国产精品av一区二区| 久久人人爽人人爽人人片亚洲| 亚洲欧美另类日本| 狠狠色丁香婷婷综合影院| 亚洲精品自拍偷拍| 无码h肉动漫在线观看| 精品亚洲自拍| 精品视频偷偷看在线观看 | 国产在线播放一区二区三区| 国产精品影片在线观看| 真实的国产乱xxxx在线91| 99国产精品视频免费观看一公开 | 久久av中文字幕片| 成人两性免费视频| 亚洲一区中文字幕在线| 久久99久国产精品黄毛片色诱| 国产精品网址在线| 国产伦精品一区二区三区视频痴汉| 国产自产2019最新不卡| 亚洲中国色老太| 蜜桃在线一区二区| 2022国产精品视频| 日韩欧美电影一区二区| 99中文字幕一区| 亚洲图片激情小说| 欧美a级免费视频| av中文在线资源库| 在线观看区一区二| 九九九九九伊人| 久久免费精品| 亚洲国产日韩欧美综合久久| 国产手机在线观看| 91久久久精品国产| 久久久久久中文| 日韩美一区二区| 精品一二三四在线| 国产精品一区二区你懂得| 性感美女一级片| 亚洲国产精品激情在线观看| 亚洲国产午夜伦理片大全在线观看网站| 国产三级在线看| 亚洲男同性恋视频| 丝袜老师办公室里做好紧好爽| 99久久综合国产精品二区| 日韩西西人体444www| 亚洲制服丝袜在线播放| 围产精品久久久久久久 | 男女污污视频在线观看| 欧美激情一区不卡| bt天堂新版中文在线地址| rebdb初裸写真在线观看| 亚洲va天堂va国产va久| 国产成人a亚洲精v品无码| 成人影音在线| 在线精品视频免费播放| 秋霞午夜鲁丝一区二区| 亚洲区小说区| 久久国产精彩视频| 日韩欧美亚洲视频| 久久精品国产亚洲a| 国产一区在线免费观看| 国产激情在线| 在线视频综合导航| 久久发布国产伦子伦精品| 日韩免费久久| 欧美与欧洲交xxxx免费观看| 国产aⅴ爽av久久久久成人| 久久久久久日产精品| 免费高清一区二区三区| 久久久加勒比| 亚洲欧洲日本专区| 欧美日韩在线视频免费| 男人的j进女人的j一区| 国产精品裸体一区二区三区| 美女免费久久| 欧美在线制服丝袜| 成年人网站免费看| 国产午夜精品一区二区三区欧美 | 久久久久久久久久国产| 一级黄色短视频| 久久精品在这里| 成人av一级片| www.成人网| 九九精品在线视频| 国产精品探花视频| 中文字幕不卡三区| 天天色综合社区| 狠狠综合久久av一区二区蜜桃 | 欧美一区二区三区四区高清| 亚洲ⅴ国产v天堂a无码二区| 性高湖久久久久久久久| 精品在线观看一区二区| 啊啊啊久久久| 欧美精品一区二区三区蜜桃 | 哺乳一区二区三区中文视频| 欧美www在线| 国产精品自产拍| 国产精品成人免费精品自在线观看| 人人干人人视频| 国产一区毛片| 国产精品免费看久久久香蕉| av福利精品| 欧美猛男超大videosgay| 2014亚洲天堂| 精品一区二区综合| 欧美少妇一级片| 日韩精品免费视频一区二区三区 | 91精品久久久久久综合乱菊 | 久久午夜色播影院免费高清| 日本黄网站免费| 欧洲乱码伦视频免费| 91精品久久久久久久久久另类| 毛片av在线| 欧美不卡激情三级在线观看| 日韩成人一区二区三区| www久久精品| 激情五月婷婷久久| 99久久99久久精品国产片桃花| 成人有码在线播放| 欧美14一18处毛片| 亚洲精品国产精品国自产观看浪潮| 亚洲久久在线观看| 欧美国产日韩精品免费观看| 九九热免费在线观看| 欧美搞黄网站| 久久国产精品 国产精品| 色8久久影院午夜场| 最新国产精品拍自在线播放| 国产a级免费视频| 天天免费综合色| 天天操天天干天天操天天干| 国产最新精品精品你懂的| 69sex久久精品国产麻豆| 97人人澡人人爽91综合色| 午夜精品99久久免费| 免费在线高清av| 欧美精品视频www在线观看| 日韩无码精品一区二区三区| 国产欧美一区二区精品仙草咪| 色婷婷激情视频| 亚洲美女视频在线免费观看| 亚洲v欧美v另类v综合v日韩v| 我要色综合中文字幕| 日本道色综合久久影院| 大片免费在线观看| 亚洲精品国产成人| 国产特级黄色片| 欧美日韩中文字幕在线| 欧美爱爱免费视频| 久久综合九色综合久久久精品综合| 午夜免费福利视频在线观看| 激情 小说 亚洲 图片: 伦| 国产探花视频在线| 欧美日韩麻豆| 国产日韩精品综合网站| 欧美大片1688| 欧美激情奇米色| 毛片在线免费| 日韩欧美视频在线| 中文字幕乱码中文字幕| 婷婷综合五月天| 日本天堂中文字幕| 国产精品美女久久久久av爽李琼| 成熟妇人a片免费看网站| 久久精品国内一区二区三区| 欧美日韩亚洲一| 你懂的一区二区| 亚洲高清资源综合久久精品| 欧美天堂社区| 亚洲一区二区三区乱码aⅴ| 69久成人做爰电影| 韩国v欧美v日本v亚洲| 麻豆tv免费在线观看| 亚洲天堂av高清| 超碰在线播放97| 337p亚洲精品色噜噜狠狠| 波多野结衣电车| 狠狠躁夜夜躁人人爽天天天天97| 九九视频在线观看| 自拍偷在线精品自拍偷无码专区 | 免费在线观看黄色小视频| 久久久精品一品道一区| chinese麻豆新拍video| 国产成人午夜电影网| 午夜天堂在线视频| 狠狠狠色丁香婷婷综合激情| 天堂在线中文在线| 麻豆91在线播放免费| 久久精品视频91| 久久婷婷一区| 亚洲精品中文字幕无码蜜桃| 美女精品网站| 青青视频在线播放| 久久国产精品毛片| 国产一区亚洲二区三区| 日韩中文字幕91| 激情综合网婷婷| 蜜桃精品视频在线观看| 免费网站在线观看黄| 精品写真视频在线观看| 九九久久久久久| 蓝色福利精品导航| 精品国产乱码久久久久久1区二区| 精品一区二区三区在线播放 | 疯狂做受xxxx高潮欧美日本| www毛片com| 在线欧美日韩精品| 亚洲一级视频在线观看| 欧美精品久久天天躁| aaa一区二区三区| 精品美女一区二区三区| 天堂在线视频网站| 亚洲成成品网站| 性插视频在线观看| 在线视频国产日韩| 国产理论电影在线观看| 国产午夜精品全部视频在线播放| 3p视频在线观看| 久久高清视频免费| 九色porny丨首页入口在线| 国产不卡av在线免费观看| 亚洲精品一级二级| 国产精品视频一| 999精品视频在这里| 欧美成人第一区| 国产精品精品| 99久久免费观看| 国产美女一区| 91丨九色丨蝌蚪| 久久综合精品国产一区二区三区 | 国产精品视频一区二区三区不卡| 国产一区二区精彩视频| 午夜电影一区二区| 在线视频播放大全| 精品久久久久久亚洲综合网| 日本五码在线| 久久综合九色九九| 亚洲人体视频| 91久久精品国产91久久性色| 欧美美女在线直播| 欧美一区三区二区在线观看| 国产欧美日韩一区二区三区四区| 成人免费在线视频播放| 日韩精品电影在线| 国产调教打屁股xxxx网站| 久久伊99综合婷婷久久伊| 三级影片在线观看| 欧美性生活大片免费观看网址 | 亚洲一区二区欧美激情| 亚洲中文一区二区| 亚洲精品一区二区三区99| 香蕉视频在线看| 高清一区二区三区四区五区| 素人啪啪色综合| 精品综合久久| 欧美日韩亚洲一区| jizz欧美激情18| 国产99精品国产| 自拍偷拍第9页| 日韩欧美国产黄色| 秋霞视频一区二区| 久热精品在线视频| 欧美影视资讯| 精品国产综合久久| 欧美片第1页综合| 天堂av在线8| 欧美国产丝袜视频| 日本熟妇色xxxxx日本免费看| 亚洲成年人在线| 在线观看电影av| 成人av在线天堂| 教室别恋欧美无删减版| 免费一级特黄特色毛片久久看| 久久99精品国产| 成年人在线免费看片| 一本在线高清不卡dvd| 午夜激情在线视频| 久久免费精品日本久久中文字幕| 国产一区二区色噜噜| 国产私拍一区| 国产女优一区| 亚洲av成人无码一二三在线观看| 亚洲精品国久久99热| 亚洲av无码不卡| 亚洲欧洲午夜一线一品| 24小时免费看片在线观看| 国产精品一 二 三| 国产精品v亚洲精品v日韩精品| 性农村xxxxx小树林| 亚洲综合免费观看高清在线观看| 国产欧美久久久精品免费| 日韩中文有码在线视频| 亚洲高清国产拍精品26u| 亚洲精品不卡| 九九久久精品视频| √天堂中文官网8在线| 欧美在线观看一区| 欧美69xxx| 亚洲自拍偷拍视频| 国产一在线精品一区在线观看| 国产国语性生话播放| 疯狂欧美牲乱大交777| a黄色在线观看| 91免费观看网站| 欧美日韩四区| 插我舔内射18免费视频| 日本丶国产丶欧美色综合| av中文在线| **亚洲第一综合导航网站| 亚洲一级特黄| 成人无码av片在线观看| 欧美剧情片在线观看| av男人的天堂在线观看| 欧美三级电影在线播放| 精品综合久久久久久8888| 538任你躁在线精品视频网站| 精品播放一区二区| 中文字幕高清在线播放| 99re在线视频上| 久久青草久久| 久久亚洲无码视频|