偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

架構(gòu)賦能 AI:知識工程推動下的軟件架構(gòu)數(shù)字化

人工智能
在我們的探索中,架構(gòu)知識的數(shù)字化與智能化成為提升軟件開發(fā)效率的關(guān)鍵。通過將 AI 應(yīng)用到基于 Protobuf 的微服務(wù)架構(gòu),我們在需求、設(shè)計、開發(fā)、測試和運維等環(huán)節(jié)實現(xiàn)了智能化支持。

TL;DR:我們試驗了將 AI 應(yīng)用到基于 Protobuf 的微服務(wù)架構(gòu)中,基于 ArchGuard 治理平臺、Shire AI 助手、Team AI 三個工具中,構(gòu)建了一套完整的 AI4SE 原型,在需求、設(shè)計、開發(fā)、測試和運維等階段,這里是我們的思考和實踐。

過去幾個月里,我們在各大技術(shù)大會上頻繁看到生成式 AI 的應(yīng)用,很多研發(fā)組織都在嘗試將其引入開發(fā)的各個環(huán)節(jié)。然而,隨著 AI 技術(shù)的深入應(yīng)用,不少組織也發(fā)現(xiàn)了基礎(chǔ)知識工程方面的種種挑戰(zhàn)。例如,知識的缺乏規(guī)范化、流程的缺失以及標準化檢測工具的不足,正成為 AI 成功落地和提升研發(fā)效能的主要阻礙。

如果說知識工程是 AI 賦能研發(fā)的基礎(chǔ),那么數(shù)字化架構(gòu)則是 AI 賦能研發(fā)的關(guān)鍵。在這篇文章中,我們將探討知識工程推動下的架構(gòu)數(shù)字化:如何通過知識工程的視角, 利用 AI 技術(shù),對系統(tǒng)架構(gòu)進行全面分析、管理和優(yōu)化的過程,以及我們的思考和實踐。

引子:架構(gòu)知識如何改變 AI 驅(qū)動的開發(fā)流程??

AI4SE(Artificial Intelligence for Software Engineering)是指人工智能技術(shù)應(yīng)用于軟件工程領(lǐng)域,旨在通過利用 AI 算法和工具來改進軟件開發(fā)、維護、測試和管理等各個環(huán)節(jié)的效率和效果。—— https://aise.phodal.com/

從過去的、標準或者不標準的 DevOps 開發(fā)流程來看,我們會把 SDLC 流程分為 N 個階段,取決于你的組織架構(gòu),階段的數(shù)量可能會有所不同,以適配康威定律。在此,我們將 SDLC 流程簡化為以下幾個主要階段:需求、設(shè)計、開發(fā)、測試和運維。

SDLC 中的 AI 與架構(gòu)

圖片圖片

而毫無意外的是,當你深入 AI 4SE 的應(yīng)用時,會發(fā)現(xiàn)每個環(huán)節(jié)都需要架構(gòu)知識,以微服務(wù)架構(gòu)為例:

  • 需求階段。AI 需要結(jié)合現(xiàn)有架構(gòu)、微服務(wù)架構(gòu)的特點,設(shè)計出符合微服務(wù)架構(gòu)的需求文檔,拆分好需求及其所屬的需求或者功能單元。
  • 設(shè)計階段。遵循現(xiàn)有的微服務(wù)架構(gòu)設(shè)計規(guī)范、API 規(guī)范、數(shù)據(jù)庫設(shè)計規(guī)范等,由 AI 生成符合規(guī)范的文檔、契約設(shè)計和數(shù)據(jù)庫設(shè)計。
  • 開發(fā)階段。AI 生成的代碼,需要滿足編碼規(guī)范、代碼風格、代碼質(zhì)量等等,還有組織內(nèi)部的質(zhì)量門禁規(guī)則(比如 SonarQube)。
  • 測試階段。自動化測試需要合理的測試策略、規(guī)范等,測試人員提的 bug 總需要在合適的服務(wù)或組件中修復。
  • 運維階段。需要完整的服務(wù)地圖,以及服務(wù)的依賴關(guān)系、日志規(guī)范等等,才能結(jié)合 AI 自動幫你定位到問題、生成報告等。

