您好,登錄后才能下訂單哦!
阿里妹導(dǎo)讀:選擇有時(shí)候比努力重要,真正厲害的人不僅僅是埋頭苦干,而是會(huì)利用好的思維方式、好的方法,看穿事物的本質(zhì),順勢(shì)而為,找到事情的最優(yōu)解,并懂得舉一反三。架構(gòu)師是程序員的目標(biāo)之一,但大多數(shù)程序員無(wú)法成為架構(gòu)師。真正厲害的架構(gòu)師具備什么樣的思維方式,到底強(qiáng)在哪?今天,韓帥為你揭秘。
韓帥的其他文章:《架構(gòu)整潔之道,看這一篇就夠了!》
世界上所有的道理都是相通的,而有一些相似到令人吃驚,模型思考者和架構(gòu)師就是如此。《模型思考者》是密西根大學(xué)教授 斯科特·佩奇 的一本書,這本書的目的是教大家如何理解和應(yīng)對(duì)這個(gè)復(fù)雜的世界。目前這本書的中文版還沒(méi)正式出版,得到 萬(wàn)維鋼精英日課中有15節(jié)課程講解。
這一篇文章是篇讀書筆記,內(nèi)容來(lái)自榮華老師的文章,還有萬(wàn)維鋼精英日課中對(duì)《模型思考者》的講解,結(jié)合一些自己的理解和思考。學(xué)習(xí)了這些后,我的學(xué)習(xí)和成長(zhǎng)都有了框架有了方向,如果你覺(jué)得很有收獲,可以閱讀原著,歡迎留言區(qū)交流。榮華老師的原文還未正式發(fā)布,這里在榮華老師同意下,節(jié)選了部分內(nèi)容,識(shí)別下方二維碼,即可閱讀,供大家參考、學(xué)習(xí)。
一、什么是架構(gòu)?
ISO/IEC 42010:20072 中對(duì)架構(gòu)的定義如下:
The fundamental organization of a system, embodied in its components, their relationships to each other and the enviroment, and the principles governing its design and evolution. 職責(zé)明確的模塊或者組件
組件間明確的關(guān)聯(lián)關(guān)系
約束和指導(dǎo)原則
越是簡(jiǎn)單抽象的定義,越是美,越是通用。小到一個(gè)玩具,大到一個(gè)國(guó)家的運(yùn)作都可以隱含著這樣的內(nèi)容。
舉兩個(gè)簡(jiǎn)單的例子,我們來(lái)一起看他們的三要素分別是什么。
軟件架構(gòu)
模塊:模型、域
關(guān)系:一對(duì)一、一對(duì)多(模型);依賴(域)
原則:?jiǎn)我宦氊?zé)、開(kāi)閉原則、里氏替換原則等等
組織架構(gòu)
模塊:部門
關(guān)系:管理 or 上報(bào)
原則:各種管理原則、財(cái)務(wù)原則
從不同的角度來(lái)豐富架構(gòu)的定義:
架構(gòu)的原則是簡(jiǎn)單,但不能有遺漏;
架構(gòu)的目的是解決問(wèn)題。問(wèn)題的尺度上,可以大到國(guó)家戰(zhàn)略問(wèn)題、經(jīng)濟(jì)問(wèn)題、民生問(wèn)題,也可以小到一只鋼筆如何均勻地吐墨;時(shí)間上,可以是當(dāng)下的問(wèn)題,也可以是預(yù)期以后會(huì)發(fā)生的問(wèn)題;
架構(gòu)不是一成不變的,它只適合于特定的場(chǎng)景。過(guò)去的架構(gòu)不一定適合現(xiàn)在,當(dāng)下的架構(gòu)不一定能預(yù)測(cè)未來(lái)。
二、什么是架構(gòu)師?
架構(gòu)師是一個(gè)角色,定義角色其實(shí)是定義職責(zé),架構(gòu)師的職責(zé)是:識(shí)別并定義問(wèn)題,創(chuàng)建、選擇或調(diào)整架構(gòu),從而找到最優(yōu)的方案,解決問(wèn)題。
這其實(shí)也是架構(gòu)師做事的一般套路:定義問(wèn)題->確定架構(gòu)->提出方案->落地拿結(jié)果。這四步中,越是前面的步驟,越是重要,越是抽象,也越是困難,越能體現(xiàn)架構(gòu)師的功力。
1.什么是問(wèn)題?
問(wèn)題的定義很寬泛,生存或是毀滅?這是一個(gè)問(wèn)題。晚上去吃燒烤不?也是一個(gè)問(wèn)題。架構(gòu)師常說(shuō),我的架構(gòu)解決了什么問(wèn)題,這里的問(wèn)題不是一般性的問(wèn)題,而是特指馬克思哲學(xué)中的矛盾(矛盾的定義也很寬泛,注意這里是馬克思哲學(xué)中的矛盾)。
問(wèn)題就是事物的矛盾。哪里有沒(méi)有解決的矛盾,哪里就有問(wèn)題。
——毛澤東
任何事物都是作為矛盾統(tǒng)一體而存在的,矛盾是事物發(fā)展的源泉和動(dòng)力。
——馬克思
架構(gòu)師要定義和解決的問(wèn)題,就是特定領(lǐng)域中的矛盾,解決了矛盾,就得到了發(fā)展,取得了收益。
關(guān)于問(wèn)題本質(zhì)的更多解讀,請(qǐng)閱讀附錄部分榮華老師的原文:如何自頂向下構(gòu)建架構(gòu)(進(jìn)階之路)。
既然架構(gòu)師眼中的問(wèn)題就是馬克思哲學(xué)中的矛盾,我們就可以從馬克思哲學(xué)中學(xué)習(xí)定義問(wèn)題的系統(tǒng)方法,比如矛盾分主要矛盾、次要矛盾。主要矛盾指:在事物發(fā)展過(guò)程中處于支配地位,對(duì)事物發(fā)展起決定作用的矛盾;次要矛盾指:處于從屬地位、對(duì)事物發(fā)展不起決定作用的矛盾;主次矛盾相互依賴、相互影響,并在一定條件下相互轉(zhuǎn)化。
當(dāng)我們面對(duì)復(fù)雜的問(wèn)題時(shí)要不斷反思,這是不是主要問(wèn)題?是不是當(dāng)下最主要的問(wèn)題?
2.如何區(qū)分問(wèn)題、手段、挑戰(zhàn)
我們述職或晉升時(shí)常常要說(shuō)問(wèn)題、手段、挑戰(zhàn),但這些概念總是混淆在一起,很難區(qū)分一件事情是問(wèn)題還是手段。其實(shí)問(wèn)題、手段、挑戰(zhàn)都是一回事,都是矛盾,只是層次不同。比如:
每一個(gè)問(wèn)題可以向下不斷展開(kāi)不斷細(xì)化,下一級(jí)的問(wèn)題是上一級(jí)問(wèn)題的具體解決手段,當(dāng)你把“提升性能”當(dāng)做你Owner的問(wèn)題時(shí),提升幀率、提高頁(yè)面秒開(kāi)率、優(yōu)化啟動(dòng)耗時(shí)就成為了你的具體解決手段;而手段的下一級(jí)問(wèn)題,就是你將面臨的挑戰(zhàn),比如你要優(yōu)化網(wǎng)絡(luò)耗時(shí),你要面臨的挑戰(zhàn)就有弱網(wǎng)環(huán)境、一些國(guó)家區(qū)域的帶寬問(wèn)題等等。同理,當(dāng)你把“提升用戶體驗(yàn)”當(dāng)做你Owner的問(wèn)題,“提升性能”就變成了你的具體手段,幀率、秒開(kāi)率、啟動(dòng)耗時(shí)就成為了挑戰(zhàn)。
3.如何定義問(wèn)題
The significant problems we face cannot be solved at the same level of thinking we were at when we created them.——愛(ài)因斯坦
榮華老師把愛(ài)因斯坦這種思想定義為升層思考:我們不能只局限于問(wèn)題本身,還需要看到問(wèn)題背后的問(wèn)題,然后才能更容易找到更多的解決方案。
亨利福特說(shuō),如果我問(wèn)客戶需要什么,他們會(huì)告訴我,他們需要一匹更快的馬。從亨利福特的這句話,我們可以提煉出一個(gè)最直接的問(wèn)題:客戶需要一匹更快的馬。立足這個(gè)問(wèn)題本身去找解決方案,可能永遠(yuǎn)交不出滿意的答卷:尋找更好的品種,更科學(xué)的訓(xùn)馬方式。
思考問(wèn)題背后的問(wèn)題,為什么客戶需要一匹更快的馬?可能客戶想要更快的日常交通方式,上升了一個(gè)層次后,我們立刻找到了更好的解決方案:造車。
閱讀了本段內(nèi)容,相信你不僅僅理解了什么是架構(gòu)師,也理解了架構(gòu)師的做事套路和思考方式。
三、什么是模型?
《模型思考者》中對(duì)模型的定義是這樣的:
模型是對(duì)真實(shí)世界的抽象,明確定義了各種元素、以及元素之間的關(guān)系,可以用來(lái)做邏輯推導(dǎo)。
對(duì)比架構(gòu)三要素和模型的定義,相同點(diǎn)是都有元素(組件),以及元素(組件)間的關(guān)系。不同的是,架構(gòu)強(qiáng)調(diào)約束和指導(dǎo)原則,用來(lái)指導(dǎo)我們?nèi)绾巫鍪?;模型?qiáng)調(diào)邏輯推導(dǎo)能力,指導(dǎo)我們?cè)诂F(xiàn)有規(guī)律下尋找答案或?qū)で笞顑?yōu)解。
舉個(gè)使用模型解決問(wèn)題的例子:如果你是一位高中班主任,想要提高班級(jí)中考試成績(jī)大于90分的人數(shù),你應(yīng)該怎么做?
首先要找到正確的模型。關(guān)鍵元素有兩個(gè):考試成績(jī)、相應(yīng)的學(xué)生人數(shù),這兩個(gè)元素之間的關(guān)系是正態(tài)分布函數(shù),所以應(yīng)該使用的是正態(tài)分布模型。
然后使用模型做推導(dǎo),找到問(wèn)題的最優(yōu)解。正態(tài)分布函數(shù)有兩個(gè)關(guān)鍵變量:均值、方差,只要這兩個(gè)變量確定了,正態(tài)分布就唯一確定了。想要提高班級(jí)中考試成績(jī)大于90分的人數(shù),我們有兩個(gè)選擇,提高均值,或者提高方差。即使忽略提高方差帶來(lái)的負(fù)面影響(成績(jī)差的同學(xué)也更多了),提高方差帶來(lái)的正面影響也遠(yuǎn)遠(yuǎn)遜色于提高均值,特別是當(dāng)均值接近90分時(shí),均值哪怕提高1分,大于90分的人數(shù)都有巨大提升。
最后根據(jù)推導(dǎo)結(jié)果,確定具體落地方案。放棄提高方差的方法,比如給成績(jī)好的同學(xué)特別的照顧,把成績(jī)不好的同學(xué)座位調(diào)到后排。多采取提升均值的方法,比如培養(yǎng)班級(jí)的學(xué)習(xí)氛圍,成立學(xué)習(xí)小組等等。
四、什么是模型思考者?
參考架構(gòu)師,用模型思考者的做事方式來(lái)給它下定義:面對(duì)問(wèn)題,能看穿客觀事物的本質(zhì),選取或構(gòu)建合適的模型,推導(dǎo)出問(wèn)題的最優(yōu)解。
就像架構(gòu)和模型的定義類似,只是突出的重點(diǎn)不同一樣,架構(gòu)師和模型思考者的定義也很類似,重點(diǎn)也不同。架構(gòu)師的重點(diǎn)是定義問(wèn)題、解決問(wèn)題、推動(dòng)事物發(fā)展;模型思考者的重點(diǎn)是看穿事物的本質(zhì),遵循規(guī)律,找到最優(yōu)解。
接下來(lái)介紹幾個(gè)驚艷的模型:
1.認(rèn)知模型(認(rèn)知金字塔):這個(gè)模型揭示的是認(rèn)知的本質(zhì),給出了一條提升認(rèn)知的最佳實(shí)踐。
模型解釋:
金字塔的最底層是數(shù)據(jù)。數(shù)據(jù)代表各種事件和現(xiàn)象。數(shù)據(jù)本身沒(méi)有組織和結(jié)構(gòu),也沒(méi)有意義。數(shù)據(jù)只能告訴你發(fā)生了什么,并不能讓你理解為什么會(huì)發(fā)生。
數(shù)據(jù)的上一層是信息。信息是結(jié)構(gòu)化的數(shù)據(jù)。信息是很有用的,可以用來(lái)做分析和解讀。
信息再往上一層是知識(shí)。知識(shí)能把信息組織起來(lái),告訴我們事件之間的邏輯聯(lián)系。有云導(dǎo)致下雨,因?yàn)橄掠晁蕴鞖庾兊脹隹?,這都是知識(shí)。成語(yǔ)典故和思維套路都是知識(shí)。模型,則可以說(shuō)是一種高級(jí)知識(shí),能解釋一些事情,還能做預(yù)測(cè)。
認(rèn)知金字塔的最上一層,是智慧。智慧是識(shí)別和選擇相關(guān)知識(shí)的能力。你可能掌握很多模型,但是具體到這個(gè)問(wèn)題到底該用哪個(gè)模型,敢不敢用這個(gè)模型,就是智慧。
信息焦慮:處在信息時(shí)代,很多人都有信息焦慮,生怕自己每天閱讀的信息不夠多而被時(shí)代拋下,每天疲于輸入新的信息,沒(méi)時(shí)間思考總結(jié),結(jié)果隨著信息的遺忘,什么也沒(méi)留下。其實(shí)相比于信息,模型并沒(méi)有那么多,我們應(yīng)該花更多的時(shí)間總結(jié)模型,明確模型的使用范圍(智慧)。
數(shù)據(jù)分析:開(kāi)發(fā)完一個(gè)功能,加一些埋點(diǎn),跑sql能拿到數(shù)據(jù),做報(bào)表能拿到信息,針對(duì)報(bào)表所做的分析屬于知識(shí)。反思一下自己,有多少埋點(diǎn)還沒(méi)跑數(shù)據(jù),有多少數(shù)據(jù)還沒(méi)結(jié)構(gòu)化為信息?多少信息還沒(méi)做分析?多少分析還沒(méi)做下一步?jīng)Q策?
指導(dǎo)投資:DALIO 的《原則》一書中提到了橋水基金掙錢方法:不斷采集市場(chǎng)數(shù)據(jù),使用計(jì)算機(jī)加工數(shù)據(jù)抽象模型,根據(jù)模型自動(dòng)做投資決策。計(jì)算機(jī)的這個(gè)行為,不就是模型思考者嗎?
2.索洛模型(經(jīng)濟(jì)增長(zhǎng)模型)
這是個(gè)拿了諾貝爾經(jīng)濟(jì)學(xué)獎(jiǎng)的模型,揭示的是經(jīng)濟(jì)增長(zhǎng)的本質(zhì)。
模型解釋(摘抄自得到精英日課):
O代表經(jīng)濟(jì)產(chǎn)出,A代表技術(shù)進(jìn)步,L代表勞動(dòng)力,s代表儲(chǔ)蓄率,d代表折舊率。
O與L成線性關(guān)系:索洛考慮勞動(dòng)力有兩個(gè)作用:他們不僅僅是去工廠上班工作,他們還要拿工資,拿了工資會(huì)存錢,存的這個(gè)錢可以用來(lái)投資。經(jīng)濟(jì)產(chǎn)出跟勞動(dòng)力工作是平方根關(guān)系,跟勞動(dòng)力的投資也是平方根關(guān)系,所以跟勞動(dòng)力本身就成了正比關(guān)系。
O與A成平方關(guān)系:你的技術(shù)更先進(jìn),你的產(chǎn)出就比別人的產(chǎn)出更值錢 —— A 代表了你的技術(shù)附加值。為什么經(jīng)濟(jì)產(chǎn)出和 A2 成正比?因?yàn)?A 有兩個(gè)效應(yīng)。一個(gè)是 A 能直接增加產(chǎn)出,一個(gè)是因?yàn)?A 增加了產(chǎn)出,會(huì)導(dǎo)致相對(duì)于同樣的折舊,投資也會(huì)增加。如果你能把技術(shù)附加值變成兩倍,你的總產(chǎn)出就會(huì)變成四倍。
單純的投資行為,會(huì)被折舊追平,是邊際效應(yīng)遞減的過(guò)程,不可持續(xù)
勞動(dòng)力對(duì)經(jīng)濟(jì)增長(zhǎng)的影響是線性的,但是技術(shù)進(jìn)步的影響是平方的,面對(duì)我國(guó)人口問(wèn)題,追求技術(shù)進(jìn)步是唯一出路,技術(shù)進(jìn)步是真正的增長(zhǎng)之本。
3.其他的模型:
《模型思考者》中有許多許多模型,每個(gè)模型有詳細(xì)的解釋,以及模型的適用場(chǎng)景,比如:適用于市場(chǎng)營(yíng)銷、病毒傳播領(lǐng)域的“傳播模型”,研究穩(wěn)態(tài)與“宿命”的“馬爾可夫模型”,大家感興趣可以閱讀原著。
五、總結(jié)
架構(gòu)師和模型思考者是非常相似的兩套做事方法,對(duì)于所研究的系統(tǒng),當(dāng)我們可以對(duì)系統(tǒng)做修改時(shí),可以用架構(gòu)師思維,定義問(wèn)題、解決問(wèn)題,推動(dòng)系統(tǒng)一步步完善;當(dāng)我們無(wú)法影響系統(tǒng)運(yùn)行機(jī)制時(shí),要用模型思考者思維,洞見(jiàn)其本質(zhì),順勢(shì)而為,找到最優(yōu)解。
參考文章:
榮華老師的多篇文章<識(shí)別下方二維碼或文末“閱讀原文”即可在線閱讀>
萬(wàn)維鋼精英日課,《模型思考者》系列課程
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。