




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、為什么構(gòu)建架構(gòu)工作臺(tái)?在ArchGuard中,我們想治理的是架構(gòu)的三種形態(tài):設(shè)計(jì)態(tài)、 開發(fā)態(tài)和運(yùn)行態(tài)。對(duì)應(yīng)于:設(shè)計(jì)新的企業(yè)(應(yīng)用)架構(gòu)。諸如于描述和設(shè)計(jì)系統(tǒng)的當(dāng)前架構(gòu)。理解和管控系統(tǒng)的現(xiàn)狀。諸如于通過(guò)可視化的手段展示系統(tǒng)的現(xiàn) 狀、以規(guī)那么來(lái)管理系統(tǒng)。觀測(cè)系統(tǒng) 二 架構(gòu)的運(yùn)行。同樣,對(duì)于諸多中大型組織師的架構(gòu)相關(guān)的部門來(lái)說(shuō),他們同樣 存在上述的這些問(wèn)題。并且,我相信他們也面臨著同我們構(gòu)建 ArchGuard時(shí)一,樣的困境:架構(gòu)是多維的。包含技術(shù)、數(shù)據(jù)、平安、運(yùn)維與系統(tǒng)等缺乏統(tǒng)一的架構(gòu)語(yǔ)言。用于溝通的人類語(yǔ)言,諸如于什么是組 件?系統(tǒng)的架構(gòu)千奇百怪。架構(gòu)風(fēng)格或模式差異,如微服務(wù)架構(gòu)、插 件化架構(gòu)等
2、。缺乏業(yè)務(wù)上下文。作為一個(gè)外部架構(gòu)師,幫助治理時(shí)缺乏一些上 下文。細(xì)節(jié)是魔鬼。架構(gòu)的世界豐富多彩,沒有方法一一展現(xiàn)出來(lái),比 如一個(gè)小小的接口,可能會(huì)反轉(zhuǎn)我們對(duì)于理解的假設(shè)。我們(ArchGuard團(tuán)隊(duì))目前的架構(gòu)能力有限(這個(gè)不會(huì)寫出來(lái) 的)資深架構(gòu)師太少。所以,在實(shí)現(xiàn)這樣一個(gè)標(biāo)準(zhǔn)化的架構(gòu)模式系統(tǒng)之前,不如嘗試構(gòu) 建一個(gè)更靈活的形式:架構(gòu)工作臺(tái)。它可以幫助我們更好地探索系統(tǒng), 也更符合我們的初期體驗(yàn)。什么是架構(gòu)工作臺(tái)對(duì)于工作臺(tái)這一概念來(lái)說(shuō),作為一個(gè)活躍的DSL創(chuàng)造者,我比 較熟悉的是Martin Fowler在領(lǐng)域特定語(yǔ)言中對(duì)于語(yǔ)言工作臺(tái) 的定義:語(yǔ)言工作臺(tái)是一個(gè)環(huán)境,其設(shè)計(jì)初衷就是幫助人們構(gòu)
3、建新的DSL, 以及有效地運(yùn)用這些DSL所需的高質(zhì)量工具。也因此在定義上,我們參考了老馬的定義,并借鑒了現(xiàn)代化的工 作臺(tái)理念,主要有:RStud io的代碼文檔化、Jupyter的交互性分析。 所以,我們的定義是:架構(gòu)工作臺(tái)是一個(gè)環(huán)境,其設(shè)計(jì)初衷用于幫助人們?cè)O(shè)計(jì)架構(gòu)、演 進(jìn)架構(gòu)、觀測(cè)架構(gòu),并有效地運(yùn)用架構(gòu)所需要的高質(zhì)量工具,如交互 式的架構(gòu)開發(fā)和分析。代碼文檔化,用于幫助我們更好地管理架構(gòu)代碼,將它融入軟件 開發(fā)生命周期里,如架構(gòu)文檔、用戶故事、持續(xù)集成等。而交互性分 析,那么是用于幫助我們有效減少定制的代碼,進(jìn)而演變?yōu)樘峁┑氖?API接口,與其定制化的代碼。對(duì)于架構(gòu)工作臺(tái)來(lái)說(shuō),它應(yīng)用包含了以
4、下一些核心功能與特性:設(shè)計(jì)架構(gòu)、演進(jìn)架構(gòu)與觀測(cè)架構(gòu)。構(gòu)建架構(gòu)的數(shù)字事生說(shuō)明性編程與顯式設(shè)計(jì)在這些特性中,我們認(rèn)為構(gòu)建架構(gòu)的數(shù)字?jǐn)伾沁@個(gè)工作臺(tái)最應(yīng) 該被重視的局部,而基礎(chǔ)塊那么是:設(shè)計(jì)架構(gòu)、演進(jìn)架構(gòu)與觀測(cè)架構(gòu)?;A(chǔ):設(shè)計(jì)架構(gòu)、演進(jìn)架構(gòu)與觀測(cè)架構(gòu)在治理架構(gòu)時(shí),我們通常會(huì)關(guān)注于如何設(shè)計(jì),如何演進(jìn),以及觀 測(cè)架構(gòu)在運(yùn)行時(shí)的狀態(tài)。設(shè)計(jì)架構(gòu)。這樣的功能其并不能理解,難點(diǎn)是,如何提供高效的 設(shè)計(jì)機(jī)制?采用UI拖拉拽的方式,又或者是DSL,都有各種的博弈。 總體來(lái)說(shuō)使用代碼會(huì)更加友好。而為了直觀的展示架構(gòu)的設(shè)計(jì),我們 會(huì)通過(guò)架構(gòu)圖來(lái)表示,這也就是系統(tǒng)的核心。演進(jìn)架構(gòu)。其核心是構(gòu)建架構(gòu)治理模型和設(shè)計(jì)架構(gòu)的適應(yīng)
5、度函數(shù), 以引導(dǎo)系統(tǒng)進(jìn)行有序的變更。從實(shí)現(xiàn)的層面來(lái)說(shuō),就是從對(duì)實(shí)現(xiàn)出來(lái) 的軟件架構(gòu)(即代碼等)進(jìn)行分析,設(shè)計(jì)度量指標(biāo),并提供高質(zhì)量的 工具,來(lái)引導(dǎo)架構(gòu)回歸到合理的狀態(tài)。觀測(cè)架構(gòu)。即觀察架構(gòu)的應(yīng)用的運(yùn)行狀態(tài),主要依靠于各類的 APM (app I icat i on performance management, 應(yīng) 用性能監(jiān)測(cè))工具。 在云原生時(shí)代,相關(guān)的工具也非常的流行,如Skywa Iking等。一個(gè)基礎(chǔ)的架構(gòu)工作臺(tái),應(yīng)該考慮上述的三個(gè)要素。進(jìn)階:構(gòu)建架構(gòu)的數(shù)字事生理想的架構(gòu)工作臺(tái),它應(yīng)該提供一個(gè)可交互的架構(gòu)的映射版本。 它意味著:它是對(duì)系統(tǒng)或?qū)ο笤谄湔麄€(gè)生命周期中的虛擬表示,我們 可以根
6、據(jù)實(shí)時(shí)數(shù)據(jù)進(jìn)行更新,并使用模擬、機(jī)器學(xué)習(xí)和推理來(lái)幫助決策。從概念上來(lái)說(shuō),它提供了一個(gè)非常美好的未來(lái),難點(diǎn)就在于如何實(shí)現(xiàn)這樣的系統(tǒng)?我們正在設(shè)計(jì)ArchGuard的數(shù)字季生版本,那么圍繞于這三種形 態(tài)的架構(gòu)形式(從實(shí)現(xiàn)的層面考慮的):設(shè)計(jì)態(tài)。關(guān)注于邊界、概念與交互。開發(fā)態(tài)。關(guān)注于層級(jí)、依賴與模塊。運(yùn)行態(tài)。關(guān)注于性能、鏈路層級(jí)與資源使用。這個(gè)版本相當(dāng)于是設(shè)計(jì)態(tài),在實(shí)現(xiàn)的時(shí)候,還會(huì)受到開發(fā)能力和 數(shù)據(jù)上的制約。未來(lái),我們是不是也應(yīng)該代碼及其架構(gòu)事生的雙向綁 定?核心:說(shuō)明性編程與顯性設(shè)計(jì)我們所熟悉的各類架構(gòu)相關(guān)的規(guī)范,它存在著諸多的問(wèn)題,諸如 于:規(guī)范不直觀、規(guī)范沒有自動(dòng)化等。為了有效的演進(jìn)架構(gòu),我
7、們需 要有效地結(jié)合規(guī)范、代碼、設(shè)計(jì),也就是說(shuō)明性編程與顯性設(shè)計(jì),它 們都是來(lái)自于PL (編程語(yǔ)言)/ DSL (領(lǐng)域特定語(yǔ)言)中的概念。說(shuō)明性編程(i I I ustrat i ve programmi ng)是用于加強(qiáng)執(zhí)行結(jié)果 的解釋性,如在架構(gòu)治理的場(chǎng)景下,通過(guò)生成架構(gòu)圖來(lái)理解DSL編 寫的結(jié)果。另外一類覺的方式,有諸如于Excel中的表格和圖表等。 詳細(xì)可以查看文末Mart i n FowI er的相關(guān)文章。顯式設(shè)計(jì)。顯式是通過(guò)明確編寫要完成的指示來(lái)完成所需更改的 手動(dòng)方法。顯示設(shè)計(jì)那么是指引我們?nèi)绾螛?gòu)建好系統(tǒng)的描述語(yǔ)言,諸如 于ADL (架構(gòu)描述語(yǔ)言)的DSLo除了,使用貼進(jìn)架構(gòu)描述的
8、語(yǔ)言, 還有用于支撐DSL的工具支撐,如編輯器智能感知。這兩個(gè)特性是圍繞于架構(gòu)即代碼這一理念所改善的,諸如于 PIantUML Graphviz 這一類圖表即代碼(Diagrams as code)也具 備了這樣的特質(zhì)。其它特質(zhì)當(dāng)然,為了讓這個(gè)系統(tǒng)更好用,我們還需要其它的一系歹“特性:架構(gòu)演進(jìn)的模擬驗(yàn)證。在構(gòu)建了架構(gòu)的數(shù)字季生之后,我們就可 以易于擴(kuò)展的功能。即采用微內(nèi)核架構(gòu),即插件化、微前端化等。依舊還有諸多東西可以探索,等待我們構(gòu)建完第一個(gè)版本后,再 展開討論。我們應(yīng)該如何去設(shè)計(jì)與實(shí)現(xiàn)的?我們現(xiàn)在ArchGuard中實(shí)踐一個(gè)這樣的系統(tǒng),它相當(dāng)?shù)亓钊思?動(dòng)。作為一個(gè)早期的版本,它勉強(qiáng)可以工作
9、,如下是我們構(gòu)建系統(tǒng)的 一些思路。.大數(shù)據(jù)的工作臺(tái)作為靈感由于,系統(tǒng)是一個(gè)類似于數(shù)據(jù)分析的系統(tǒng),所以我們的諸多流感 來(lái)源于大數(shù)據(jù)領(lǐng)域。在工作臺(tái)上,起初,我們的想法是構(gòu)建一個(gè)采用 RStudio似的可編譯報(bào)告,并提供類似于Jupyter的交互體驗(yàn)??捎捎贘upyter的交互體驗(yàn)太差,下載的文件又沒有可讀性,不能方便地編輯+運(yùn)行。所以,我們采用了 Markdown作為數(shù)據(jù)格 式,方便于開發(fā)人員編寫文檔,也可以在任意的IDE中翻開和編輯。在UI上,那么是采用ProseMi rror主編輯器,即Markdown的編輯 器,采用Monaco Editor作為副編輯器,即代碼的編輯器。.構(gòu)建基于REPL的
10、抽象考慮到了 IDE支持,我們采用了 Kotl in來(lái)構(gòu)建內(nèi)部DSL,這 樣就無(wú)需外部DSL需要構(gòu)建編輯器支持。接著,就采用了 Kotl in Scripting Comp i I er 作為底層的 REPL ( read - eva I - print I oop, 也稱為交互式頂層構(gòu)件),簡(jiǎn)單來(lái)說(shuō),就是Kotl in語(yǔ)言的命令行模 式。從形態(tài)上來(lái)說(shuō),類似于MySQL Workbench的形式,又或者說(shuō)是 Python 的 CLI 模式。隨后,便是抽象系統(tǒng)(ArchGuard)、設(shè)計(jì)態(tài)的架構(gòu)、架構(gòu)適應(yīng)度 函數(shù)的DSLo.請(qǐng)求和響應(yīng)程序的運(yùn)行在有了編譯器后端的支持及Kot I i n DSL的IDE之
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 橡膠制品在潮汐能設(shè)備中的應(yīng)用考核試卷
- 如何開展有效的倉(cāng)庫(kù)月度總結(jié)計(jì)劃
- 小額貸款行業(yè)保安工作總結(jié)計(jì)劃
- 第十章 機(jī)械與人(1、2、3、4節(jié))教學(xué)設(shè)計(jì) -2023-2024學(xué)年滬科版物理八年級(jí)下學(xué)期
- 幼兒園自主游戲的組織與評(píng)價(jià)計(jì)劃
- 人教版小學(xué)五年級(jí)語(yǔ)文下冊(cè)2024-2025學(xué)年度第二學(xué)期第八單元質(zhì)量檢測(cè)試卷含參考答案
- 大學(xué)生生物知識(shí)傳播與教學(xué)活動(dòng)計(jì)劃
- 設(shè)定部門目標(biāo)與業(yè)績(jī)考核計(jì)劃
- 創(chuàng)新班級(jí)管理理念的探索計(jì)劃
- 創(chuàng)設(shè)靈活應(yīng)變的工作機(jī)制計(jì)劃
- 2025年河南省高職單招計(jì)算機(jī)類職業(yè)技能測(cè)試題(附答案)
- GB/T 18936-2025禽流感診斷技術(shù)
- 《主題四 雞蛋撞地球》教學(xué)設(shè)計(jì)-2023-2024學(xué)年六年級(jí)下冊(cè)綜合實(shí)踐活動(dòng)遼師大版
- 2025年國(guó)航機(jī)務(wù)系統(tǒng)AMECO工程師崗位校園招聘筆試參考題庫(kù)附帶答案詳解
- 巨量千川中級(jí)營(yíng)銷師認(rèn)證考試題(附答案)
- 2025中智集團(tuán)招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 金融公司早會(huì)內(nèi)容
- 藥劑學(xué)第9版課件:第一章-緒論
- 《下載-綜合布線》課件
- 可穿戴生理傳感器驅(qū)動(dòng)的深度學(xué)習(xí)情緒識(shí)別模型在心理健康評(píng)估中的應(yīng)用
- 風(fēng)力發(fā)電塔管桁架施工方案
評(píng)論
0/150
提交評(píng)論