當然,架構(gòu)規(guī)范通常分散在不同的部門和團隊中管理,如何高效整合和應(yīng)用這些知識是當前面臨的一個挑戰(zhàn)。然而,這里我們主要關(guān)注架構(gòu)知識在開發(fā)過程中的重要性。

微服務(wù)場景示例:AI 如何依賴于架構(gòu)

圖片圖片

以基于 Protobuf 的微服務(wù)架構(gòu)為例,我們可以探討 AI 如何利用架構(gòu)知識來推進開發(fā)流程的數(shù)字化。

Protobuf 是一種高效的二進制序列化協(xié)議,提供了跨語言、低延遲的數(shù)據(jù)交換能力,特別適合微服務(wù)架構(gòu)中服務(wù)之間頻繁的通信需求。通過解析 Protobuf 中的服務(wù)(Service)、消息(Message)和 RPC 調(diào)用等內(nèi)容,AI 能夠提取系統(tǒng)組件之間的交互關(guān)系、數(shù)據(jù)結(jié)構(gòu)以及模塊的職責。這些信息有助于識別系統(tǒng)的核心模塊、數(shù)據(jù)流以及 API 接口。

  • 需求階段:AI 能夠結(jié)合 Protobuf,將復雜的業(yè)務(wù)需求拆解為更小的功能單元,并標注它們之間的依賴關(guān)系。同時,AI 會自動生成針對每個服務(wù)的消費者和服務(wù)者需求文檔。
  • 設(shè)計階段:在設(shè)計過程中,AI 可以自動生成符合微服務(wù)標準的設(shè)計文檔,涵蓋 Protobuf API 代碼、數(shù)據(jù)庫設(shè)計等內(nèi)容,進一步生成自動化測試接口,確保系統(tǒng)的一致性。
  • 開發(fā)階段:AI 在開發(fā)階段會自動應(yīng)用團隊的編碼規(guī)范和代碼風格,結(jié)合 Protobuf 接口生成客戶端和服務(wù)端代碼,以確保代碼質(zhì)量符合組織的標準。
  • 測試階段:AI 可以根據(jù)需求和設(shè)計文檔自動生成合理的測試策略和測試用例,創(chuàng)建模擬請求和響應(yīng),幫助識別 bug 所在的服務(wù),并自動生成修復建議。
  • 運維階段:在運維階段,AI 能夠利用 Protobuf 文件生成服務(wù)地圖,展示服務(wù)間的依賴關(guān)系。同時,AI 還會自動分析日志數(shù)據(jù)生成問題報告,并提供根因分析,幫助運維團隊快速解決問題。

對于 Spring Boot 框架,盡管具體實現(xiàn)和技術(shù)棧有所不同,但整體思路與上述 Protobuf 類似。Spring Boot 提供了一系列工具和庫來支持微服務(wù)架構(gòu),例如 Swagger 等,這些工具可以幫助開發(fā)者快速構(gòu)建和管理微服務(wù)。通過結(jié)合 Spring 工具生態(tài),Spring Boot 應(yīng)用中的服務(wù)之間的通信也能實現(xiàn)高效的數(shù)據(jù)交換,AI 可以同樣在需求、設(shè)計、開發(fā)、測試和運維各個階段進行有效的集成和自動化,進一步提升開發(fā)流程的智能化水平。

AI 與架構(gòu)知識相互賦能:如何實現(xiàn)架構(gòu)的數(shù)智化?

架構(gòu)數(shù)智化是指通過對架構(gòu)知識進行數(shù)字化和智能化的處理,提升架構(gòu)設(shè)計、管理與協(xié)作的效率和質(zhì)量。其核心在于將分散的架構(gòu)知識進行數(shù)字化表示,構(gòu)建統(tǒng)一的知識基礎(chǔ),使得人工智能(AI)能夠理解和利用這些知識,從而輔助并優(yōu)化架構(gòu)相關(guān)的各個環(huán)節(jié)。

