? ? 研發(fā)體系中平臺(tái)化思想是非常泛化和通用的鸠项,即便領(lǐng)域跨度如軟件領(lǐng)域和硬件領(lǐng)域這么巨大,構(gòu)建平臺(tái)時(shí)同樣是從標(biāo)準(zhǔn)化稳析、通用化、抽象化做起弓叛,平臺(tái)化的源起和發(fā)展路徑都是形似的迈着。
·?什么是平臺(tái)?
? ? 業(yè)務(wù)不斷膨脹,對(duì)人力的需求構(gòu)成和業(yè)務(wù)數(shù)量的線性關(guān)系邪码,需要尋找一種方法打破這種關(guān)系裕菠,讓更少的人力支撐更多的業(yè)務(wù),這時(shí)就要找到共性闭专,進(jìn)行抽象和復(fù)用奴潘;為了讓產(chǎn)品旧烧、業(yè)務(wù)競(jìng)爭(zhēng)力不斷提升,需要將良好的技術(shù)實(shí)踐作為積累沉淀下來(lái)画髓,逐步建立技術(shù)壁壘掘剪,這兩類是所有平臺(tái)被建立的初衷,也是它們的目標(biāo):提高研發(fā)效率和增強(qiáng)技術(shù)競(jìng)爭(zhēng)力奈虾。
? ? 對(duì)平臺(tái)化的關(guān)注不能僅僅看開(kāi)發(fā)部分夺谁,還應(yīng)該關(guān)注前端的需求、設(shè)計(jì)肉微、后期的運(yùn)維等各方面匾鸥,不能拒絕客戶的高度定制化需求,甚至應(yīng)該考慮平臺(tái)能力成熟穩(wěn)定后碉纳,構(gòu)建一系列的工具勿负,實(shí)現(xiàn)業(yè)務(wù)邏輯的自動(dòng)化、輔助化構(gòu)建劳曹。結(jié)合任一平臺(tái)剛剛開(kāi)始的起點(diǎn)奴愉,往往只是對(duì)某一類業(yè)務(wù)的開(kāi)發(fā)做了規(guī)范化、標(biāo)準(zhǔn)化的定義铁孵,我們可以看到锭硼,架構(gòu)師應(yīng)該關(guān)注的平臺(tái),不應(yīng)該僅限于那個(gè)實(shí)現(xiàn)級(jí)別的技術(shù)平臺(tái)蜕劝,而是基于領(lǐng)域目標(biāo)的整體考量账忘,是全過(guò)程的、全鏈路的工程化實(shí)踐體系熙宇。
? ? 所以鳖擒,在現(xiàn)階段,我們可以對(duì)平臺(tái)下個(gè)初步的定義:平臺(tái)是為了降低業(yè)務(wù)實(shí)現(xiàn)中的重復(fù)勞動(dòng)烫止,復(fù)用既有的技術(shù)實(shí)踐經(jīng)驗(yàn)蒋荚,提升產(chǎn)品、業(yè)務(wù)開(kāi)發(fā)效率與質(zhì)量馆蠕,允許研發(fā)團(tuán)隊(duì)將更多精力用于技術(shù)提升和技術(shù)創(chuàng)新的一整套規(guī)范標(biāo)準(zhǔn)期升、設(shè)計(jì)原則、技術(shù)實(shí)現(xiàn)與工具的集合互躬。
·?平臺(tái)的屬性與粒度劃分
? ? 平臺(tái)是在研發(fā)活動(dòng)中生長(zhǎng)起來(lái)的播赁,是一個(gè)技術(shù)領(lǐng)域的產(chǎn)物,我們面向業(yè)務(wù)吼渡,但需要將業(yè)務(wù)看作長(zhǎng)在平臺(tái)上的內(nèi)容容为,而非平臺(tái)本身。我們可以大體清晰地看到有兩大類的平臺(tái)屬性:
? ? 一類是為了快速構(gòu)建多形態(tài)產(chǎn)品和業(yè)務(wù)搭建的產(chǎn)品支撐型平臺(tái),例如某嵌入式系統(tǒng)為了不同產(chǎn)品構(gòu)建統(tǒng)一的操作系統(tǒng)坎背,實(shí)現(xiàn)基礎(chǔ)能力復(fù)用替劈,為具體業(yè)務(wù)邏輯提供容器;又如某應(yīng)用研發(fā)平臺(tái)得滤,可以為各垂直業(yè)務(wù)提供開(kāi)發(fā)支撐陨献,同時(shí)允許各級(jí)別的開(kāi)發(fā)活動(dòng)在其上建設(shè)業(yè)務(wù)。
? ? 一類是為了建設(shè)橫跨多產(chǎn)品懂更、業(yè)務(wù)的能力型平臺(tái)眨业,例如掃碼技術(shù)平臺(tái),結(jié)合模組設(shè)計(jì)沮协、算法龄捡,可以被多類產(chǎn)品集成并使用,同時(shí)在性能和性價(jià)比上不斷優(yōu)化改進(jìn)皂股;又如流媒體技術(shù)平臺(tái)墅茉,對(duì)未來(lái)多類產(chǎn)品的音視頻采集命黔、編碼呜呐、存儲(chǔ)、傳輸與投放做統(tǒng)一設(shè)計(jì)悍募,賦能這些產(chǎn)品蘑辑。
? ? 但我們?nèi)粘9ぷ髦袨榱酥味喈a(chǎn)品開(kāi)發(fā)或者增強(qiáng)產(chǎn)品能力所做的工作很多,并不是所有工作就可以叫做干了一個(gè)平臺(tái)出來(lái)坠宴,我們對(duì)于平臺(tái)的基本粒度應(yīng)該有個(gè)定義洋魂。
? ? 在我們現(xiàn)有的例子中,已經(jīng)有平臺(tái)是橫跨多個(gè)技術(shù)領(lǐng)域的了喜鼓,比如一個(gè)掃碼組件技術(shù)平臺(tái)就可以橫跨硬件設(shè)計(jì)副砍、嵌入式、軟件算法等多個(gè)技術(shù)領(lǐng)域庄岖,所以并不能按照技術(shù)領(lǐng)域來(lái)對(duì)平臺(tái)做粒度的劃分豁翎。我們觀察大多數(shù)被分享出來(lái)的平臺(tái),都具備一個(gè)特征隅忿,就是:該平臺(tái)的產(chǎn)物可以支撐或者被集成于多個(gè)產(chǎn)品和業(yè)務(wù)心剥,并形成完整的用戶產(chǎn)品。也就是說(shuō)背桐,平臺(tái)的基本粒度是除了用戶業(yè)務(wù)邏輯外优烧,完成了完整的自底向上的系統(tǒng)搭建,達(dá)到這樣的構(gòu)建水平链峭,方可稱之為平臺(tái)畦娄。通常一個(gè)平臺(tái)具備其基礎(chǔ)層、能力層的內(nèi)容,根據(jù)不同的業(yè)務(wù)需要纷责,可能會(huì)有協(xié)議層捍掺、模型層、組件層再膳、工具層等層次或者外圍工具挺勿。
? ? 當(dāng)然,隨著業(yè)務(wù)的跨度增大喂柒,平臺(tái)也有大小之分不瓶。若干個(gè)平臺(tái)可以組成一個(gè)為更大業(yè)務(wù)服務(wù)的平臺(tái),甚至整個(gè)公司的產(chǎn)研組織灾杰,都可以被當(dāng)做一個(gè)大平臺(tái)蚊丐。這就需要我們對(duì)粒度進(jìn)行進(jìn)一步的劃分,根據(jù)我們的整體規(guī)模和管理需要艳吠,慢慢形成幾條主線進(jìn)行規(guī)劃麦备。而平臺(tái)架構(gòu)的思想,則是所有日常開(kāi)發(fā)中都應(yīng)該被用到的昭娩。
·?如何構(gòu)建平臺(tái)
? ? 不同軟件領(lǐng)域凛篙,軟、硬栏渺、測(cè)領(lǐng)域的平臺(tái)化構(gòu)建過(guò)程都具備相似性呛梆,簡(jiǎn)而言之是不斷抽象總結(jié)、固化模式磕诊、提升固定模式化開(kāi)發(fā)效率的過(guò)程填物。
? ? 抽象的第一步是落實(shí)開(kāi)發(fā)規(guī)范,規(guī)范本身即是一種共性抽象和顯性固化的過(guò)程霎终。進(jìn)而可以將功能/業(yè)務(wù)邊界清楚的部分進(jìn)行模組的劃分滞磺,對(duì)模組進(jìn)行分類于是形成了分層設(shè)計(jì),為了讓不同層不同模組間的互相通信和調(diào)用也規(guī)范化莱褒,則建立了信息傳遞的通信標(biāo)準(zhǔn)击困。這一步構(gòu)成了基本粒度的平臺(tái)落成。
? ? 為了讓平臺(tái)發(fā)揮出它應(yīng)該有的效率優(yōu)勢(shì)保礼,會(huì)固化其上的一些設(shè)計(jì)空間沛励。平臺(tái)的搭建,從某種意義上來(lái)說(shuō)炮障,就是將良好的目派、被證明行之有效的實(shí)踐復(fù)用起來(lái),將尋找更先進(jìn)的方式方法的工作胁赢,留給少數(shù)架構(gòu)師和工程師去做企蹭,證明有效了再采納進(jìn)來(lái)。所以工程開(kāi)發(fā)中,才真正省掉了一些會(huì)被重復(fù)做的開(kāi)發(fā)量谅摄。甚至為了保證經(jīng)驗(yàn)不足的工程師不搗亂徒河,平臺(tái)中的部分模組實(shí)現(xiàn)細(xì)節(jié)是信息受控的,并不允許被隨意查看修改送漠。這種固化模式的動(dòng)作顽照,需要落到對(duì)開(kāi)發(fā)工作中真正工作量的關(guān)鍵路徑上進(jìn)行衡量,解決關(guān)鍵路徑的瓶頸闽寡,做到可量化的展現(xiàn)平臺(tái)效率代兵。同時(shí),它也將工程師的成長(zhǎng)爷狈,從大量實(shí)踐植影,引導(dǎo)到對(duì)優(yōu)秀設(shè)計(jì)的參考學(xué)習(xí)上。此處仍舊需要考慮平臺(tái)的開(kāi)放性涎永,一是不要過(guò)于約束優(yōu)秀工程師的能力思币,平臺(tái)的模組是否容易被自行開(kāi)發(fā)的模組替換,二是平臺(tái)負(fù)責(zé)的架構(gòu)師羡微,是否具備不斷觀察同領(lǐng)域領(lǐng)先實(shí)踐的精神谷饿,來(lái)促成平臺(tái)向更佳設(shè)計(jì)演進(jìn)。
? ? 如果要進(jìn)一步挖掘平臺(tái)的效率能力拷淘,那么就要開(kāi)始考慮如何讓機(jī)器幫助工程師做更多的事情各墨,這時(shí)候要去建立業(yè)務(wù)內(nèi)容層面的抽象輔助工具指孤,一是讓機(jī)器幫助工程師去自動(dòng)化產(chǎn)生業(yè)務(wù)邏輯启涯,二是擴(kuò)大可參與開(kāi)發(fā)的工程師人群范圍或者說(shuō)降低對(duì)工程師的專業(yè)技術(shù)要求,形成人力的靈活使用恃轩。我們談?wù)摰腘o-Code结洼、Low-Code,本身是基于對(duì)業(yè)務(wù)邏輯如何產(chǎn)生的通用模型進(jìn)行了抽象叉跛,并且視圖化了工具做到的松忍。平臺(tái)建設(shè)是否要達(dá)到這個(gè)層面,要看業(yè)務(wù)的規(guī)模和價(jià)值筷厘,當(dāng)業(yè)務(wù)存在大規(guī)模鸣峭、高價(jià)值、充分多樣性的前提酥艳,如此的建設(shè)才能發(fā)揮其優(yōu)勢(shì)摊溶,所以對(duì)架構(gòu)師而言,心中合適的價(jià)值平衡充石,也是一個(gè)邁向高階的必備素質(zhì)莫换。
·?衡量平臺(tái)的標(biāo)準(zhǔn)
必要性:
? ? 即這個(gè)業(yè)務(wù)和技術(shù)領(lǐng)域,有沒(méi)有建設(shè)平臺(tái)或者說(shuō)建設(shè)到這個(gè)程度的平臺(tái)的必要性。我們必須明白拉岁,優(yōu)秀的架構(gòu)師不是去做一個(gè)極致領(lǐng)先的設(shè)計(jì)坷剧,而是去做一個(gè)極致合適的設(shè)計(jì),有些業(yè)務(wù)剛剛發(fā)生喊暖,運(yùn)用平臺(tái)化架構(gòu)思想做設(shè)計(jì)是天然的惫企,但并不構(gòu)成一個(gè)平臺(tái)屬性,也未見(jiàn)得有必要建立起一個(gè)覆蓋全鏈路的平臺(tái)陵叽。
? ? 平臺(tái)需要明確其面向的業(yè)務(wù)和屬性雅任,原先業(yè)務(wù)的痛點(diǎn)和關(guān)鍵路徑是什么,是否平臺(tái)化可以解決咨跌,平臺(tái)要可以準(zhǔn)確描述其上承載的業(yè)務(wù)規(guī)模以及帶來(lái)的效率優(yōu)化點(diǎn)沪么。
全鏈路:
? ? 平臺(tái)并不止技術(shù)架構(gòu)設(shè)計(jì)本身,是產(chǎn)品/業(yè)務(wù)實(shí)現(xiàn)的完整鏈路閉環(huán)锌半。建設(shè)一個(gè)平臺(tái)試圖解決一些問(wèn)題禽车,也很可能帶入新的問(wèn)題。
? ? 考察一個(gè)平臺(tái)刊殉,同時(shí)也需要對(duì)平臺(tái)在全鏈路的各個(gè)環(huán)節(jié)提供的方法殉摔、工具進(jìn)行考察,確認(rèn)整體對(duì)效率有益记焊,而不是產(chǎn)生了新的障礙點(diǎn)逸月。
可量化:
? ? 平臺(tái)面向的業(yè)務(wù)目標(biāo),一定是有關(guān)鍵路徑的遍膜,對(duì)任何關(guān)鍵路徑碗硬,我們都可以建立量化關(guān)鍵路徑的方式方法。平臺(tái)的有效性證明瓢颅,也來(lái)自對(duì)關(guān)鍵路徑的不斷測(cè)量恩尾,量化展現(xiàn)。