精品欧美一区二区三区在线观看 _久久久久国色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| 99精品人妻少妇一区二区| 99久久亚洲精品日本无码| 欧美日韩理论| 亚洲午夜国产成人av电影男同| 久久久精品麻豆| 成人video亚洲精品| 成人高清视频免费观看| 国产精品久久久久久久久免费看| 日本高清不卡免费| 亚洲色图美女| 日韩久久久精品| 草草草在线视频| 中文字幕有码在线视频| 久久久蜜桃精品| 亚洲伊人久久综合| 色老头一区二区| 国产综合激情| 日韩资源在线观看| 醉酒壮男gay强迫野外xx| 欧美久久一区二区三区| 91黄色激情网站| 日韩五码在线观看| 精品欧美色视频网站在线观看| 91色porny| 亚洲一区二区三区成人在线视频精品 | 91超碰碰碰碰久久久久久综合| 亚洲老司机在线| 亚洲国产另类久久久精品极度| 日韩在线视频第一页| 精品亚洲免费视频| 国产精品久久久久久久久久免费| 国产污片在线观看| 亚洲视频电影在线| 亚洲视频自拍偷拍| 亚洲熟妇无码av| 红杏一区二区三区| 日韩欧美123| 看看黄色一级片| 成人在线网站| 色综合久久久久网| 丝袜老师办公室里做好紧好爽| 女人黄色免费在线观看| 亚洲男人的天堂在线观看| 天堂av一区二区| 国产污视频在线| 国产偷国产偷精品高清尤物| 欧美国产一二三区| 天堂a中文在线| 99热精品一区二区| 国产一区二区久久久| 性少妇videosexfreexxx片| 久久99久久99| 成人女保姆的销魂服务| 国产模特av私拍大尺度| 精品一区二区三区在线观看 | 国产精品久久久久久免费免熟| 日韩中文字幕av电影| 热门国产精品亚洲第一区在线| 国产成人在线免费观看视频| 亚洲精品在线二区| 91极品女神在线| 国产午夜性春猛交ⅹxxx| 国产欧美综合一区二区三区| 51精品国产黑色丝袜高跟鞋| 国产成人一级片| 日韩电影免费一区| 91精品国产综合久久久久久蜜臀 | 超级碰碰久久| 在线亚洲+欧美+日本专区| 88av.com| 二区三区精品| 精品日韩成人av| 特级西西人体4444xxxx| 亚洲盗摄视频| 色视频www在线播放国产成人| 久久精品一区二区三区四区五区| 亚洲精品97| 久久久久国产精品一区| www.国产com| 美女视频网站黄色亚洲| 亚洲一区二区三区777| 黄色一级大片在线免费看国产一 | 91九色美女在线视频| 欧美日韩国产激情| 一区二区三区 日韩| 九九99久久精品在免费线bt| 欧美精品一区二区三区蜜臀| 少妇特黄一区二区三区| 欧美xxxx中国| 久久久久久美女| 波多野结衣日韩| 国产精品91xxx| 任我爽在线视频精品一| 91黄色在线| 在线免费观看日本一区| 老女人性生活视频| 欧美激情在线精品一区二区三区| 成年人精品视频| 午夜影院免费在线观看| 国产一区二区在线影院| 麻豆av一区二区| 欧美一区二区三区在线观看免费| 亚洲成人av中文| 岛国毛片在线播放| 欧美日韩夜夜| 久久不射电影网| 黄色片视频免费| 国产精品夜夜嗨| 日韩av不卡播放| 欧美aaaaaaa| 欧美日韩1234| 欧美特黄一区二区三区| 欧美精品网站| 成人激情视频网| 国产香蕉在线| 福利二区91精品bt7086| 日本中文字幕精品—区二区| 亚洲精品456| 午夜精品久久久久久久男人的天堂| 一区二区乱子伦在线播放| 99re免费视频精品全部| 日本天堂免费a| 疯狂欧洲av久久成人av电影| 国产一区二区欧美日韩| av大片免费在线观看| 国产精品456| 裸体裸乳免费看| 亚洲精品555| 国产一区二区欧美日韩| 久久精品一二区| 成人午夜电影久久影院| 粉嫩av一区二区三区天美传媒| yy6080久久伦理一区二区| 亚洲免费精彩视频| 国产福利拍拍拍| 成人激情校园春色| www.男人天堂网| 欧美另类中文字幕| 欧美理论片在线观看| 亚洲一区二区色| 亚洲国产精品传媒在线观看| 日本999视频| 国产一区二区三区日韩精品| 欧洲成人免费视频| 免费黄网站在线观看| 欧美性极品少妇精品网站| 粉嫩av懂色av蜜臀av分享| 黄色亚洲在线| 国内精品视频免费| 久草在线资源福利站| 精品视频久久久久久| 国产精品久久久免费视频| 91小视频免费看| 欧美日韩亚洲一二三| 免费成人av| 国产精品十八以下禁看| 美女羞羞视频在线观看| 在线成人高清不卡| 校园春色 亚洲| 高清免费成人av| 成人av一级片| 精品一区二区三区的国产在线观看| 国产精品美女在线| 看黄网站在线观看| 日韩免费性生活视频播放| 亚洲国产综合久久| 91丨porny丨中文| 亚欧在线免费观看| 亚洲精品中文字幕乱码| 91丝袜脚交足在线播放| 理论片午夜视频在线观看| 亚洲人成伊人成综合网久久久| а中文在线天堂| 亚洲欧美一区二区视频| 69亚洲乱人伦| 丝袜诱惑制服诱惑色一区在线观看| 日韩电影免费观看在| 久久久国产精品入口麻豆| 久久久久久伊人| 国产尤物视频在线| 91精品国产91久久综合桃花 | 91福利视频网站| 男女性高潮免费网站| 99久久国产综合精品色伊 | 日本免费久久| 久久这里有精品视频| 日韩一级片免费观看| 色狠狠av一区二区三区| 91人妻一区二区三区蜜臀| www.在线欧美| 中文字幕精品一区二区三区在线| 国语自产精品视频在线看8查询8| 欧美第一黄网| 免费一级欧美片在线观看网站| 97热在线精品视频在线观看| 1024免费在线视频| 亚洲国产福利在线| 91theporn国产在线观看| 天天射综合影视| 91制片厂在线| 久久奇米777| 91视频免费入口| 日精品一区二区三区| www.xxx麻豆| 欧美大人香蕉在线| 免费电影一区| japanese色系久久精品| 国产色婷婷国产综合在线理论片a| 电影k8一区二区三区久久| 日韩在线免费高清视频| 久色视频在线| 亚洲国产精品美女| 精品欧美一区二区精品少妇| 欧美三级午夜理伦三级中视频| 中日韩精品视频在线观看| 亚洲色图.com| av永久免费观看| 91美女片黄在线观看| av漫画在线观看| 国产一区二区三区久久悠悠色av| 亚洲性生活网站| 欧美专区18| 一女被多男玩喷潮视频| 亚洲视频精品| 日韩免费在线观看av| 久久精品影视| 一区二区三区我不卡| 九色精品91| 欧美日韩一区在线观看视频| 欧亚精品一区| 精品蜜桃传媒| 国产一级成人av| 国产日韩欧美一区二区三区四区| 国产在线视频欧美一区| 成人免费在线视频网址| 欧美亚洲二区| 国产中文字幕亚洲| 免费一区二区三区四区| 国产精品男女猛烈高潮激情| 日韩成人高清| 国产成人拍精品视频午夜网站| 在线观看欧美日韩电影| 欧美一级大片在线观看| 日本在线播放一二三区| 奇米四色中文综合久久| 美女福利一区二区| 国产成+人+综合+亚洲欧洲| 成人午夜精品| 国产精品色悠悠| 在线免费成人| 91夜夜未满十八勿入爽爽影院| 99视频有精品高清视频| 成人信息集中地欧美| 久久一级大片| 国产精品久久亚洲7777| 成人午夜大片| 久久婷婷开心| 精品一区二区三区在线 | 中文字幕一区二区久久人妻网站| 99久久精品一区| 国产精品1000部啪视频| 国产亚洲污的网站| 亚洲欧美卡通动漫| 亚洲视频中文字幕| 久久久久久久久99| 黑人精品xxx一区| 樱花视频在线免费观看| 欧美日韩精品一区二区三区 | 成人精品免费网站| 粉嫩av懂色av蜜臀av分享| 国产日韩欧美高清在线| 亚洲AV成人无码网站天堂久久| 亚洲日本在线a| 日本学生初尝黑人巨免费视频| 欧美三级免费观看| 亚洲一区二区天堂| 精品少妇一区二区三区视频免付费| 欧美熟妇乱码在线一区| 国产亚洲欧美aaaa| 超鹏97在线| 日本成人精品在线| 国产成人久久精品一区二区三区| 国产精品一区二区三区观看| 精品在线手机视频| 无码毛片aaa在线| 香蕉久久国产| 国产一级片中文字幕| 久久久无码精品亚洲日韩按摩| 日本美女黄色一级片| 午夜电影久久久| 亚洲综合精品国产一区二区三区| 日韩久久久久久| wwwxxx在线观看| 欧美激情精品久久久久久大尺度| 免费欧美电影| 国产精品手机在线| 91亚洲国产成人久久精品| 欧美精品自拍视频| 久久99精品久久久久久国产越南| 国产在线不卡av| 中文字幕视频一区| 五月天综合激情网| 日韩一区二区三区四区五区六区| 玖玖综合伊人| 高清欧美性猛交xxxx| 粉嫩91精品久久久久久久99蜜桃 | 视频二区在线观看| 久久精品成人一区二区三区| 美女一区网站| 国产欧美日韩一区| 亚洲欧美网站在线观看| 日本999视频| 久久综合精品国产一区二区三区| 青青青在线视频| 91麻豆精品国产自产在线观看一区| 免费人成黄页在线观看忧物| 久久久久久久久91| 日韩视频在线直播| 一本久久a久久精品vr综合| 一区二区三区四区五区在线| 天堂va欧美va亚洲va老司机| 亚洲欧美综合色| 中国a一片一级一片| 亚洲女人天堂网| 国产黄大片在线观看| 超碰97国产在线| 91超碰成人| 欧美视频亚洲图片| 中文字幕一区在线观看视频| 天堂网一区二区| 亚洲精品视频在线观看视频| av手机免费在线观看| 成人欧美一区二区三区在线观看 | 日本成人一区| 91精品国产91久久久久久| 大桥未久女教师av一区二区| av动漫在线播放| 国产精品88av| 精品无码人妻一区二区三| 欧美videos大乳护士334| av网站在线看| 91美女高潮出水| 中文不卡在线| 91福利视频免费观看| 一区二区三区欧美| 国产成人自拍一区| 亚州欧美日韩中文视频| 欧美人妖视频| 无码人妻丰满熟妇区毛片| 国产亚洲成av人在线观看导航| 波多野结衣一区二区三区四区| 国产小视频国产精品| 国产亚洲一区二区手机在线观看| 日韩成人av网站| 蜜臂av日日欢夜夜爽一区| 中文国语毛片高清视频| 日韩一区二区在线看片| av免费在线视| 欧美aaaaa喷水| 免费一区二区视频| 久久国产波多野结衣| 日韩欧美国产一区二区在线播放| 黄色小说在线播放| 欧美下载看逼逼| 老司机精品视频在线| 亚洲色图综合区| 日韩h在线观看| 成人国产精品| 欧美激情亚洲天堂| 久久亚洲二区三区| 96亚洲精品久久久蜜桃| 欧美国产日韩在线| 亚洲都市激情| 色婷婷一区二区三区在线观看| 一区二区三区四区中文字幕| 特黄视频在线观看| 国产精品久久久久久久久久免费| 亚洲在线久久| 一区二区三区少妇| 欧美美女bb生活片| free性欧美16hd| 午夜精品一区二区三区四区| 国产精品白丝jk黑袜喷水| 国产毛片aaa| 久久久精品电影| 美女av一区| 亚洲va在线va天堂va偷拍| 午夜a成v人精品| 午夜在线视频| 精品伦理一区二区三区| 国内精品自线一区二区三区视频| 亚洲欧美在线视频免费| 久久精品国产久精国产思思| 欧美黄色网视频| 久久无码人妻一区二区三区| 高跟丝袜欧美一区| 色www永久免费视频首页在线| 日日骚一区二区网站| 丁香婷婷综合网|