圖片圖片

實現(xiàn)架構(gòu)數(shù)智化的關(guān)鍵步驟包括:

  1. 架構(gòu)元模型的建立:定義架構(gòu)的基本元素和關(guān)系,如組件、接口、依賴關(guān)系等。這為架構(gòu)知識的數(shù)字化奠定了基礎(chǔ),確保了架構(gòu)元素的標準化和可操作性。
  2. 知識圖譜的構(gòu)建:將架構(gòu)元素及其關(guān)系映射到知識圖譜中,形成結(jié)構(gòu)化的架構(gòu)知識庫。知識圖譜使得復雜的架構(gòu)信息以可視化、關(guān)聯(lián)性的方式呈現(xiàn),便于知識的檢索和推理。
  3. 標準化的語義定義:采用統(tǒng)一的描述語言和規(guī)范,如統(tǒng)一建模語言(UML)、領(lǐng)域特定語言(DSL)等。標準化確保了架構(gòu)知識的可讀性和可解析性,促進了人與機器之間的有效溝通。

借助數(shù)字化的架構(gòu)知識,AI 能夠在以下方面助力架構(gòu):

  • 設(shè)計方案推薦:根據(jù)具體的需求和約束條件,AI 可以快速推薦最佳的架構(gòu)設(shè)計方案,幫助架構(gòu)師做出更明智的決策。
  • 規(guī)范合規(guī)性檢查:自動驗證設(shè)計方案是否符合組織的架構(gòu)規(guī)范和標準,減少人為錯誤,確保一致性和合規(guī)性。
  • 自動生成原型:基于高層次的架構(gòu)設(shè)計,AI 能夠自動生成代碼骨架或原型,支持快速迭代和驗證,加速開發(fā)流程。
  • 智能問答系統(tǒng):利用自然語言處理技術(shù),AI 可以回答團隊成員關(guān)于架構(gòu)的疑問,提供實時支持,促進知識共享。
  • 智能化協(xié)同設(shè)計:在協(xié)同設(shè)計平臺上,AI 提供實時建議和錯誤檢查,幫助團隊成員協(xié)調(diào)工作,提高設(shè)計效率和質(zhì)量。

綜上所述,架構(gòu)數(shù)智化通過集成數(shù)字化表示和人工智能技術(shù),實現(xiàn)了架構(gòu)知識的高效管理和利用,推動了架構(gòu)設(shè)計過程的智能化轉(zhuǎn)型。這不僅提升了組織的創(chuàng)新能力和響應(yīng)速度, 也為數(shù)字化時代的持續(xù)發(fā)展提供了堅實的技術(shù)支撐。

實踐:提煉架構(gòu)知識,整合 AI 工具

我們的探索圍繞于三個平臺/工具:

  • ArchGuard 治理平臺:用于架構(gòu)知識的管理、分析和優(yōu)化,支持架構(gòu)元模型的定義、知識圖譜的構(gòu)建和標準化的語義定義。
  • Team AI 平臺:在 AI 平臺上整合開發(fā)流程與架構(gòu)知識,提供智能化的協(xié)同設(shè)計、規(guī)范合規(guī)性檢查、自動生成原型等功能。
  • Shire AI 助手:在 IDE 端提供直接 Prompt 能力,并與遠程智能體的交互,以實現(xiàn)基于代碼骨架的 AI 交互和迭代。

