Low-code development platform is the buzzword of the year. Some people think it is “old wine in a new bottle”, others think it is the trend of the future. Too much hype leads to some people’s rejection of technical terms, which also increases the cost of judging development trends and bogus concepts. I think the code platform is valuable and promising. The development of low code platform is conducive to the rapid landing of Internet technology to all walks of life, improve the production and operation efficiency of the whole society, and it may even trigger an Internet revolution.

This article focuses on what a low-code platform is, its values, common techniques, and limitations.

What is a low code platform

The official definition of

Let’s start with wikipedia’s definition of a low code platform: a low code development platform. Low-code Development Platform (LCDP) is a kind of Platform software that facilitates the generation of application programs. The software Development environment allows users to write programs with graphical interfaces and configurations instead of using traditional programming methods. This platform may be designed and developed for certain kinds of applications, such as databases, business processes, and user interfaces (such as web applications). Such platforms may be able to produce complete and working applications, or they may still need to be written in special cases. Low code development platforms can reduce the amount of traditional code and speed up the completion time of business applications. A common benefit is to allow more people to participate in software development, not just those with programming skills. A low-code development platform can also reduce the initial cost of setup, training, and setup.

A low-code development platform (LCDP) provides a development environment used to create application software through a graphical user interface instead of traditional hand-coded computer programming. A low-coded platform may produce entirely operational applications, or require additional coding for specific situations. Low-code development platforms reduce the amount of traditional hand coding, enabling accelerated delivery of business applications. A common benefit is that a wider range of people can contribute To the application’s development — not only those with coding skills. LCDPs can also lower the initial cost of setup training, deployment and maintenance.

A low-code platform, as defined by Wikipedia, allows users to create working applications with simple page operations such as drag-and-drop or with minimal programming.

Social classification

Some organizations have made a more detailed classification of low-code platforms, among which a highly recognized one divides common low-code platforms into four categories:

  1. No code platform. A non-code development platform is a type of low code platform that provides limited extensibility and is commonly used to develop internal management and marketing forms.
  2. Low Code Application Platform (LCAP). Balm products for developing applications that include both front end and back end. It provides development applications with declarative, model-driven and metadata-based services that enable rapid deployment and application. Most low-code technology providers are included in this scope.
  3. Multiple Experience Development Platform (MXDP). MXDP provides rapid App development tools, paying more attention to front-end development capabilities, generally used to solve multi-platform/multi-terminal applications.
  4. Intelligent Business Process Management Suite (iBPMS). A business process management system integrating AI and other technologies, highlighting back-end process definition, data integration and process automation capabilities, is generally used to solve the cross-system business processes of large enterprises.

This classification method is based on the perspective that low-code platform mainly solves problems, which is meaningful for our understanding of low-code platform. However, in reality, a low-code platform product does not necessarily belong to one of the above categories, but may simultaneously satisfy three or four categories.

The new term is not a random occurrence, but a summary of social problems. At present, there is a gap between the Internet and traditional industries. Technical experts in traditional industries are more focused on the development of their own industry, and it is difficult to have a deep understanding of Internet technology. Internet practitioners also do not have enough people to integrate into each industry to deeply explore and customize development. Even if enough people integrate into the society to do informatization in each industry, the cycle will be very long. Low-code platform can serve as a link between business experts in other industries and Internet practitioners. Business experts take advantage of the convenience of low-code platform to customize their own business systems, while Internet practitioners focus on the construction of low-code platform. This is also a kind of decoupling of social division of labor.

I personally feel that the current enterprise-oriented low code development platform, which realizes the online process of enterprise and accelerates the construction of traditional enterprise informatization, has a huge prospect.

Typical low code platform in the industry

There are a lot of low code platforms out there, including Microsoft Power Platform, Ozer Triticloud, Bird Book, Smartsheet, Aliyitian, Black Cloud, JeECC-Boot, etc. There are a lot of low code platforms out there.

Github.com/taowen/awes… This open source repository lists many low-code platforms.

Some of these low-code platforms generate code that is returned to the user, who uses it to deploy the application or redevelop it. But there are fewer and fewer such low-code platforms. More popular today are enterprise-class low code application generation platforms. Such platforms do not return code to the user but generate accessible applications directly on the platform.

In addition to some commercialized low-code platforms, domestic Internet companies also have some low-code platforms for internal use. For example, JINGdong uses its own low-code platform to develop many internal applications. Wave’s workflow engine was also a low-code platform when it worked at Wave; And on 360, 360’s visual platform allows users to create a large screen app by dragging and dropping and configuring the page.

