你的開發好幫手:下一代雲原生開發工具技術


摘要:在華為開發者大會(Cloud)上,華為雲發布了基於華為雲CloudIDE的智能化編碼工具和雲原生應用調測工具

在華為開發者大會(Cloud)上,華為雲發布了基於華為雲CloudIDE的智能化編碼工具和雲原生應用調測工具。華為雲開發工具和效率首席專家、華為開發工具技術專委會主任王亞偉在主題演講中介紹了如何基於智能化代碼補全技術(SmartAssist)和微服務集群調測技術(CloudDebugger)重塑編碼和微服務調測生產力。

智能AI代碼補全—SmartAssist

絕大多數的開發者還是用IDE寫代碼,那么就一定用到代碼補全功能,它是IDE最核心的技術之一。代碼補全技術經歷了很長時間的發展,從最開始的IDE的基礎補全,其是基於IDE對編程語言語法和語義理解來實現的。隨着AI的發展,很多人在探索如何借助AI技術來提升代碼補全的效果這類方案大多是基於公開的代碼語料庫訓練一個模型,當開發者進行編碼的時候,這個模型主要做的事是對補全位置的代碼上下文的特征進行相似度匹配,然后給出一個補全結果列表。這類方案的主要共性問題有:多符號補全的准確性不高;很多時候補全結果需要人工干預和二次加工;有時對於補全結果並不自信,體現在給開發者過多的推薦結果讓其選擇。

然后,王亞偉介紹了SmartAssist,它結合了深度代碼分析和深度學習模型,即對開發者的本地代碼進行深度分析,構成一個本地的代碼模型。與此同時結合線下訓練的多場景的深度學習模型,兩者搭配,最后幫助開發者進行代碼補全。SmartAssist理解對於當前補全位置的上下文中所有符合語法規則的結果,同時對這些結果進到我們的多場景模型進行決策和排序。因此,SmartAssist對於補全結果的可解釋性和可調節性是非常好的。

SmartAssist三大核心技術

SmartAssist有三大核心技術:

  • 第一:基於內存壓縮的高性能代碼的索引。
  • 第二:語法樹搜索算法。
  • 第三:多場景的深度學習模型。

當開發者在使用SmartAssist進行編碼輔助的時候,首先補全位置的代碼上下文會進行一個詞相量化,然后語法樹搜索算法會基於本地代碼索引窮舉所有可能的補全結果,然后對這些結果進行排序,過濾和填參處理,最后的候選項會結合上下文詞向量進入到深度學習模型進行決策。

ColudDebugger是如何重塑微服務的調測生產力?

聊完重塑編碼生產力之后,接下來王亞偉介紹了CloudDebugger如何重塑微服務集群的調測生產力。

單體架構的軟件調測非常方便源自於其簡單的進程模型,開發者只需要通過IDE將調試器連接到對應進程,即可進行調試。在企業應用現代化改造這樣一個大背景下,單體架構的軟件非常不受待見,因為應用現代化改造的第一步就是單體架構的微服務改造。試想一下,原來一個只有3個接口的單體架構軟件,當解耦成10個微服務之后,就有30個接口。所以微服務調測第一大挑戰,就是這些海量的接口測試用例的開發工作量巨大。第二個挑戰,這些微服務之間必然有非常復雜的調用關系,而這些調用關系,需要依賴Mock,這樣會帶來調測的不完備。第三,多微服務之間進程並發調測,傳統調試手段不可行。

接下來王亞偉用一個典型的多人多版本微服務調測的場景跟大家分享了CloudDebugger到底能給開發者帶來什么價值?

在這樣一個場景下,三個用戶,用戶1、用戶2和用戶3。用戶1通過CloudDebugger發起了調試會話,他的調用鏈條是微服務A的1.0、B的1.0和D的1.0版本,用戶2的調試會話的調用鏈是微服務A的2.0、B的2.0和D的2.0版本。用戶3是在進行微服務3.0的開發,他不關心其他微服務,所以調用鏈是微服務A、C和微服務D的3.0版本。在這樣一個復雜的場景之下,CloudDebugger能給開發者帶來什么?第一,這三個用戶之間的調試會話互相獨立,互不干擾;言下之意,用戶1的請求不會觸發其他人的斷點。第二所有設置斷點、單步跟蹤、變量查看、調用堆棧等單體軟件調試的便利性CloudDebugger都支持。

除此之外,用戶在調測過程中需要不斷修改代碼。CloudDebugger支持代碼熱替換功能,每次修改的增量代碼,CloudDebugger可以動態的、無宕機的一鍵式更新到遠端微服務實例。

CloudDebugger三大核心技術

CloudDebugger有三大核心技術,

第一:獨立的調試適配服務,用CloudDebugger調試一個遠端微服務的同時,本地的Debugger可以調試一個其它的程序,比如客戶端GUI程序。

第二:智能調試消息路由可以確保多用戶的多IDE實例和多個微服務實例之間調試消息的可靠和一致性傳輸。

第三:獨創的基於命名管道的批量消息傳輸的機制,可以確保在租戶端的Agent可以跟微服務實例之間高性能、高吞吐的消息傳輸。

正因為這三點,CloudDebugger可以重塑微服務的調測生產力。

華為持續投入基礎軟件技術研究,華為雲CloudIDE服務旨在“做最好用的雲端IDE服務”,為雲原生開發者重塑開發生產力,幫助企業數字化轉型和落地華為雲雲原生2.0,真正實現生於雲、長於雲、立而不破!

戳我體驗CloudIDE

 本文分享自華為雲社區《下一代雲原生開發工具技術揭秘》,原文作者:灰灰噠。

點擊關注,第一時間了解華為雲新鮮技術~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM