Abstract: In the Huawei Developer Conference (Cloud), Huawei Cloud released intelligent coding tool and Cloud native application commissioning tool based on Huawei CloudIDE.

This article is shared by Huawei Cloud community “Next Generation Cloud native Development Tool Technology Disclosure”, the original author: Grey Da.

At the Huawei Developer Conference (Cloud), Huawei Cloud released intelligent coding tools and native Cloud application commissioning tools based on Huawei CloudIDE. In his keynote speech, Wang Yawei, chief expert of Huawei cloud development tools and efficiency and director of Huawei Development Tools Technical Committee, introduced how to reshape coding and microservice commissioning productivity based on Intelligent code completion technology (SmartAssist) and Microservice cluster Commissioning technology (CloudDebugger).

Intelligent AI code completion – SmartAssist

Most developers still write code in IDE, so code completion is one of the core technologies of IDE. Code completion technology has come a long way since the beginning of IDE’s basic completion, which is implemented based on IDE’s understanding of the syntax and semantics of the programming language. With the development of AI, many people in exploring how to use the AI technology to enhance the effect of the code completion such schemes are mostly based on open code corpus training a model, when the developers coding, this model is mainly do is to make up for all position code similarity matching the characteristics of the context, and then give a complete list of results. The main common problems of this kind of scheme are: the accuracy of multi-symbol completion is not high; In many cases, the completion results require manual intervention and secondary processing; Sometimes they are not confident about completion results, which is reflected in giving developers too many recommended results to choose from.

Then, Wang yawei introduced SmartAssist, which combines deep code analysis and deep learning model, that is, deep analysis of the developer’s native code to form a native code model. At the same time, the multi-scene deep learning model of offline training is combined to help developers complete the code. SmartAssist understands all syntactic results in the context of the current completion location, while making decisions and ordering those results into our multi-scenario model. Therefore, SmartAssist is very good for the interpretability and adjustability of completion results.

Three core technologies of SmartAssist

SmartAssist has three core technologies:

First: Index of high performance code based on memory compression.

Second: syntax tree search algorithm.

Third: multi-scene deep learning model.

When the developer uses SmartAssist for coding assistance, first the code context of the completion position will be quantified by a word phase, and then the syntax tree search algorithm will enumerate all possible completion results based on the local code index, and then sort, filter and fill in these results. The final candidate will be combined with context vector into the deep learning model for decision-making.

How is ColudDebugger reinventing commissioning productivity for microservices?

After talking about reinventing coding productivity, Wang explained how CloudDebugger reinventing commissioning productivity for microservice clusters.

The simplicity of software commissioning in a single architecture stems from its simple process model, where developers simply connect the debugger to the corresponding process through the IDE. In the context of enterprise application modernization, monolithic architecture software is very unpopular, because the first step of application modernization is the microservice transformation of monolithic architecture. Imagine a single architecture software with only three interfaces that, when decoupled into 10 microservices, has 30 interfaces. Therefore, the first challenge of microservice commissioning is the development workload of these massive interface test cases. The second challenge is that these microservices inevitably have very complex invocation relationships that rely on mocks, which can lead to incomplete commissioning. Third, the process of concurrent commissioning between multiple micro-services is not feasible by traditional debugging methods.

Next, Wang Yawei used a typical multi-person multi-version micro-service commissioning scenario to share with you what value CloudDebugger can bring to developers?

In such a scenario, there are three users, user 1, user 2, and user 3. User 1 initiates A debug session through CloudDebugger. His call chain is microservice A 1.0, B 1.0, and D 1.0, and user 2’s call chain is microservice A 2.0, B 2.0, and D 2.0. User 3 is working on microservices 3.0. He doesn’t care about other microservices, so the call chain is version 3.0 of microservices A, C, and microservices D. What does CloudDebugger offer developers in such a complex scenario? First, the debugging sessions between the three users are independent of each other. By implication, user 1’s request will not trigger anyone else’s breakpoint. Second, CloudDebugger supports all the convenience of setting breakpoints, single step tracing, variable viewing, call stack and other single software debugging.

In addition, users need to constantly modify the code during commissioning. CloudDebugger supports hot replacement of code. Each time the incremental code is modified, CloudDebugger can be dynamically updated to a remote microservice instance with one click without downtime.

CloudDebugger three core technologies

CloudDebugger has three core technologies

First: independent debug adaptation services. While using CloudDebugger to debug a remote microservice, the local Debugger can debug other programs, such as client GUI programs.

Second: Intelligent debug message routing ensures reliable and consistent transmission of debug messages between multi-user multi-IDE instances and multiple microservice instances.

Third, the original batch message transfer mechanism based on named pipes can ensure high-performance and high-throughput message transfer between agents on the tenant side and microservice instances.

Because of these three points, CloudDebugger can reshape the commissioning productivity of microservices.

Huawei continues to invest in basic software technology research, huawei CloudIDE service aims to “make the best CloudIDE service”, reshape the development productivity for cloud native developers, help enterprises digital transformation and land huawei cloud native 2.0, truly realize born in the cloud, grow in the cloud, stand without breaking!

Poke me to experience CloudIDE

Click to follow, the first time to learn about Huawei cloud fresh technology ~