2

Have you noticed that every few years there will always be some hot cutting-edge vocabulary appearing in front of us, such as: cloud native, microservices, mid-stage, Servless, low-code, and so on. So have you ever wondered what is behind these concepts? The conclusion is not difficult to find. From the goals of various concepts to merge similar items, their essential goal is to improve R&D efficiency!

On the road to improving R&D efficiency, various solutions have different focuses, some focus on the improvement of infrastructure, some focus on the optimization of the system architecture, and some focus on the update of production tools. Take the most popular low-code platform recently, and it's more about standing on the focus of production tools.

Different from traditional IDE production tools

When it comes to the improvement of production tools, we often think of IDE optimization first, such as articles made on development tools such as IDEA and Eclipse, and low-code platforms are fundamentally different from these.

In the product iteration of traditional development tools, we see more optimization points: cooler interface, more friendly coding association, more accurate error prompts, more convenient debugging process, more convenient construction tools and other traditional-oriented The developer's perfect direction. Production tools in this area have higher flexibility, because we can freely construct our engineering style according to team preferences and management needs to complete our development goals.

The realization goals of low-code platforms are different from traditional development tool products. They are committed to allowing users to write less code and use more friendly coding methods to lower the talent threshold for digital system construction, so that more people can quickly get started and get started. Participate in the construction of enterprise informatization. So why can a low-code platform lower the barriers for developers to get started and speed up the digital construction of enterprises?

I think there are mainly the following aspects:

Visual coding method

Developers can use drag-and-drop methods to implement core coding logic such as domain model design, user interface implementation, and business process planning.

cloud hub , which has been focusing on low-code fields for many years, as an example. Suppose we want to implement a company's conventional leave process, how to achieve it, to experience the main difference with traditional development!

first step: domain model design . Under the traditional development model, what we have to do is to complete the creation of the table structure according to the database we are using. Here we need to maintain the relevant creation scripts. And here we can see that we only need to complete the design of the domain model in a visual way, and at the same time, we don't need to consider what database is used. For the difference between different databases, we can finally rely on the platform to automatically complete the adaptation.

Step 2: Operation interface design . In all low-code platforms, almost all provide WYSIWYG form design capabilities. The principle is to realize componentization of various commonly used page elements, and realize the association and binding with the domain model, and then complete the input storage and read display of business data through configuration. Therefore, if the business requirements can be met by the existing ready-made components, the user can complete the design and implementation of the interface without writing code when implementing it.

Step 3: Business process design . For process-oriented business requirements, under the normal mode, we can use the state mode or some lightweight state machine framework to code the simple ones, while the more complex or flexible ones, we need to introduce a workflow framework to realize it, and we need to do a lot. Complicated front-end configuration and requires more learning to get started and use it well. Through the process design interface in the low-code platform, it can be seen that the process development and configuration process has been simplified a lot.

From the above several core steps of product development, we can find that low-code platforms are trying to encapsulate various common coding operations as much as possible, so as to allow users to complete the design and development steps of each stage as much as possible. , To reduce the writing of code as much as possible, for some simple requirements, and even achieve the goal of zero code completion.

Integration of development, operation and maintenance

Through the above visual coding, we can quickly complete the development of a business requirement. However, the realization of a requirement in the development process is only a preliminary process, so what about the subsequent project packaging, version management, and product launch?

For a mature low-code platform, these contents must be covered! This is also a sector that is quite different from the traditional development model. However, due to the different positioning of low-code platforms, there may be several different solutions, and there are mainly two common types:

first category: SaaS-based deployment capabilities . Such low-code platforms often provide relatively lightweight implementation capabilities, such as online Excel tools. It is used to realize some simple questionnaire surveys, data collection and statistics and other functions. Such requirements do not require too complicated interface interaction, process control or data processing. For example: Another product of Orzhe: Youge

This type of product is positioned on a lightweight low-code platform, so its scope of application will be more biased towards some common models, so the platform will also improve some templates, which is convenient for users to quickly get started, and do the second time based on the inherent template of the industry. Customize to quickly implement a set of applications that meet the needs of your team.

