别揉我奶头~嗯~啊~av_日本理伦三级斤_亚洲综合日韩第十页_亚洲va国产天堂va久久 en色www国产亚洲阿娇_一般进去了女人反抗后的表现

首頁(yè) >文化 > 正文

借降本增效之名,探索開(kāi)閉原則架構(gòu)設(shè)計(jì)-天天精選

2023-04-04 10:38:15 來(lái)源:博客園

作者:京東科技胡燦海

引語(yǔ)

在我們的研發(fā)生產(chǎn)活動(dòng)中,經(jīng)常會(huì)遇到如下類(lèi)似的疑惑:

業(yè)務(wù)和技術(shù)在公司組織活動(dòng)中,究竟應(yīng)該各扮演什么樣的角色?


(資料圖)

技術(shù)的目的是什么?

研發(fā)生產(chǎn)活動(dòng)中,如何提高生產(chǎn)事故發(fā)生的下限?

如何充分提高isv或者外協(xié)人員價(jià)值最大化?

《人月神話(huà)》說(shuō)優(yōu)秀程序員是普通程序員研發(fā)效率10倍,如何可以提高研發(fā)效率水位線(xiàn)呢?

如何避免《人月神話(huà)》指出的“焦油坑”?

如何更好的對(duì)老系統(tǒng)進(jìn)行ddd升級(jí)?

這些疑惑單獨(dú)看都可以有很多的解決思路,或者從制度層面解決,或者從技術(shù)層面解決,或者業(yè)務(wù)層面解決,等等,甚至也有可能出現(xiàn)某些解決思路按下葫蘆浮起瓢,但如果將這些問(wèn)題統(tǒng)一起來(lái)看,是否能找到他們對(duì)應(yīng)的共性,嘗試從最底層的邏輯找到問(wèn)題解決的切入點(diǎn)呢?

疫情啟發(fā)

新冠疫情持續(xù)了三年時(shí)間,讓咱們的生活發(fā)生了很多與之前不一樣的改變,比較典型的一個(gè)現(xiàn)象就是我們?cè)诠矆?chǎng)所的椅子上會(huì)要求進(jìn)行隔位相坐。經(jīng)過(guò)長(zhǎng)期的觀察,發(fā)現(xiàn)很多場(chǎng)所這樣的要求和提示如同虛設(shè)。我們不討論政治和經(jīng)濟(jì),單純從實(shí)現(xiàn)設(shè)計(jì)的維度來(lái)思考如何讓這個(gè)要求能落到實(shí)處,實(shí)實(shí)在在的幫助我們更好的進(jìn)行科學(xué)防疫。以下是幾個(gè)場(chǎng)合的隔位相坐實(shí)現(xiàn)方式:

我們拒絕紅燈思維,認(rèn)為每種實(shí)現(xiàn)方式在那時(shí)那情那景下都是最優(yōu)選擇。從這四個(gè)實(shí)現(xiàn)方式中,我們可以發(fā)現(xiàn)從效果和美觀上來(lái)看,是可以認(rèn)為存在一個(gè)遞進(jìn)的關(guān)系,極其類(lèi)似我們的系統(tǒng)的演化過(guò)程。假設(shè)衛(wèi)健委給出行政要求,公共場(chǎng)合必須要將隔位相坐落到實(shí)處,或許能有人挖掘出一種商業(yè)模式,即提供隔位相坐最優(yōu)解決方案的能力和服務(wù),從中賺取服務(wù)費(fèi)用。畢竟不是每個(gè)目標(biāo)主體都能在當(dāng)時(shí)情景能實(shí)現(xiàn)最佳,或者需要更大成本才能實(shí)現(xiàn)較佳。

系統(tǒng)實(shí)現(xiàn)反思

為了得到高質(zhì)量的軟件產(chǎn)品,我們是應(yīng)該把精力更多地集中在提升其中每一個(gè)人員、過(guò)程、產(chǎn)出物的能力和質(zhì)量上,還是該把更多精力放在整體流程和架構(gòu)上?—— 《鳳凰架構(gòu)》

系統(tǒng)的行為價(jià)值 和 架構(gòu)價(jià)值 到底哪個(gè)更重要?——《架構(gòu)整潔之道》

