日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務,提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

Soft skills are always hard than hard skills. 軟技能比硬技能難。

老板聽說最近流行“微服務”,問架構師咱們的系統(tǒng)要不要來一套?老板又聽說最近流行“中臺系統(tǒng)”,問架構師咱們要不要搞起來?其實,這些問題不用老板問,關注技術發(fā)展趨勢的架構師每當聽到新的技術或解決方案,都會暗中思忖是否應用到系統(tǒng)中。然而,用或不用,總不能憑感覺吧。此時,如果你能靈活運用康威定律,那么做出的判斷將更加完美。

康威定律

康威定律是馬爾文·康威1967提出的:“設計系統(tǒng)的架構受制于產生這些設計的組織的溝通結構。”通俗的來講:產品必然是其(人員)組織溝通結構的縮影。

跨部門溝通是非常難的,系統(tǒng)各個模塊的接口也反映了它們之間的信息流動和合作方式。

 

每個架構師都知道的康威定律,你確定不來看看?

 

 

康威定律可謂軟件架構設計中的第一定律,起初只是在雜志上的發(fā)表,后經過《人月神話》這本軟件界圣經的引用,并命名為康威定律(Conway’s law),因此得以推廣。

只通過簡單的描述可能無法理解康威定律的精髓所在,原文中康威定律可總結為四個定律:

  • 第一定律 組織溝通方式會通過系統(tǒng)設計表達出來。
  • 第二定律 時間再多一件事情也不可能做的完美,但總有時間做完一件事情。
  • 第三定律 線型系統(tǒng)和線型組織架構間有潛在的異質同態(tài)特性。
  • 第四定律 大的系統(tǒng)組織總是比小系統(tǒng)更傾向于分解。

第一定律

Communication dictates design。

組織溝通方式決定系統(tǒng)設計。

這條定律重點是講組織架構和溝通對系統(tǒng)設計的影響。組織的溝通和系統(tǒng)的設計之間緊密相連,特別是復雜系統(tǒng),解決好人與人的溝通才能有一個更好的系統(tǒng)設計。

《人月神話》中總結出了隨著人員的增加溝通成本呈指數(shù)增長的規(guī)律:溝通成本 = n(n-1)/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

這也是為什么互聯(lián)網(wǎng)公司都追求小團隊的原因之一。溝通的問題會帶來系統(tǒng)設計的問題,進而影響整個系統(tǒng)的開發(fā)效率和最終產品結果。

第二定律

There is never enough time to do something right, but there is always enough time to do it over。

時間再多一件事情也不可能做的完美,但總有時間做完一件事情。

人手永遠是不夠的,事情永遠是做不完的,但可以一件一件來。這不就是軟件行業(yè)中“敏捷開發(fā)”模式所解決的問題嗎。面對這樣的狀況,敏捷開發(fā)可以做到不斷迭代、持續(xù)交付、快速驗證和反饋,并持續(xù)改進。

再牛的開發(fā)也會寫出bug,再全面的測試覆蓋率也無法測出所有的問題。解決方案不是消滅這些問題,是容忍一些問題的存在,然后通過適當?shù)脑O計(冗余、監(jiān)控、高可用設計)當問題發(fā)生時能夠快速解決。

幾個開發(fā)人員的小公司,去追求微服務、去追求中臺架構,這是追求完美嗎?不是,是找死。

好的架構不是買來的,也不是設計出來的,而是根據(jù)業(yè)務落地生根長期演化來的。

第三定律

There is a homomorphism from the linear graph of a system to the linear graph of its design organization。

線型系統(tǒng)和線型組織架構間有潛在的異質同態(tài)特性。

這一定律是第一定律的具體應用。想象一下如果公司的組織架構是這樣的:團隊是分布式,每個團隊都包含產品、研發(fā)、測試、運維等角色。而此時系統(tǒng)是單塊的,項目溝通和協(xié)調的成本是巨大的,弄不好還會打起來。

 

每個架構師都知道的康威定律,你確定不來看看?

 

 

如果將單塊的系統(tǒng)拆分成微服務,每個團隊負責自己的部分,對外提供對應的接口即可,互不干擾。系統(tǒng)效率將得到提升。這與軟件設計中的高內聚、低耦合是相通的。

 

每個架構師都知道的康威定律,你確定不來看看?

 

 

直白的說就是想要什么的系統(tǒng)就搭建什么樣的團隊,有什么樣的團隊就搭建什么樣的系統(tǒng)。需要前后端分離的系統(tǒng)就搭建前后端分離的團隊,反之,擁有前后端分離的團隊,可以設計前后端分離的系統(tǒng)。當然,如果能統(tǒng)籌管理,擁有重組團隊或設計系統(tǒng)架構的權利,那就再好不過了。通常情況下讓兩者形成1:1的映射關系,更加高效。

第四定律

The structures of large systems tend to disintegrate during development, qualitatively more so than with small systems。

大的系統(tǒng)組織總是比小系統(tǒng)更傾向于分解。

“話說天下大勢,分久必合,合久必分。”系統(tǒng)越復雜,越需要增加人手,人手越多,溝通成本也呈指數(shù)增長。分而治之便是大多數(shù)公司選擇的解決方案。分不同的層級,分不同的小團隊,讓團隊內部完成自治理,然后統(tǒng)一對外溝通。

小結

架構不僅僅需要技術,在大公司尤其需要政治,所謂的架構的政治。

分享到:
標簽:定律 康威
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定