其中的 ArchGuard( https://archguard.org/ )和 Shire ( https://archguard.org/ ) 都是我們自研的開源工具,可以在 GitHub 上找到源碼和文檔。

1. ArchGuard:提取架構(gòu)知識與數(shù)據(jù)

我們在 ArchGuard 2.2.2 版本中,提供了對 Protobuf 文件的解析和分析功能,支持自動提取服務(wù)、消息、接口等元素,構(gòu)建服務(wù)地圖和依賴關(guān)系圖。并構(gòu)建了 全新 ArchGuard Architecture Analyser 模塊,支持對架構(gòu)知識的智能化分析和優(yōu)化。

通過,直接運行 ArchGuard CLI,就可以將 Protobuf 文件解析為 JSON 格式,并上傳到自定義的遠程服務(wù)器中,以便后續(xù)的分析和優(yōu)化。

java -jar .scanner_cli.jar --language=go --type=architecture --output=http --server-url=http://localhost:3000 --path=.

如下是,我們在 ArchGuard 中的可視化展示:

圖片圖片

2. Team AI 平臺:整合 AI 工具與架構(gòu)知識

我們在 Team AI 平臺中,整合了開發(fā)流程,并兼容 ArchGuard 接口。如下是,相同數(shù)據(jù)在 Team AI 平臺中的展示:

圖片圖片

結(jié)合生成式 AI 的生成能力,我們可以快速構(gòu)建基于代碼庫的接口知識,用于快速進行知識檢索和查詢:

圖片圖片

以便于我們可以從需求階段,就可以查詢到需求可能影響 的范圍,方便進行架構(gòu)設(shè)計和文檔的編寫等。Team AI 平臺也提供了面向其它工具、平臺的接口,諸如于 Shire IDE 插件就可以快速接入。

3. Shire AI 助手:AI 與架構(gòu)知識的交互

在 Shire 可以直接調(diào)用遠程的 Http API、流式 API 等:

圖片圖片

因此可以直接從平臺獲取所需要的架構(gòu)知識,并將其與代碼庫相結(jié)合,以實現(xiàn)更高效的軟件開發(fā)。我們還在即將發(fā)布的 Shire 新版本中添加更好的 Protobuf 支持:

圖片圖片

以直接在 IDE 中就可以讓 AI 修改 prompt。

結(jié)語:架構(gòu)知識的數(shù)字化與智能化

在我們的探索中,架構(gòu)知識的數(shù)字化與智能化成為提升軟件開發(fā)效率的關(guān)鍵。通過將 AI 應(yīng)用到基于 Protobuf 的微服務(wù)架構(gòu),我們在需求、設(shè)計、開發(fā)、測試和運維等環(huán)節(jié)實現(xiàn)了智能化支持。

借助 ArchGuard 治理平臺、Team AI 平臺和 Shire AI 助手,我們構(gòu)建了一套工具鏈,使架構(gòu)知識能夠被 AI 理解和應(yīng)用,推動開發(fā)流程的自動化與智能化。盡管面臨著規(guī)范與流程的挑戰(zhàn),我們相信,架構(gòu)知識的有效整合將為 AI 的成功落地和研發(fā)效能提升提供強有力的支持。未來,我們將繼續(xù)深入探索架構(gòu)與 AI 的融合,推動軟件工程的持續(xù)變革。

責任編輯:武曉燕 來源: phodal
相關(guān)推薦

2022-03-17 14:03:36

人工智能數(shù)字化轉(zhuǎn)型數(shù)據(jù)

2024-04-12 11:16:18

2019-07-29 09:29:26

2022-01-12 16:25:54

數(shù)字化轉(zhuǎn)型運營電商

2022-03-26 22:48:41

數(shù)字技術(shù)企業(yè)數(shù)字化轉(zhuǎn)型

2025-02-12 10:24:48

AI數(shù)字化轉(zhuǎn)型

2017-06-23 10:21:32

ERP時代數(shù)字化賦能

2022-10-30 13:16:30

數(shù)字化轉(zhuǎn)型數(shù)字化綠色能源

2023-05-30 09:36:51

生成式AINVIDIAOmniverse

2022-07-26 14:19:45

中小企業(yè)

2018-04-09 17:08:16

Aruba人工智能數(shù)字化

2018-08-10 15:29:47

華為

2021-07-16 14:12:57

數(shù)字化

2017-12-11 15:34:26

數(shù)字化API架構(gòu)

2018-04-09 22:59:59

Aruba智能數(shù)字化架構(gòu)

2017-04-18 16:28:38

開源 推動

2018-07-29 17:18:00

華為
點贊
收藏

51CTO技術(shù)棧公眾號