你的開發好幫手:下一代雲原生開發工具技術
摘要:在華為開發者大會(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,真正實現生於雲、長於雲、立而不破!
戳我
本文分享自華為雲社群《》,原文作者:灰灰噠。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3137/viewspace-2796092/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 前端開發好幫手,eslint配置全知道前端EsLint
- 前端技術開發工具彙總前端
- 為什麼從事雲原生開發需要學習容器技術
- AIoT原生技術帶來更好的應用開發AI
- 50 個能幫你節省時間的開發工具
- 16個幫助開發者成長的技術社群
- 當代開發者的好幫手,淺析.NET敏捷開發框架的優勢與特點敏捷框架
- 2020年最流行的Java開發技術,最為主流的技術與工具你懂嗎?Java
- 阿里雲畢玄:與開發者群體共建雲原生軟體技術棧阿里
- 長沙java培訓哪家好?Java開發這些技術你的懂Java
- 有感而發 - 日新月異的SAP開發技術和手術方式
- 雲原生時代來臨,開發者如何適應雲原生開發環境?開發環境
- 應用程式APP原生開發的好處APP
- Android開發工程師(雲技術方向)--急聘Android工程師
- ArcObjects SDK開發 024開發的技術和技巧Object
- 區塊鏈技術應用及發展 區塊鏈技術開發公司哪家好區塊鏈
- 初學web前端開發,你必要了解的基本概念與工具技術Web前端
- 想入門web前端開發,並且學好,你必須知道的十大開發工具!Web前端
- 【SpringCloud技術專題】「原生態Fegin」開啟Fegin之RPC技術的開端,你會使用原生態的Fegin嗎?(下)SpringGCCloudRPC
- 【SpringCloud技術專題】「原生態Fegin」開啟Fegin之RPC技術的開端,你會使用原生態的Fegin嗎?(中)SpringGCCloudRPC
- 【SpringCloud技術專題】「原生態Fegin」開啟Fegin之RPC技術的開端,你會使用原生態的Fegin嗎?(上)SpringGCCloudRPC
- Nocalhost:雲原生開發新體驗
- 雲原生技術
- 【技術】MediumKube- 快速部署容器雲的開發環境開發環境
- 幫幫派桌面開發
- Web前端開發掌握的技術Web前端
- 加入雲原生實戰營(星球),帶你進階 Go + 雲原生高階開發工程師Go工程師
- 開放下載 | 《Knative 雲原生應用開發指南》開啟雲原生時代 Serverless 之門Server
- 雲算力LP挖礦系統開發/雲算力挖礦模式開發技術模型模式模型
- Web前端技術分享:全棧工程師常用的開發工具Web前端全棧工程師
- PHP語言技術開發的手術麻醉管理系統原始碼PHP原始碼
- 使用雲原生應用和開源技術的創新攻略
- VMware招聘雲原生開發工程師 (北京)工程師
- 智慧合約策略機器人開發及量化交易系統開發技術工具機器人
- 2020年最流行的Java開發技術你不瞭解下?Java
- 需要避免的6個雲原生開發問題
- 雲原生推動全雲開發與實踐
- 原生開發、H5開發和混合開發的區別H5