系統(tǒng)是演化發(fā)展的,根據(jù)疫情隔位相坐實(shí)現(xiàn)方式的啟發(fā),系統(tǒng)是否可以以巨人肩膀?yàn)槠瘘c(diǎn)開(kāi)始演化發(fā)展?

對(duì)于以上反思,下面嘗試從一種切面來(lái)和大家一起探討。

統(tǒng)一溝通語(yǔ)言

有很多的方案的討論最終達(dá)不成一致,很大程度在于雙方溝通語(yǔ)言不統(tǒng)一,即雙方討論問(wèn)題最基本的基石基礎(chǔ)并不是一致的,所以怎么討論都不可能達(dá)到一致的結(jié)論和目標(biāo),所以我們首先統(tǒng)一一下溝通語(yǔ)言。

我們知道,咱們作為一個(gè)商業(yè)公司,最底層的邏輯肯定是商業(yè)盈利,那么我們作為其中的一員,我們每個(gè)人有以下三個(gè)角色(注:以程序員崗位進(jìn)行分析),每個(gè)角色的職責(zé)價(jià)值嘗試做如下解析:

個(gè)人角色

曾有企業(yè)家有言:一個(gè)企業(yè)的邊界取決于其創(chuàng)始人的認(rèn)知邊界,其實(shí)對(duì)個(gè)人也是如此,一個(gè)人的價(jià)值大小也是由其認(rèn)知邊界決定的。個(gè)人角色短期來(lái)看,對(duì)咱們解決方案討論意義并不是那么重要。這個(gè)也不是能很快改變的。暫且忽略影響。

公司職員角色

員工的任何公司任何活動(dòng)都應(yīng)該朝著有利于公司市場(chǎng)競(jìng)爭(zhēng)優(yōu)勢(shì)的方向進(jìn)行的。甚至可能還關(guān)注公司第二曲線(xiàn),在我們公司文化里面還倡導(dǎo)第三曲線(xiàn);

程序員角色

我們認(rèn)為技術(shù)的最終目的更應(yīng)該是降本增效,具體體現(xiàn)為業(yè)務(wù)初創(chuàng)期低成本快速迭代,業(yè)務(wù)成長(zhǎng)期快速低成本規(guī)?;约皩⒁陨系统杀灸芰Τ橄蟪赡芰猸h(huán),從而實(shí)現(xiàn)助力業(yè)務(wù)快速迭代,以及釋放創(chuàng)造力助力管理。

兩個(gè)概念

回到本文主題,本文主要是嘗試通過(guò)探索開(kāi)閉原則架構(gòu)設(shè)計(jì)來(lái)實(shí)現(xiàn)降低認(rèn)知負(fù)載,從而達(dá)到降本增效的目的。因?yàn)樵谘邪l(fā)活動(dòng)中,我們的關(guān)注點(diǎn)越發(fā)散,會(huì)越容易降低我們的研發(fā)效率,所以本文的目的是想通過(guò)系統(tǒng)遵循開(kāi)閉原則架構(gòu)進(jìn)行設(shè)計(jì),保證系統(tǒng)的職責(zé)的清晰和單一化,以收斂研發(fā)的關(guān)注,保證程序員能集中精力將事情做好。主要從加強(qiáng)系統(tǒng)純潔度維度來(lái)嘗試進(jìn)行闡釋。

開(kāi)閉原則,耳熟能詳?shù)脑瓌t,其比較關(guān)鍵的特點(diǎn)在于,系統(tǒng)或者模塊的只讀性,以及和 職責(zé)單一原則的一體兩面;如此在我們的研發(fā)活動(dòng)過(guò)程中,可以將穩(wěn)定的需求和 常變的需求,通過(guò)組合的方式將不同的模塊進(jìn)行擴(kuò)展。而穩(wěn)定的需求我們其實(shí)是可以進(jìn)行產(chǎn)品化封裝的。

鳳凰架構(gòu)的邏輯

