1. What is a rapid development platform
The rapid development platform, as the name implies, is a development platform that can make development faster, and is a productivity tool that improves team development efficiency. In the past year or two, many domestic companies have paid more and more attention to the measurement and improvement of R&D efficiency. Based on the characteristics of software development, they cover four aspects: management and optimization, team engineering practice, personal engineering practice, and optimization process. The rapid development platform mentioned in this article can greatly shorten the demand cycle, and bring the advantages of fast development, fast launch, low risk, low cost, and low threshold to R&D efficiency.
Using manufacturing as a comparison, molds known as the "mother of industry" can greatly improve production efficiency, and the rapid development platform can also complete the development and launch of requirements within 1 minute; in addition, 3D printers are used for manufacturing. Bringing important changes, the rapid development platform can also change a way, using visual drag and drop to complete the demand development. All industries are pursuing the ability to simplify and iterate quickly. So when the low-code hits, everyone feels that this concept has been seen in recent years. The root cause is that companies and technical personnel have been pursuing higher production efficiency.
2. What we are doing
At present, most of the rapid development products in the industry are aimed at solving enterprise-level application scenarios. As the company’s core Internet product, the vivo browser requires more than a thousand operation back-end management and control capabilities under the agile development rhythm, and also requires high performance and high concurrency. , High availability and quick response to demand. Therefore, we frequently receive some tasks in our daily work: the iterative version needs to complete a large number of background development; urgent needs need to complete the background development and online within half an hour; the online background needs to quickly add a new function.
In this context, in order to support rapid business iteration, rapid development products applied to the configuration and operation background are launched. In general, we continue to upgrade our architecture to achieve rapid development around the following points:
- Support the rapid design and development of the background, and the ability to quickly deliver content;
- Support multi-dimensional authority control such as menus and users;
- Support custom data flow;
- The ability to support developers' secondary development and quick launch.
Three, product architecture in two steps
The evolution of product architecture is to serve the business, and is constantly evolving and changing with business development and technological trends. In the beginning, we started with the development of the operation background, and now we continue to provide the company's business with high-efficiency, high-standard, and fast-response development solutions. The following formally begins to introduce the product and architecture.
3.1 The first stage (configuration platform)
At the end of 2017, with the upgrade of the kernel version, in order to meet the cloud control requirements of the new kernel, the configuration platform came into being and developed into one of the ten characteristic capabilities of the kernel, and continued to provide services for dozens of businesses such as browsers. Enter the tens of billions request service club within one year.
3.1.1 Introduction to the platform
Compared with products that quickly generate pages such as json-editor, the biggest difference is platformization and service. Provides a form designer and data storage solution based on a unified platform, supports more than 20 component types, hundreds of component attributes; and provides a common background interface; and presets anchor points in the operation link to allow developers It is convenient to develop some customized requirements.
Therefore, platformization brings faster integration and upgrade capabilities to the product, making it possible to continuously enrich form components, allowing users to quickly enjoy powerful form DIY and cloud control capabilities. Servicization brings high-performance configuration delivery capabilities. Through the SDK channels at each end, the entire configuration production, delivery, and consumption life cycle is completed. The following will introduce separately from the configuration generation engine and the code-free high-performance service.
3.1.2 System Architecture
3.1.3 Form designer and rendering engine
The form designer is an abstract back-end form that summarizes, designs, and defines components, and provides a set of visual operations to add design tools to back-end components. The back-end generation engine is a weapon for us to quickly complete the back-end development. Based on this, a back-end development and launch can be completed in 1 minute.
We abstract the background into three parts: layout, fields, and operations. Based on the model of component + process, we carry out unlimited expansion to support complex and changeable business needs. The following is a brief list below:
1) Design a general template for the operation background on the main layout, and carry out configuration development on this, which is faster and more standardized.
- The main layout includes global operation, condition query area, operation rules, table area, and configuration operation area.
- Global operations are operations for forms, such as publishing, adding, batch modification, import, export, etc.; configuration operations are operations for viewing details, editing, deleting, previewing, and reviewing a configuration.
2) Background definition can help complete a series of background design functions such as form name, permission control, data model definition, portal integration, background form operation, etc. Split the data structure into basic components and composite components for orchestration.
- The basic form fields mainly include text, value, selection, picture, file, time, label and other components, and have attribute configuration enhancements to the corresponding components, such as text length verification, regular verification, image size verification, and whether to list Hidden, whether it can be exported, etc.;
- Composite components mainly include sub-form components that support tree-like data structure configuration, and can also combine multiple basic components, as well as multiple composite component lists, etc.;
3) The process operation section mainly creates the data process of editing, deleting, publishing, previewing, and reviewing the operation background.
3.1.4 No-code platform services
If the background low code is the first step for us to achieve rapid development, then platform services that integrate low code capabilities with intelligent delivery and cloud control are the core factors for the conversion from tools to platforms.
3.1.4.1 Smart placement
Intelligent delivery is an API technology with real-time data arrangement and dynamic calculation, coupled with the channel construction of our client and server SDK, it is a code-free solution that quickly realizes requirements. It can bring such capabilities to platform development:
The content of the A form configuration can be directly issued through the interface, and the interface can also be automatically issued for the subsequent new and modified fields;
A form splicing B form can be arranged and packaged and issued together, or an infinite number of forms such as B, C, D, etc. can be spliced to independently process the splicing logic;
Form A can link the data of Form B, perform logical processing (expression) and then assemble and arrange to achieve more complex business requirements;
There are many ways to arrange and play data, so I won’t go into details here.
3.1.4.2 Cloud Control
Cloud control is a solution for realizing online smart operation. Currently, it supports, but is not limited to, various custom control elements such as region, operator, crowd portrait, crowd grayscale, client version number, Android version, etc., to control and distribute.
3.1.4.3 Smart Push
By combining its own control and configuration capabilities and system push capabilities, it provides operations with such a more real-time access solution starting from the background.
3.2 The second stage (low-code platform)
In 2021, the industry's low-code trend hits. We realize some limitations and hope to move forward towards productization and a broader management background, so we set out again.
3.2.1 Introduction to the platform
Houyi is a product that meets the definition of a low-code platform and provides a development language with visual orchestration capabilities. Compared with the first-stage configuration platform, the homepage portal, operation platform, developer platform, and technical document platform are designed to provide secondary development and ecological construction capabilities, support various data channel development methods, and greatly enhance product capabilities. In the end, it is all about completing the transformation from technology platform to technology product and making low-code development easier to understand and faster development.
3.2.1 System architecture diagram
3.2.3 System description
3.2.3.1 Developer Platform & Operation Platform Subsystem
The developer platform is the core product of the entire platform, and the developer is also the core user of the platform. We provide developers with one-stop project, module, menu, and page production capabilities.
Users can create projects on the developer platform. After the creation is completed, a back-end portal will be automatically generated;
Then create a catalog and menu, you can enter the editing platform, and you can experience the ability of rapid visual development. In addition, you can quickly complete the development through a variety of preset powerful templates.
3.2.3.2 General Storage Subsystem
General storage provides a set of standardized storage solutions for operating data, and supports users to flexibly use various data sources such as self-owned warehouses and onshore external warehouses.
- Different from the low-code current pure form-driven and model-driven; after the visual development of what you see, the corresponding data model can be generated intelligently;
- The system has a series of general operation background operation interfaces to complete the corresponding operation behavior; it also provides some general data processing procedures, and uses secondary development to enhance the business.
3.2.3.3 Open platform subsystem
The open platform is a link between our platform and external data. It is a two-way data synchronization channel that provides synchronization methods such as real-time reception and asynchronous batching, and it has some security measures such as authentication and frequency limitation. In addition, the system is also a window for us to adapt to third-party services.
3.2.3.4 Delivery platform subsystem
The delivery platform is a delivery channel that realizes flexible delivery of configuration. It retains the mature delivery capabilities and SDK integration capabilities of the configuration platform. It will also integrate more business capabilities such as content library and advertising to enrich our business. Attributes.
3.2.4 Product display
1) Portal, operation, document platform display
- Portal : Showcase the introduction and capabilities of the platform, and also integrate other Houyi products simultaneously.
- operating platform : Converges access systems, modules, menus, tabs, and provides the most simplified operations for each operating team.
- document platform : Maintain Houyi's operation documents, design documents, deployment manuals, etc.
2) Editing platform display
Provides WYSIWYG visual development capabilities, as well as numerous templates for convenient and quick development.
Four, write at the end
After completing the above two phases of capacity building, we have the rapid development capabilities of the operation back-end, which can quickly complete the back-end development and online, which greatly improves the research and development efficiency. At the same time, we are also facing issues such as whether the configuration language is standard, whether the visualization operation is easy to use, whether developers are easy to use, whether more complex back-end requirements can be achieved, and the impact of rapid development on the existing product development process and so on. challenge. Despite this, we will definitely maintain simple, easy-to-use, and boundary product features in product design, and always adhere to the concept of rapid development.
Follow-up will also continue to update this series of articles on general interfaces, data processing, storage solutions, ecological construction and secondary development capabilities, high-performance API combat, disaster recovery capabilities, etc., so stay tuned.
Author: vivo internet server team-Lu Xiaohu
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。