內(nèi)功
最近太忙了,忙得沒有時間思考和總結(jié)蔓挖。近大半年一直在做架構(gòu)設計和架構(gòu)且談起架構(gòu)設計夕土,剛好有許多心得想分享給大家。談起架構(gòu)設計瘟判,腦海里如果沒有出現(xiàn)架構(gòu)設計的六大原則
怨绣、康威定律
,那應該是一個還沒來得及修煉內(nèi)功的架構(gòu)師拷获。沒聽過的讀者篮撑,可能會希望我給大家結(jié)合案例來普及基本知識,作為作者的我也比較懶匆瓜,就簡單地給大家扒點概念赢笨,更多的內(nèi)容還是靠大家自行百度或谷歌了未蝌。
- 架構(gòu)設計的六大原則
單一職責原則(Single Responsibility Principle - SRP)
開放封閉原則(Open Closed Principle - OCP)
里氏替換原則(Liskov Substitution Principle - LSP)
最少知識原則(Least Knowledge Principle - LKP)
接口隔離原則(Interface Segregation Principle - ISP)
依賴倒置原則(Dependence Inversion Principle - DIP)
- 康威定律
第一定律 組織溝通方式會通過系統(tǒng)設計表達出來。
第二定律 時間再多一件事情也不可能做的完美茧妒,但總有時間做完一件事情萧吠。
第三定律 線型系統(tǒng)和線型組織架構(gòu)間有潛在的異質(zhì)同態(tài)特性。
第四定律 大的系統(tǒng)組織總是比小系統(tǒng)更傾向于分解桐筏。
那除了上述的兩大神器外怎憋,談架構(gòu)設計的時候,你會想到什么九昧?
……
其實讀者想到啥绊袋,我壓根也不知道-。-铸鹰。開個玩笑癌别,別錘我...
干貨
浸淫了大半年的架構(gòu)迭代,外加業(yè)界新興的理念越來越多蹋笼。我對架構(gòu)設計的理解也是越來越蓬勃展姐,越來越深入。提起架構(gòu)設計剖毯,我的想法不再是用什么框架圾笨,用什么數(shù)據(jù)庫,用什么新技術(shù)逊谋,而是...
先想想架構(gòu)設計的
業(yè)務
是什么擂达?
再想想架構(gòu)設計的組織與流程
是什么?
其次想想架構(gòu)設計的數(shù)據(jù)
有什么胶滋?
然后想想架構(gòu)設計的系統(tǒng)
是什么板鬓?
最后想想架構(gòu)設計能整合哪些外部資源
?
趕緊拿小本本記下來究恤,上面幾點考試要考俭令!
1. 架構(gòu)設計的業(yè)務是什么?
有人說這個架構(gòu)設計的業(yè)務不是有業(yè)務專家部宿、BA在梳理嘛抄腔,我操這個心干嘛呢?非也理张,好的架構(gòu)師有時候需要比業(yè)務專家赫蛇、BA還要專業(yè),只有足夠的深入業(yè)務涯穷,了解業(yè)務棍掐,才能進行好的架構(gòu)設計藏雏。
這讓我想到一個產(chǎn)品設計里面一個非常經(jīng)典的MVP案例拷况,即原始用戶的需求是什么作煌,業(yè)務是什么?這個MVP背后的真實需求其實是“出行”赚瘦,幫助用戶更好的出行粟誓。那么一個滑板、自行車起意、摩托車等等就是比較正確的最小可行性產(chǎn)品鹰服。我們架構(gòu)同樣需要了解業(yè)務真實的訴求,才能輔助我們更好地設計揽咕。
只有深入了解業(yè)務悲酷,明確業(yè)務的初衷和目的,我們才有信心來設計符合產(chǎn)品亲善、符合業(yè)務的架構(gòu)设易,也只有清晰地了解業(yè)務,才能給我們的架構(gòu)設計規(guī)劃出一條合理的迭代路線蛹头,而不是每到一個階段就因為業(yè)務推翻重構(gòu)顿肺。
只了解當下的業(yè)務,設計出的系統(tǒng)肯定是能解決當前用戶訴求的渣蜗,而了解業(yè)務的未來屠尊,設計出的系統(tǒng)肯定是靈活有度,相當持久的耕拷。
2. 架構(gòu)設計的組織與流程是什么讼昆?
如果剛剛有去認真回顧康威定律
的話,你就會發(fā)現(xiàn)架構(gòu)的設計與組織是密不可分的骚烧。往通俗了說控淡,什么人用你設計的
系統(tǒng)架構(gòu)的設計源于業(yè)務組織形態(tài),也將先于組織形態(tài)止潘。
起初掺炭,你的架構(gòu)設計會隨著組織的考慮,符合各種崗位之間的便捷和協(xié)作凭戴,而隨著業(yè)務形態(tài)的改變涧狮,技術(shù)的先進性,技術(shù)會反過來影響組織的么夫。
舉個例子者冤,自從大數(shù)據(jù)、人工智能如火如荼档痪,智能客服涉枫、RPA等技術(shù)的出現(xiàn),給架構(gòu)和系統(tǒng)添加了許多Niubility
的元素的同時腐螟,更是提升了實體組織之間的協(xié)作和效率愿汰。
我在梳理業(yè)務組織形態(tài)的時候困后,發(fā)現(xiàn)原本由于業(yè)務組織的不穩(wěn)定性,反過來影響系統(tǒng)的邊界不合理衬廷,增加系統(tǒng)的設計的復雜度摇予,我反過來推動業(yè)務的組織固化以及崗位的合理能動性,讓系統(tǒng)與業(yè)務形態(tài)更加靈活和契合吗跋。
3. 架構(gòu)設計的數(shù)據(jù)有什么侧戴?
這里的數(shù)據(jù)主要指的我們在系統(tǒng)中運作的數(shù)據(jù)模型、數(shù)據(jù)實體跌宛,甚至主數(shù)據(jù)酗宋。有讀者肯定會疑問為什么談架構(gòu)設計的時候要把數(shù)據(jù)也考慮上呢?可能是你還沒被大數(shù)據(jù)
疆拘、數(shù)據(jù)中臺
這些理念熏陶到本缠,沒有g(shù)et到這里面的一些精華和慘痛的教訓。數(shù)據(jù)這塊真的太重要了入问,數(shù)據(jù)的模型設計合不合理丹锹,將會影響你的架構(gòu)設計是否能夠持續(xù)。
之前談的很火的業(yè)務中臺
芬失,背后最核心的就是業(yè)務模型實體的資產(chǎn)的積累和業(yè)務能力的積累楣黍,業(yè)務模型這塊和我們的數(shù)據(jù)質(zhì)量息息相關(guān)。
架構(gòu)中要考慮的數(shù)據(jù)不單單只是業(yè)務模型實體棱烂,還有考慮數(shù)據(jù)之間的串聯(lián)租漂、數(shù)據(jù)之間的契約與標準,沒有考慮好的話颊糜,在后期發(fā)展過程就會成為一輪又一輪的數(shù)據(jù)治理哩治。
這里推薦大家可以看一些數(shù)據(jù)中臺
相關(guān)的文章,作者比價懶衬鱼,就不推薦了-业筏。-
4. 結(jié)合上述的要求,系統(tǒng)怎么設計架構(gòu)鸟赫?
終于到大家非常擅長的PPT架構(gòu)師設計環(huán)節(jié)蒜胖,用什么框架體系,用什么技術(shù)體系抛蚤,詳細大家還是可以信手拈來的台谢。這里主要還是提一些要注意的點
架構(gòu)的選型與團隊的契合度
架構(gòu)的設計與業(yè)務形態(tài)的契合度
架構(gòu)的設計與運維的復雜程度
架構(gòu)的實現(xiàn)與投入產(chǎn)出比
最重要一點,一定讓業(yè)務岁经、BA朋沮、團隊成員能夠清晰地了解到你的設計思考、架構(gòu)迭代考慮和成本投入缀壤,別為了架構(gòu)而架構(gòu)設計
樊拓。
愿每個讀者都能成為一個偉大的架構(gòu)師纠亚,是的,不脫發(fā)的那種
架構(gòu)師骑脱。