鳳凰架構(gòu)的思想是參考生命系統(tǒng)的可靠性和穩(wěn)定性,希望通過(guò)一系列不穩(wěn)定的子系統(tǒng)來(lái)打造一個(gè)穩(wěn)定可靠的大系統(tǒng);而其實(shí)生命系統(tǒng)的可靠性也不是一蹴而就的,并且也只是一個(gè)穩(wěn)定且發(fā)展的文明系統(tǒng)的載體;這個(gè)文明系統(tǒng)的演化過(guò)程非常類(lèi)似咱們需求交付的過(guò)程;

通常比較主流的觀點(diǎn)對(duì)于文明的演化理論是進(jìn)化論,進(jìn)化論來(lái)源于達(dá)爾文的《物種起源》的進(jìn)化樹(shù),而進(jìn)化論其實(shí)存在未能解釋的空缺,即為什么進(jìn)化樹(shù)是由單細(xì)胞向多細(xì)胞進(jìn)化和低等生物向高等生物進(jìn)化而不是相反,以及進(jìn)化與熵增定律和質(zhì)能方程E=mc2沖突,即進(jìn)化來(lái)源于什么?有學(xué)者提出一套演化理論即“遞弱代償”理論(不討論其爭(zhēng)議性,只分析客觀邏輯),解釋了以上空缺。即從30億年前單細(xì)胞到軟體生物到脊柱生物到人類(lèi),物種伴隨的文明越發(fā)達(dá),而物種的存在度空間會(huì)越小,因?yàn)閱渭?xì)胞是全能的,從吸收到排泄,以及繁殖都能實(shí)現(xiàn),而人類(lèi)的組織,已不再是單細(xì)胞而是多細(xì)胞高度分化成不同功能的獨(dú)立的組織,而某個(gè)組織也只有某個(gè)功能,放棄了單細(xì)胞其他大部分的功能。因此隨著文明的愈發(fā)達(dá),而文明當(dāng)前的載體分化程度越高以至于產(chǎn)生了新的物種。而分化的程度越高,誕生出來(lái)的新物種的存在度會(huì)越低,如同上圖右公式圖,即物種的存在度與系統(tǒng)的文明發(fā)達(dá)程度成遞弱關(guān)系。(參考《物演通論》)

這極其類(lèi)似我們需求交付過(guò)程,即單個(gè)系統(tǒng)不再是萬(wàn)能的,而是分化成不同的小型子系統(tǒng),而通過(guò)每個(gè)系統(tǒng)繼續(xù)高度的分化和升級(jí),使得整個(gè)大系統(tǒng)的能力越來(lái)越豐富和強(qiáng)大。

而我們的系統(tǒng)分化的原則就應(yīng)該是上述的開(kāi)閉原則和單一職責(zé)原則,這才能保證每個(gè)系統(tǒng)能獨(dú)立的分化和演進(jìn),保證了在需求迭代的過(guò)程中,整個(gè)系統(tǒng)可以不斷的進(jìn)化為新的業(yè)務(wù)物種形態(tài),并且進(jìn)化過(guò)程中依然可靠。

在一個(gè)系統(tǒng)內(nèi),進(jìn)化的本質(zhì)是替換部分組件使之成為新的物種,而不是當(dāng)前物種的升級(jí);而系統(tǒng)最終升級(jí)演化的趨勢(shì)就是系統(tǒng)內(nèi)所有組件都能敏捷替換,修改一下路由,很低成本替換組件,這樣優(yōu)化系統(tǒng)的成本會(huì)越來(lái)越低。

軟件系統(tǒng)的邏輯

我們?cè)賮?lái)分析咱們軟件系統(tǒng)的結(jié)構(gòu),主要分兩部分,一部分是基礎(chǔ)設(shè)施,一部分是業(yè)務(wù)部分;而基礎(chǔ)設(shè)施主要是馮諾依曼體系;而在討論開(kāi)閉原則時(shí),最典型的案例就是馮諾依曼體系;馮諾依曼體系可以簡(jiǎn)化為cpu,存儲(chǔ),輸入輸出;正是這套擴(kuò)展性非常強(qiáng)的體系支撐著在計(jì)算機(jī)世界的發(fā)展。cpu通過(guò)元指令和指令流的分離,數(shù)據(jù)與計(jì)算的分離,并且提供中斷回調(diào),來(lái)落地了開(kāi)閉原則,保證了多么復(fù)雜的需求的實(shí)現(xiàn)都不再需要修改cpu了;而將變化的業(yè)務(wù)交給輸入輸出;上面的操作系統(tǒng)則將馮諾依曼體系進(jìn)行了封裝,提供了方便的操作方式。