The value of a low code platform

Low-code platforms thrive because of the tremendous value they bring.

  1. Reduce enterprise development costs. Developing business systems eliminates the need to recruit many programmers to write programs from scratch, reducing labor costs.
  2. Improve efficiency. Traditional development processes require product managers and programmers to deeply understand the business, develop software prototypes based on sufficient understanding of the business, and develop development plans based on sufficient understanding of the requirements, followed by testing iterations. The use of low code platform business experts directly modeling development, the development of one-click generation application to complete deployment, the whole development process is more efficient.
  3. Decoupling. The low-code platform decouples business and application developers from serial to parallel work.

Common techniques for low-code platforms

The low code platform has a high code abstraction level and cannot be customized according to a certain business scenario. The design based on general business model is a common implementation idea. Most low-code platforms contain three domain objects: the low-code platform itself, the application developer, and the application consumer. The platform needs an easy-to-use front-end editor and a stable back-end parsing engine to support application developers and users.

Front-end editor

Application developers who want to generate applications with little or no code must first have a flexible and easy-to-use front-end editor. Different low-code scenarios require different front-end editors.

Form editor

A form editor is required in the form process to support user-defined business fields and validation rules. Form editors are divided into static form editors and dynamic form editors. The static form editor implementation is simpler, requiring the user to drag and drop the response component to a fixed location and define the name of the form. Dynamic forms are when the front end presents different form items depending on the business logic. The implementation of dynamic forms involves DSL design and analysis, and form Schema design.

Process editor

In order to connect multiple upstream and downstream nodes and make the business run according to the predetermined flow, the front-end needs a process editor. The process editor can rely on Svg, Canvas and other technologies to complete the drawing.

Canvas editor

When generating some special pages, such as the company website, poster page, etc., it is more flexible, then a simple editor can not meet the needs of users. You need to provide richer front-end components that allow users to drag and drop anywhere on the page, adjust the page layout at will, control the size of components, rotate components, and even allow users to customize components. To achieve such an editor, we must rely on the drawing ability of Canvas. It is better not to use Canvas naked by using some basic packaging libraries of Canvas or wrapping the native API of Canvas by ourselves.

Excel editor

Spreadsheets have powerful editing capabilities and are ideal for low-code platforms. The implementation of a spreadsheet editor needs to deal with table data rendering, function support, data perspective and many other issues. Whether drawing a spreadsheet with Canvas or a normal DIV requires attention to the split-screen processing of large amounts of data.

Server engine

The process engine

Process engines can be built with BPM implementation ideas. BPMN2.0 is a set of general specifications used to build process engines in the industry, and we can refer to its ideas to design process engines.

Form the engine

The form engine corresponds to the previous form editor. The form engine parses DSL statements and Schema files to complete the mapping between the form Schema and the data store.

Formula parsing engine

This engine and the previous Excel editor is corresponding to the existence of various formulas in Eexcel, it is necessary to analyze the content of specific formulas in the background to query the data of the system or related systems, or to convert the formula into SQL statements to query the data in a library.

Permissions on the engine

The pages and data generated in the system often need permission configuration. The platform can solve this problem by implementing a general permission model, such as RBAC and ABAC.

Data analysis engine

A good low-code platform needs to be capable of not only creating applications, but also data analysis. This requires the platform to add dot-count data to the code and to measure application usage in either a quasi-real-time or asynchronous manner.

Data is stored

Both application developers and application users generate data on low-code platforms. When implementing a low-code platform, it is best to store application configuration data and application usage data separately. In this way, the functions of the platform are decoupled and other service management works such as capacity expansion and reduction are convenient for the system.

In addition to the above technologies, low-code platforms also need to ensure the robustness of generated application code, reasonable traffic control at peak hours of service traffic, and ensure the data security of applications.

Challenges and limitations of low code platforms

  1. Low code platforms are often brought online by model and business fit in model-oriented design.
  2. The ease of use and business flexibility of the platform are difficult to reconcile, and an overly simple design, while easy to use, can be difficult to overcome in complex scenarios. Too flexible a design that looks powerful will inevitably be difficult for business experts to learn.
  3. It is difficult for various low-code platforms to form unified standards for development and operation, resulting in learning costs for users to access different low-generation platforms.
  4. For highly complex business scenarios, low code platforms are not capable of implementation.

conclusion

This paper discusses the classification, development trend and common techniques of developing low code platform. There will be some internal development work on the low code platform, and we will learn the technical details of the low code platform later.

Invite attention to the public number: a row of weekly update technical articles, and we progress together.