日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Conway#39;s law(康威定律)

發布時間:2023/12/4 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Conway#39;s law(康威定律) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


Mel Conway? 康威在加利福尼亞理工學院獲得物理學碩士學位,在凱斯西儲大學獲得數學博士學位。畢業之后,他參與了很多知名的軟件項目,如 Pascal 編輯器。在他的職業生涯中,康威觀察到一個現象:軟件團隊開發的產品是對公司組織架構的反映。

1967 年他針對這個現象提交了一篇論文。(http://www.melconway.com/Home/Conways_Law.html)給 《哈佛商業評論》。結果程序員屌絲的文章不入商業人士的法眼,無情被拒,康威就投到了一個編程相關的雜志,所以被誤解為是針對軟件開發的。

最初這篇文章顯然不敢自稱定律(law),只是描述了作者自己的發現和總結。后來,在Brooks Law著名的人月神話中,引用這個論點,并將其“吹捧”成了現在我們熟知“康威定律”。

康威定律的核心如下:

Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure.

任何設計系統的組織,必然會產生以下設計結果:即其結構就是該組織溝通結構的寫照。簡單來說: 產品必然是其組織溝通結構的縮影。

?

為什么溝通會影響產品、架構等?

在《人月神話》 中提到這樣一個觀點:

Adding manpower to a late software project makes it later --Fred Brooks, (1975)?

為了趕進度加程序員就像用水去滅油鍋里的火一樣(無奈大家還是前赴后繼)。

為什么會有這樣的情況,《人月神話》中給出了簡潔的答案:?

溝通成本 = n(n-1)/2,溝通成本隨著項目或者組織的人員增加呈指數級增長。是的,項目管理這個算法的復雜度是O(n^2)。舉個例子:

  • 5個人的項目組,需要溝通的渠道是 5*(5–1)/2 = 10

  • 15個人的項目組,需要溝通的渠道是15*(15–1)/2 = 105

  • 50個人的項目組,需要溝通的渠道是50*(50–1)/2 = 1,225

  • 150個人的項目組,需要溝通的渠道是150*(150–1)/2 = 11,175

所以知道為什么互聯網創業公司都這么小了吧,必須小啊,不然等CEO和所有人講一遍創業的想法后,風投的錢都燒完了。

?

Mike Amundsen 在 《遠距離條件下的康威定律——分布式世界中實現團隊構建》 講座中(http://www.infoq.com/cn/presentations/team-building-implementation-in-distributed-world?)還舉了一個非常有意思的理論,叫“Dunbar Number”,這是一個叫Dunbar(廢話)生物學家在1992年最早提出來的。最初,他發現靈長類的大腦容量和其對應的族群大小有一定關聯,進而推斷出人類的大腦能維系的關系的一些有趣估計。舉例來說

  • 親密(intimate)朋友: 5

  • 信任(trusted)朋友: 15

  • 酒肉(close)朋友: 35

  • 照面(casual)朋友: 150

溝通的問題,會帶來系統設計的問題,進而影響整個系統的開發效率和最終產品結果。

?

什么樣的團隊,產生什么樣的架構

你想要什么樣的系統,就搭建什么樣的團隊。如果你的團隊分成前端團隊,Java后臺開發團隊,DBA團隊,運維團隊,你的系統就會長成下面的樣子:

典型的分層架構:

如果你的系統是按照業務邊界劃分的,大家按照一個業務目標去把自己的模塊做出小系統,小產品的話,你的大系統就會長成下面的樣子,即微服務的架構。

?

微服務的理念團隊間應該是 inter-operate, not integrate 。inter-operate是定義好系統的邊界和接口,在一個團隊內全棧,讓團隊自治,原因就是因為如果團隊按照這樣的方式組建,將溝通的成本維持在系統內部,每個子系統就會更加內聚,彼此的依賴耦合能變弱,跨系統的溝通成本也就能降低。?

?

參考資料:

微服務架構的理論基礎 - 康威定律?
https://yq.aliyun.com/articles/8611?

每個架構師都應該研究下康威定律?
http://www.infoq.com/cn/articles/every-architect-should-study-conway-law

原文地址:http://www.cnblogs.com/ghj1976/p/5703462.html


.NET社區新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關注

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Conway#39;s law(康威定律)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。