試想:能否將上層的頁(yè)面模式的設(shè)計(jì)思路也復(fù)用底層的基礎(chǔ)設(shè)施的設(shè)計(jì)思路呢?在最外層再提供一層“操作系統(tǒng)”提供使用呢?

再反觀現(xiàn)在行業(yè)的各種服務(wù)化,SAAS,PAAS,IAAS 其實(shí)也就是這種思路的體現(xiàn)和落地。

星鏈的邏輯

貨指的是一些業(yè)務(wù)側(cè)和中臺(tái)側(cè)的能力,中臺(tái)側(cè)能力如商品、支付、風(fēng)險(xiǎn)等,業(yè)務(wù)側(cè)能力如賬戶(hù)、交易、賬務(wù)等。

人包括各類(lèi)角色,如消費(fèi)者側(cè)的預(yù)授信用戶(hù)、運(yùn)營(yíng)側(cè)的推廣人員、商戶(hù)側(cè)的結(jié)算人員等。

場(chǎng)是人與貨發(fā)生交互的場(chǎng)所和方式,人可能通過(guò)各類(lèi)介質(zhì)如金融APP、商城APP、小程序、H5等與貨交互,通過(guò)各類(lèi)產(chǎn)品與貨交互,通過(guò)各類(lèi)運(yùn)營(yíng)方式、不同流量來(lái)源來(lái)與貨交互。

貨是相對(duì)穩(wěn)定的,一般不是面向特定人和場(chǎng)的,是沉淀的業(yè)務(wù)和中臺(tái)能力,構(gòu)建貨的能力,消金內(nèi)部借鑒的是領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)(DDD)和中臺(tái)化的思想,這些能力沉淀下來(lái)的是相對(duì)穩(wěn)定的、與場(chǎng)景關(guān)系不大的領(lǐng)域原子微服務(wù)。

而這個(gè)思想不正是開(kāi)閉原則的另一種表達(dá)么?

業(yè)務(wù)垂直拓展思考

這是對(duì)不同復(fù)雜度的系統(tǒng)的一個(gè)簡(jiǎn)單概括總結(jié),我們的系統(tǒng)可能處于高級(jí)別分布式系統(tǒng)的層次,那我們?cè)偎伎家幌挛覀兊臉I(yè)務(wù)系統(tǒng),我們進(jìn)行垂直拓展的顆粒度能達(dá)到什么級(jí)別呢?

從通常ddd的分層的思路來(lái)看,我們可以嘗試將系統(tǒng)將應(yīng)用層,不同場(chǎng)景的聚合中偏客戶(hù)端的模塊交給 上層接入層,是否可以將接入層單獨(dú)抽離成獨(dú)立系統(tǒng),比如交給星鏈來(lái)實(shí)現(xiàn)(如果不用星鏈可能會(huì)比較重),以保證了領(lǐng)域與接入層的相互獨(dú)立。而領(lǐng)域?qū)釉俑鶕?jù)子領(lǐng)域的情況按照開(kāi)閉原則進(jìn)行垂直拓展。

架構(gòu)探索

通過(guò)以上分析,如果我們嘗試將馮諾依曼的設(shè)計(jì)模式上移到業(yè)務(wù)系統(tǒng),,讓我們的系統(tǒng)職責(zé)和業(yè)務(wù)角色收斂關(guān)系更清晰,同時(shí)保證業(yè)務(wù)子系統(tǒng)做到盡可能只讀,如果有新的業(yè)務(wù)我們?nèi)シ只亻_(kāi)系統(tǒng);

我們可以嘗試用星鏈來(lái)實(shí)現(xiàn)業(yè)務(wù)操作系統(tǒng),梳理各業(yè)務(wù)系統(tǒng)的職責(zé),梳理出穩(wěn)定系統(tǒng),周邊業(yè)務(wù)系統(tǒng),以及公共功能系統(tǒng),并且可以將比較穩(wěn)定的業(yè)務(wù)系統(tǒng)進(jìn)行產(chǎn)品化。去嘗試探索一種新的商業(yè)模式。