The entire development process is cloud hub mentioned above. For example, the following is an agile R&D management application completed with this tool.

Because the application scenarios faced by such platforms are relatively simple, they are often temporary and short-term. They do not need to be deployed in a specific environment, and naturally there is no connection with private resources, so such platforms can often be directly available. Realize the deployment and use of user applications on the platform side.

second category: Provides the ability to integrate DevOps and privatized resources . Compared with the above lightweight low-code platform, this one is relatively heavyweight. In the visual coding method section, the cloud hub we cited is such a low-code platform that integrates operation and maintenance capabilities.

It covers the build build from the product version:

To the maintenance of the infrastructure:

Then to the product release:

Covers a complete process of requirements from development to online. Therefore, we can see that when a business needs, through the application of a low-code platform, the entire product development process is integrated into a platform. This is very different from our application of traditional production tools. We no longer need to design a series of architecture management designs such as code base version management, construction package management, and deployment resource management. The overall management solution provided by such low-code platforms can support the entire process management of product development, testing, and launch.

Although powerful, it is not a silver bullet

After reading the second type of low-code platform introduced above, do you feel that this thing is very powerful, then will it be a silver bullet for improving development efficiency? In the future, as some manufacturers have said: everyone is a developer in the future, and programmers will lose their jobs?

I don’t agree with the propaganda that "everyone is a developer in the future". Because I still believe that there is no silver bullet in software development! Although the low-code platform seems to be very powerful, whether it is a lightweight or heavy-weight low-code platform, it is also aimed at some special customer groups. There is no low-code platform that can adapt to all development teams and business scenarios, so low-code platforms cannot be generally called a silver bullet to improve efficiency. It should be said that it can help the development team on the premise of more in line with individual needs. Or companies improve efficiency.

For lightweight low-code platforms, because the functions are relatively simple, it is not suitable for Internet C-end products that are complex and changeable and require more innovative elements. I think this type of platform is more suitable to be applied to some scenarios where business logic is more stable, or some temporary data collection and statistics requirements, just like those template applications in Orzheyouge, which have been accumulated in the industry for a long time. Some teams are similar, and at most there are some small changes in the application direction. Or some temporary needs like questionnaires are especially suitable for use. Choosing some platforms with good product ease of use does not even require development intervention. Some smart products and operations can achieve some simple requirements through configuration.

For the heavyweight low-code platform, because the functions are more professional, it can meet more complex business needs than the lightweight platform, and can adapt to more different team management models. However, the concepts involved in the use of such platforms are still very numerous. Therefore, it can only be said that this type of platform will be easier for developers to use. For pure business personnel without development thinking, there are still certain thresholds. This type of platform is more suitable for large-scale development teams to develop internal systems in large enterprises. The staffing requirements are lower than traditional development, but the development speed is faster.

But at present, this type of platform has room for improvement for some complex scenarios, especially for some high-concurrency business scenarios. Because in these scenarios, we often need to use a lot of middleware, caching, current limiting, fusing and other techniques to ensure the good operation of the system. Therefore, although I think the low-code platform is a good tool, whether it is lightweight or heavyweight, it can solve the development efficiency problem of some scenarios. But if you want business developers to focus on the realization of business functions and cover all scenarios, then the performance architecture must be strengthened.

In general, I suggest that when selecting and applying low-code platforms, we must fully understand the relationship between the characteristics of our business scenarios and the advantages of each low-code platform, and we must be targeted in order to maximize the value of low-code platforms. ! Don't take the platform and push everywhere when you see the demand, don't use the wrong scene because of the good tools, and be sprayed with nothing!

Finally, do a small survey: Have you started using low-code platforms? Do you think the low-code platform has brought you an increase in efficiency? Join our technical exchange group and talk about your views!

Welcome to pay attention to my official account: Program Ape DD, get exclusive free learning resources to help you learn Java! And don’t stop donating books every week~

程序猿DD
2.2k 声望2.8k 粉丝

作品:《Spring Cloud微服务实战》、SpringForAll社区、OpenWrite、Youtube中文配音