Author: Jing Zhuang
This paper mainly talks about the construction thinking and practice of the low code system of NetEase Cloud Music big front end team in the stereotyped RESEARCH and development scenario. This article will discuss our thoughts on building a low-code r&d system from the perspective of our current business development problems, and then introduce the online rapid development capabilities that we are building to support LowCode and ProCode online development.
Business RESEARCH and development Status
Let’s take a look at our current business situation. With the rapid development of business, a large number of platform products have emerged, among which there are more than 40 platforms related to public technology, quality assurance and data intelligence. In addition, there are a large number of CMS platforms and various Web applications for cloud music master station, Look Live and Yinstreet. And that number keeps growing. On the other hand, both the CMS platform and the activity page show obvious pattern characteristics. This means that many of the development requirements faced by developers are repetitive.
Our current r&d situation is a contradiction between massive business requirements and inefficient R&D throughput. Let’s take a look at some thoughts on the current situation of R&D from different perspectives:
Product students often complain: just change a copy, but the front end needs to arrange 2 weeks, but also combined demand release, how can it be so inefficient; Back-end students often encounter: some internal system experience is not good, to change the UI, have to find front-end resources to schedule, but there is no front-end resources to do; On the other hand, the front-end students are faced with many business requirements, each of which is urgent and simple and repetitive. Without design draft, it is difficult for me to grow in technology.
Here I made a simple mathematical statistics, in the middle and background, the front end supports 3.3 platforms per capita, and the average delivery cycle is about 2 weeks. The figure on the right is a list of requirements from the 20th phase of Muse platform. You will find that a large number of requirements are trivial details like “change copy” and “add fields”, but these problems need multi-party cooperation and scheduled development.
Application development dilemma in rapid business development
Why is this a problem? I think there are four ways to unravel the app development dilemma of a rapidly growing business:
- The first is people. On the one hand, mobility of people is inevitable, and on the other hand, full-stack developers are extremely scarce these days.
- The second is change, because requirements are always changing and the iteration cycle is getting shorter and shorter.
- The third is complexity, on the one hand, the technology system is becoming more and more complex, on the other hand, r&d dependence is becoming more and more complex.
- The fourth is the disconnect between requirements and development delivery on the one hand, and long processes and fast delivery on the other.
From focusing on application development to focusing on business delivery
How do we respond? My thinking is that we need to get front-line developers “to move from focusing on the application development process to focusing on the business delivery process”.
In my opinion, the traditional business development process is a linear application development process, which needs to go through requirements communication, development and testing, and then release and deployment. This process often depends on the professional division of multiple jobs in different links, so there is a high cost of communication and collaboration. And developers tend to focus too much on flexible, decentralized local development tools and complex Web application architectures to the detriment of business delivery itself.
In my opinion, the ideal development process should be non-linear, business changes can be quickly responded to, and multiple r&d roles can be involved in the delivery process with low cost and low code. This relies on the rapid development capabilities of standardization and integration, as well as a more lightweight and controllable Web application architecture.
Cloud music online rapid research and development delivery system
With this in mind, we agreed on the need to build a rapid R&D delivery system to respond to business changes. Through this system, we can effectively connect the company’s existing design specifications, development models, development tools, and r&d infrastructure. So we launched tango Low Code at the Cloud Music Technology Center. Tango is an elegant duet dance that symbolizes the new experience we are committed to bringing to business r&d delivery.
The core advantages of cloud Music Tango Low code project include three aspects:
- Visual build based on source code: it provides visual build experience from source code to source code, independent of specific DSL and no proprietary build protocol, independent of front-end framework, support LowCode & ProCode dual mode online development ability.
- Seamless integration with existing r&d facilities, providing one-click application creation and release deployment capabilities: able to connect to the front-end deployment platform, version control system Gitlab, and fully reuse existing material systems.
- Provide the ability of docking contract syndication and model-driven: support the docking with the existing contract syndication mode of cloud music, provide the automatic syndication capability within the designer, and build an automated page generation scheme with the application interface model information of the back-end metadata center.
Disadvantages of traditional low code build solutions
Before talking about the low code technical solution of cloud music, we might as well first analyze the problems existing in the traditional low code construction solution: most of the low code solution on the market can be described by the following figure. The key is to transform view logic into page description logic, build node model and attribute model on this basis, and then modify view logic by manipulating and changing the model.
The problem here is that the build engine designers often need to define the first page describes agreement, usually adopt the way of JSON, restricted to specific business scenarios and developers personal preferences, the protocol design here there are a lot of uncertainty factors, it is easy to lead to inconsistencies and maintenance issues in the late of the agreement, Due to the need for peer mapping with the programming language, it is difficult to achieve Turing completeness in such a private construction protocol scheme.
To summarize, I think there are three obvious downsides to this kind of traditional low-code scaffolding:
- The use of private protocol construction, resulting in high cost of protocol design, difficult to long-term maintenance, difficult to achieve Turing complete.
- Depending on a specific DSL scheme, the material is somewhat limited to a specific build scheme.
- Due to the above two reasons, resulting in only one-way transcoding capability, once the output source code, the process is no longer reversible.
Cloud music source based low code solution
We need to rethink protocol design for low-code scaffolding. We expect the new scaffolding protocol to be generic and easy to understand, easy to maintain, or even maintainable, easy to manipulate, and independent of the front-end framework. At this point, we thought of the AST (Abstract Syntax Tree), which is an Abstract Syntax Tree of programming language source code that represents a structured description of source code structure. For JavaScript languages, Babel has provided AST parsing and generation capabilities for JS languages, and it is easy to manipulate and change source code nodes with the help of Babel tool functions.
Therefore, we adopted the following core ideas to build the visual model of tango low code system: The source code is parsed into AST, and the file model and node model are further abstracted and built on the basis of AST. The modified AST is restored to the source code by changing the drag-and-drop configuration behavior of the view into the manipulation and modification of AST.
LowCode & ProCode dual mode real-time switching
Due to the adoption of low-code construction scheme completely based on source code, the low-code platform built inside cloud music can provide both LowCode and ProCode research and development modes, and the user behavior in the two modes can be completely equivalent, and the user behavior in the design view will be synchronized to the source code in real time. Changes to the source code can also be reflected in the design view in real time. The ability to switch between two modes provides a more flexible online development experience for advanced scenarios, and user-created source code projects can continue online development in compatibility mode.
Seamless integration with existing R&D facilities
For the tango low-code system of cloud music, we pay more attention to the integration with the existing internal R&D facilities on the basis of the LowCode & ProCode hybrid R&D model, so as to further accelerate the efficiency of business R&D. Tango platform provides the ability to integrate with Gitlab. Every save operation of the user will write the source code into Gitlab’s warehouse. Provides integration capability with r&d platform, can quickly create applications with one click, and can deploy and publish applications with one click; Provides the integration capability with the material center, can quickly consume the two – and three-party component packages within the team; It provides the ability to integrate with data gateway, and can generate pages quickly online by means of the contract syndication mode. Provides integration capability with D2C and supports one-click generation of code from design draft.
Contract tuning and model-driven capabilities
The research and development mode of contract joint tuning is established in the research and development system of Cloud Music, which provides interface contract and its change management and interface automation Mock capabilities. Moreover, with the help of the basic application metadata provided by the code automation Analysis Center, it can provide strong application data model and service support for tango low-code platform. At present, the tango low-code platform of Cloud Music has preliminarily built the online automated syndication capability based on the contract syndication mode, and the automatic generation capability of model pages based on the application metadata is also in progress.
One More Thing: Low code engine based on source code
In building a cloud music tango low code system in the process, we will be the core of low code to sink, abstraction and build a ecological system based on low source code engine, on the one hand provides the platform side ability more decoupling and ease of maintenance of the underlying scheme, on the other hand, with the aid of cooperating with various teams to low code of the ecological system in the company.
With the help of tango low code engine, when we restart a low code project internally, we can easily complete the front-end implementation of the whole low code project with only 30 lines of code. Developers can focus more on service integration and user functions, thus greatly reducing the internal cost of trial and error.
summary
Finally, a quick review of the low-code development architecture we’re building at Cloud Music. In order to deal with problems and challenges in the process of business development, combined with cloud music business development present situation and the status quo of the technical system, the way we think with low code to build online research and development ability to deliver fast, can effectively deal with estimation problems in research and development of the business scenarios, and can simplify the front-end development processes, assigned to a variety of business development role, To this end, we built the cloud Music Tango low-code R&D system, which is completely based on the source code solution, does not use private construction protocol, does not rely on specific DSL scheme, and supports seamless integration with the internal existing infrastructure RESEARCH and development facilities, to accelerate the efficiency of modeling business research and development.
In the future, we will continue to bring further technical sharing on cloud music low code capacity building.
This article is published by NetEase Cloud Music Technology team. Any unauthorized reprinting of this article is prohibited. We recruit technical positions all year round. If you are ready to change your job and you like cloud music, join us!