另外,其實(shí)咱們?cè)谕菩衐dd的過(guò)程中,通常會(huì)比較嚴(yán)格的按照戰(zhàn)略戰(zhàn)術(shù)的模式,重建領(lǐng)域模型,但是在實(shí)際生產(chǎn)中,我們的很多老系統(tǒng)都背負(fù)很重的業(yè)務(wù)量,輕易重構(gòu)數(shù)據(jù)結(jié)構(gòu),風(fēng)險(xiǎn)會(huì)非常大,其實(shí)我們可以嘗試按照開(kāi)閉原則,先試圖對(duì)老系統(tǒng)進(jìn)行分化出新的系統(tǒng),將系統(tǒng)的api進(jìn)行收斂到同一個(gè)領(lǐng)域內(nèi),等這第一步完成后,可以在考慮在當(dāng)前領(lǐng)域內(nèi)實(shí)現(xiàn)領(lǐng)域模型的梳理。

或許這可能是開(kāi)閉原則下比較理想的架構(gòu)模式,復(fù)用京東bigboss文化的宣傳語(yǔ):

積木式組織—探索未來(lái)式,人人是boss;積木式系統(tǒng)—探索未來(lái)式, 職責(zé)要清晰;

而積木式系統(tǒng),必然是比較整潔的系統(tǒng)了,自然當(dāng)關(guān)注某一個(gè)模塊的業(yè)務(wù)的時(shí)候,就只需要將認(rèn)知主要集中在當(dāng)前模塊即可。而對(duì)于一些重復(fù)通用的功能,研發(fā)可能甚至只需要關(guān)注輸入和輸出即可,這樣相當(dāng)于通過(guò)職責(zé)的抽象將對(duì)應(yīng)的能力打造成了能力光環(huán),只要涉及到相關(guān)的研發(fā)的同事,天然就具有了這方面的能力。

擴(kuò)展思考

在我們的業(yè)務(wù)系統(tǒng)中,常常通過(guò)異步消息來(lái)實(shí)現(xiàn)通信的處理,可能會(huì)存在一種方式,就是將我們的mq的監(jiān)聽(tīng)和業(yè)務(wù)處理混合在一起,當(dāng)mq的監(jiān)聽(tīng)比較少的時(shí)候,或許系統(tǒng)還算整潔;但當(dāng)我們的系統(tǒng)監(jiān)聽(tīng)非常多的時(shí)候,這個(gè)系統(tǒng)似乎就成了大雜燴了,什么業(yè)務(wù)都可能會(huì)有。這樣導(dǎo)致這個(gè)系統(tǒng)的職責(zé)非常的不清晰。而業(yè)務(wù)監(jiān)聽(tīng)本來(lái)就應(yīng)只是一個(gè)系統(tǒng)的共用功能,是可以將其抽象為平臺(tái)功能,所以按照以上開(kāi)閉原則設(shè)計(jì),我們提供監(jiān)聽(tīng)后對(duì)應(yīng)業(yè)務(wù)的處理接口,在監(jiān)聽(tīng)之后自動(dòng)調(diào)用接口即可。該系統(tǒng)只負(fù)責(zé)做mq監(jiān)聽(tīng)的處理。系統(tǒng)角色草圖如下:

寫(xiě)在最后

在我們生活中,發(fā)現(xiàn)問(wèn)題的時(shí)候,大部分人只是看到了當(dāng)前現(xiàn)象,而少數(shù)人看到了這個(gè)現(xiàn)象背后的原因,而只有極少數(shù)的人能全面看到這個(gè)現(xiàn)象的底層根源,從全局的視角尋找解決方案。而第三者應(yīng)該是我們追求的一種境界,這應(yīng)該是工程師文化/工匠文化的體現(xiàn)所在。此所謂:

眾生畏果,菩薩畏因,佛畏系統(tǒng)

標(biāo)簽:

x 廣告
x 廣告

Copyright ©   2015-2022 太平洋影視網(wǎng)版權(quán)所有  備案號(hào):豫ICP備2022016495號(hào)-17   聯(lián)系郵箱:93 96 74 66 9@qq.com