Low-code implementation method based on domain-specific language
By introducing low-code implementation methods based on domain-specific languages in low-code technology, the shortcomings of low-code technology in functional customization, custom flexibility, etc. are solved, and efficient and easy-to-use application development is achieved to adapt to complex and specific business needs.
Patent Information
- Application Number
- CN202411797373.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-09
- Publication Date
- 2025-05-06
AI Technical Summary
Low-code technology has shortcomings in functional customization, custom flexibility, technology stack dependency, vendor lock-in, security and compliance, learning curve, performance issues and black box issues, limiting its application in complex and specific business demand scenarios.
Using a low-code implementation method based on domain-specific languages (DSL), we design DSL programming models, including data types, control structures, exception handling and input and output of nodes, and provide a visual development interface. We use code generators to generate high-quality code, supporting CI/CD processes and code review.
It improves the efficiency and maintainability of software development, lowers the development threshold, and allows non-professional developers to quickly build applications, adapt to specific field needs, and enhances the professionalism and practicality of applications.
Smart Images

Figure CN119938015A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of application development technology, and in particular, mainly to a low-code implementation method based on a domain-specific language. Background Art
[0002] Low-code technology refers to a method that can quickly develop applications through graphical user interfaces and other simplified tools without the need for traditional manual coding or with only a small amount of coding. This technology allows non-professional developers (business analysts, project managers, etc.) to participate in the application development process, thereby speeding up software development and reducing costs.
[0003] The current development status of low-code technology can be summarized as follows:
[0004] 1. Market growth: With the growth of the digital economy and the increasing demand for digital transformation of enterprises, the scale of the low-code market continues to expand. It is predicted that the global low-code development platform market has maintained a double-digit growth rate in recent years, and this trend is expected to continue.
[0005] 2. Enterprise adoption: More and more enterprises are adopting low-code platforms to support their business process automation and digital innovation. This is not limited to small and medium-sized enterprises, large enterprises are also seeking to use low-code solutions to improve efficiency and shorten time to market.
[0006] 3. Industry penetration: The application of low-code technology has spanned multiple industries, including but not limited to finance, manufacturing, retail, healthcare, etc. Companies in these industries use low-code to build customer relationship management (CRM) systems, internal operation management systems, mobile applications, etc.
[0007] 4. Technological innovation: Low-code vendors continue to launch new features and technologies, such as artificial intelligence (AI) integration, machine learning (ML) model deployment, natural language processing (NLP), etc., making low-code platforms smarter and more powerful.
[0008] 5. Ecosystem construction: An ecosystem is taking shape around the low-code platform, including a partner network, third-party components and services, a developer community, etc., providing users with richer resources and support.
[0009] 6. Standardization and normalization: As the market matures, standards and specifications in the low-code field have also begun to be gradually established, which helps to ensure compatibility and security between platforms, while also facilitating user migration and selection.
[0010] Although low-code technology brings the ability to quickly develop applications, it also has some shortcomings and limitations. Here are some of the main disadvantages:
[0011] 1. Functional limitations: Low-code platforms usually provide predefined functional components and templates, which may not meet certain specific or complex business needs. For applications that require high customization or special functions, low-code platforms may not be flexible enough.
[0012] 2. Limited customization flexibility: Although applications can be quickly built through a drag-and-drop interface, this simplified approach may be too constraining for developers who want to implement complex logic or unique designs and cannot be deeply customized to their wishes.
[0013] 3. Technology stack dependency: Using a low-code platform means relying on the technology and services provided by the platform to a certain extent. If the platform's technology is not updated in a timely manner or no longer supports a specific function, the applications built on the platform may be affected.
[0014] 4. Vendor lock-in: Once you choose a low-code platform and build a lot of business processes around it, the cost of switching to another platform may be very high. This means that companies need to be very cautious when choosing a platform and consider long-term development strategies.
[0015] 5. Security and compliance: Since low-code platforms are often hosted by third-party providers, data security and privacy protection become important considerations. In addition, ensuring that applications comply with industry standards and regulatory requirements is also a challenge.
[0016] 6. Learning curve: Although low-code platforms are designed to lower the technical threshold, there may still be a certain learning curve for people with no programming background at all.
[0017] 7. Performance issues: In application scenarios that process large amounts of data or have high performance requirements, low-code generated applications may not be able to achieve the same performance level as handwritten code.
[0018] 8. Black box problem: The internal operating mechanism of the low-code platform is often closed, which is like a "black box". When problems occur, it is difficult for developers to go deep into the bottom layer to debug and solve the problems. Summary of the invention
[0019] In view of the above shortcomings, the present invention provides a method for implementing low-code based on domain-specific languages, aiming to enable non-professional developers to quickly build applications by providing a unified syntax standard and a simplified development process. It provides a more concise and efficient way of expression, providing strong support for the implementation of low-code development. Specifically, it includes:
[0020] Obtain the business requirements of the target domain, determine the syntax and definition of the DSL, and use the syntax and definition to design the programming model of the DSL, including data types, control structures, exception handling, and node input and output;
[0021] Design a visual development interface and use the development interface to obtain DSL, specifically including: creating an application by dragging or configuring; defining the data model of the application through the development interface; using the development interface to write DSL code to implement the business logic of the application; and designing the user interface of the application through the development interface;
[0022] Convert the application into executable program code, generate high-quality code based on the definition of the DSL using a code generator; test the high-quality code on a low-code development platform and deploy it to a production environment;
[0023] The syntax and definition of DSL are optimized based on user feedback and changes in business requirements to further expand the functionality of the low-code development platform.
[0024] Furthermore, the programming model of the DSL uses the Unified Modeling Language UML to model the business process and to clarify key entities, relationships and operations.
[0025] Furthermore, the programming model of the DSL uses the B method in the formal method to verify the DSL to ensure correctness and consistency.
[0026] As a formal method based on set theory, B method is mainly used in the entire life cycle of software development, including requirements analysis, design, implementation and verification. Its core idea is to gradually refine high-level abstract specifications into specific implementation details through a series of step-by-step refinement processes.
[0027] Furthermore, the DSL programming model can perform metaprogramming according to business requirements during modeling.
[0028] Metaprogramming can define new data types and control structures in DSL, thus improving the flexibility of DSL.
[0029] Furthermore, the visual development interface provides predefined application templates and integrates a version control system for user management and rollback of application versions.
[0030] Furthermore, the generation of high-quality code also includes integrating the code review tool SonarQube, and supporting CI / CD processes to automate code testing.
[0031] According to a second aspect of the present invention, a computer program product is provided, on which one or more computer programs are stored. When the one or more computer programs are executed by a computer processor, the above method is implemented.
[0032] The above one or more technical solutions in the embodiments of the present application have at least one of the following technical effects:
[0033] 1. Efficient development
[0034] Low-code development solutions based on domain-specific languages (DSLs) have greatly improved the efficiency of software development. Developers can quickly build applications through a visual interface, reducing the tedious work of writing code. The customizability of DSLs makes development for specific fields more efficient and can quickly respond to changes in business needs.
[0035] The code generator automatically generates high-quality code based on the user's design and DSL definition, reducing the occurrence of human errors and improving the reliability and maintainability of the code.
[0036] 2. Lower the development threshold
[0037] Non-professional developers can use low-code development platforms to develop applications without having deep programming knowledge. The visual development interface and easy-to-understand DSL syntax make the development process more intuitive and easy to use, lowering the threshold for software development.
[0038] This helps business personnel within the enterprise participate in the software development process, better understand and meet business needs, and improve the targetedness and practicality of development.
[0039] 3. Enhance maintainability
[0040] DSL code is concise and easy to understand, making application maintenance easier. Developers can quickly locate problems and fix them, reducing maintenance costs.
[0041] Low-code development platforms typically provide version control and collaboration capabilities to facilitate code management and sharing among team members, further improving the maintainability of the application.
[0042] 4. Adapt to the needs of specific fields
[0043] DSL is a language customized for a specific field, which can better express the business logic and concepts of the field. This makes the developed applications more in line with the needs of the field and improves the professionalism and practicality of the applications.
[0044] As the business grows and changes, DSL can be expanded and optimized accordingly to adapt to changing domain requirements. BRIEF DESCRIPTION OF THE DRAWINGS
[0045] The accompanying drawings are included to provide a further understanding of the embodiments and are incorporated into and constitute a part of this specification. The accompanying drawings illustrate the embodiments and are used together with the description to explain the principles of the present invention. It will be easy to recognize other embodiments and many expected advantages of the embodiments because they become better understood by reference to the following detailed description. The elements of the drawings are not necessarily to scale with each other. The same reference numerals refer to corresponding similar parts.
[0046] Figure 1 A flow chart of a low-code implementation method based on a domain-specific language according to an embodiment of the present invention is shown.
[0047] Figure 2 A schematic diagram of a process for building a low-code development platform according to an embodiment of the present invention is shown;
[0048] Figure 3 A schematic diagram of a process of designing a programming model for a DSL according to an embodiment of the present invention is shown;
[0049] Figure 4 It is a structural diagram of a computer system suitable for implementing an electronic device of an embodiment of the present application. DETAILED DESCRIPTION
[0050] The present application is further described in detail below in conjunction with the accompanying drawings and embodiments. It is to be understood that the specific embodiments described herein are only used to explain the relevant invention, rather than to limit the invention. It is also necessary to explain that, for ease of description, only the parts related to the relevant invention are shown in the accompanying drawings.
[0051] It should be noted that, in the absence of conflict, the embodiments and features in the embodiments of the present application can be combined with each other. The present application will be described in detail below with reference to the accompanying drawings and in combination with the embodiments.
[0052] Figure 1 A flowchart of a low-code implementation method based on a domain-specific language according to an embodiment of the present invention is shown. Figure 1 As shown:
[0053] Obtain the business requirements of the target domain, determine the syntax and definition of the DSL, and use the syntax and definition to design the programming model of the DSL, including data types, control structures, exception handling, and node input and output;
[0054] Analyze the business requirements and characteristics of the target domain and determine the syntax and semantics of the DSL. For example, in the e-commerce field, you can define the syntax for describing entities such as products, orders, and users, as well as the methods for operating these entities.
[0055] like Figure 2 As shown, the modeling process of the DSL programming model is provided, and the DSL programming model is designed, including data types, control structures, node input and output, etc., to ensure that the DSL is easy to understand and use, and can meet the complex business logic of the target domain.
[0056] The programming model of the DSL adopts the Unified Modeling Language UML to model the business process, clarify the key entities, relationships and operations, and adopts the B method in the formal method to verify the DSL to ensure correctness and consistency.
[0057] At the same time, the DSL programming model can perform metaprogramming according to business needs during modeling, allowing new data types and control structures to be defined in the DSL to improve the flexibility of the DSL; in some business implementation examples, static type checking is introduced to ensure the type safety of the DSL code.
[0058] In this embodiment, a minimum set example is provided. The user age list is input and specific objects older than 12 years old are filtered out. The specific implementation code is as follows:
[0059]
[0060]
[0061]
[0062]
[0063]
[0064] Design a visual development interface and use the development interface to obtain DSL, specifically including: creating an application by dragging or configuring. The interface should provide a visual representation of DSL elements, such as entities, attributes, methods, etc., to facilitate user operations; defining the data model of the application through the development interface, including entities, relationships, attributes, etc. The data model should correspond to the data type in the DSL so that correct mapping can be performed when generating code; using the development interface to write DSL code to implement the business logic of the application, the interface should provide functions such as code editor, syntax prompts, and error checking to improve user development efficiency; designing the user interface of the application through the development interface, including page layout, component selection, style setting, etc. The interface should provide visual design tools so that users can quickly create a beautiful user interface;
[0065] The visual development interface provides predefined application templates and integrates a version control system for user management and rollback of application versions.
[0066] In this embodiment, the visual development interface specifically includes: interface layout, component library, drag-and-drop function, property panel, template library and version management, etc., among which, the intuitive interface layout includes menu bar, toolbar, workspace, etc.; the component library provides a rich component library, including data input components, logic processing components, UI components, etc. The drag-and-drop function allows users to drag components from the component library to the workspace, and connect and configure them; the property panel can set the properties of the component (such as name, type, default value, etc.); the template library provides predefined application templates to speed up development; version management: integrated version control system (such as Git) to facilitate user management and rollback of application versions.
[0067] Convert the application into executable program code, use a code generator to generate high-quality code according to the definition of DSL, and in some business embodiments, use a template engine such as Jinja2 or FreeMarker to generate code to ensure code consistency and maintainability; test the high-quality code on a low-code development platform and deploy it to a production environment;
[0068] Generating high-quality code also includes integrating the code review tool SonarQube, supporting CI / CD processes, and automating code testing.
[0069] like Figure 3 As shown, the development code generator converts the application created by the user on the low-code development platform into executable program code. The code generator should generate high-quality code based on the user's design and DSL definition to ensure the performance and maintainability of the application.
[0070] At the same time, it provides testing and deployment functions. Users can test applications on the low-code development platform and deploy them to the production environment. The platform should provide testing tools, deployment scripts, etc. to facilitate users to test and deploy.
[0071] The syntax and definition of DSL are optimized based on user feedback and changes in business requirements to further expand the functionality of the low-code development platform.
[0072] This method can continuously optimize the syntax and semantics of DSL in the future, and make improvements based on user feedback and changes in business requirements, ensuring that DSL always remains concise, efficient, and easy to use.
[0073] Expand the functionality of the low-code development platform, add new components, templates, function libraries, etc. to meet the growing needs of users.
[0074] Integration with other technologies, such as databases, cloud services, and artificial intelligence, improves the competitiveness of the low-code development platform. The database supports MySql, PostgreSQL, and MongoDB, providing a data access layer; cloud service integration supports mainstream cloud service providers, such as AWS, Azure, and GCP, providing cloud resource management functions; AI integration supports machine learning and deep learning applications. It also has API integration, supports RESTful API and GraphQL, and provides API management tools.
[0075] Provide training and support services to help users better use low-code development platforms and DSLs. Support can be provided through documents, video tutorials, online forums, etc.
[0076] The method of the present invention can realize unified management and calling of multiple databases, improve the efficiency of service construction and calling, and ensure data security and service stability; in terms of application prospects, it includes:
[0077] 1. Enterprise-level application development
[0078] In enterprises, there are a large number of business applications that need to be developed and maintained. Low-code development solutions based on DSL can help enterprises quickly build various management systems, business process automation tools, etc., and improve the operational efficiency of enterprises.
[0079] Enterprises can customize DSL according to their own business needs, develop applications that meet their specific needs, and enhance their competitiveness.
[0080] 2. Mobile Application Development
[0081] With the development of mobile Internet, the demand for mobile applications continues to grow. Low-code development platforms can help developers quickly build mobile applications and reduce development time and costs.
[0082] DSL can be customized according to the characteristics of mobile applications to provide better user experience and performance optimization.
[0083] 3. IoT application development
[0084] The IoT field involves a large number of device connections and data processing. Low-code development solutions based on DSL can help developers quickly build IoT applications and achieve device monitoring, management and data analysis.
[0085] DSL can be integrated with the IoT platform to provide a more convenient way of development and deployment.
[0086] 4. Education
[0087] In the field of education, low-code development platforms can be used as teaching tools to help students learn programming and software development. The visual development interface and easy-to-understand DSL syntax can stimulate students' interest in learning and improve teaching effectiveness.
[0088] Teachers can use low-code development platforms to quickly build teaching aids and course management systems to improve teaching efficiency.
[0089] 5. Individual developers and startups
[0090] For individual developers and startups, time and resources are very limited. Low-code development solutions based on DSL can help them quickly build applications, verify business ideas, and reduce development costs.
[0091] Low-code development platforms provide a wealth of components and templates, allowing developers to quickly build professional applications.
[0092] In summary, low-code development solutions based on domain-specific languages (DSLs) have broad application prospects. They can improve the efficiency of software development, lower the development threshold, enhance the maintainability of applications, and adapt to the needs of specific fields. With the continuous development of technology and the continuous promotion of applications, low-code development will become one of the important trends in software development.
[0093] Reference below Figure 4 , which shows a schematic diagram of the structure of a computer system 400 suitable for implementing an electronic device of an embodiment of the present application. Figure 4 The electronic device shown is merely an example and should not bring any limitation to the functions and scope of use of the embodiments of the present application.
[0094] like Figure 4 As shown, the computer system 400 includes a central processing unit (CPU) 401, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 402 or a program loaded from a storage part 408 into a random access memory (RAM) 403. In the RAM 403, various programs and data required for the operation of the system 400 are also stored. The CPU 401, the ROM 402, and the RAM 403 are connected to each other via a bus 404. An input / output (I / O) interface 405 is also connected to the bus 404.
[0095] The following components are connected to the I / O interface 405: an input section 406 including a keyboard, a mouse, etc.; an output section 407 including a liquid crystal display (LCD), etc. and a speaker, etc.; a storage section 408 including a hard disk, etc.; and a communication section 409 including a network interface card such as a LAN card, a modem, etc. The communication section 409 performs communication processing via a network such as the Internet. A drive 410 is also connected to the I / O interface 405 as needed. A removable medium 411, such as a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, etc., is installed on the drive 410 as needed, so that a computer program read therefrom is installed into the storage section 408 as needed.
[0096] In particular, according to an embodiment of the present disclosure, the process described above with reference to the flowchart can be implemented as a computer software program. For example, an embodiment of the present disclosure includes a computer program product, which includes a computer program carried on a computer-readable storage medium, and the computer program includes a program code for executing the method shown in the flowchart. In such an embodiment, the computer program can be downloaded and installed from the network through the communication part 409, and / or installed from the removable medium 411. When the computer program is executed by the central processing unit (CPU) 401, the above functions defined in the method of the present application are executed. It should be noted that the computer-readable storage medium of the present application can be a computer-readable signal medium or a computer-readable storage medium or any combination of the above two. The computer-readable storage medium can be, for example, - but not limited to - a system, device or device of electricity, magnetism, light, electromagnetic, infrared, or semiconductor, or any combination of the above. More specific examples of computer-readable storage media may include, but are not limited to, an electrical connection with one or more conductors, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. In the present application, a computer-readable storage medium may be any tangible medium containing or storing a program that can be used by or in conjunction with an instruction execution system, device, or device. In the present application, a computer-readable signal medium may include a data signal propagated in a baseband or as part of a carrier wave, in which a computer-readable program code is carried. Such propagated data signals may take a variety of forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the above. A computer-readable signal medium may also be any computer-readable storage medium other than a computer-readable storage medium, which may send, propagate, or transmit a program for use by or in conjunction with an instruction execution system, device, or device. The program code contained on the computer-readable storage medium may be transmitted using any appropriate medium, including but not limited to: wireless, wireline, optical cable, RF, etc., or any suitable combination of the foregoing.
[0097] Computer program code for performing the operations of the present application may be written in one or more programming languages or a combination thereof, including object-oriented programming languages, such as Java, Smalltalk, C++, and conventional procedural programming languages, such as "C" or similar programming languages. The program code may be executed entirely on the user's computer, partially on the user's computer, as a separate software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving a remote computer, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., via the Internet using an Internet service provider).
[0098] The flow chart and block diagram in the accompanying drawings illustrate the possible architecture, function and operation of the system, method and computer program product according to various embodiments of the present application. In this regard, each square box in the flow chart or block diagram can represent a module, a program segment or a part of a code, and the module, the program segment or a part of the code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the square box can also occur in a sequence different from that marked in the accompanying drawings. For example, two square boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each square box in the block diagram and / or flow chart, and the combination of the square boxes in the block diagram and / or flow chart can be implemented with a dedicated hardware-based system that performs a specified function or operation, or can be implemented with a combination of dedicated hardware and computer instructions.
[0099] The modules involved in the embodiments of the present application may be implemented by software or by hardware.
[0100] As another aspect, the present application also provides a computer-readable storage medium, which may be included in the electronic device described in the above embodiment; or it may exist independently without being assembled into the electronic device. The above computer-readable storage medium carries one or more programs. When the above one or more programs are executed by the electronic device, the electronic device: obtains the business requirements of the target field, determines the syntax and definition of DSL, and uses the syntax and definition to design the programming model of DSL, including data types, control structures, exception handling, and input and output of nodes; designs a visual development interface, and uses the development interface to obtain DSL, specifically including: creating an application by dragging or configuring; defining the data model of the application through the development interface; using the development interface to write DSL code to implement the business logic of the application; designing the user interface of the application through the development interface; converting the application into executable program code, and using a code generator to generate high-quality code according to the definition of DSL; testing the high-quality code on a low-code development platform and deploying it to a production environment; optimizing the syntax and definition of DSL according to user feedback and changes in business requirements, and further expanding the functions of the low-code development platform.
[0101] The above description is only a preferred embodiment of the present application and an explanation of the technical principles used. Those skilled in the art should understand that the scope of the invention involved in the present application is not limited to the technical solution formed by a specific combination of the above technical features, but should also cover other technical solutions formed by any combination of the above technical features or their equivalent features without departing from the above invention concept. For example, the above features are replaced with the technical features with similar functions disclosed in this application (but not limited to) by each other to form a technical solution.
Claims
1. A low-code implementation method based on a domain-specific language, characterized in that: include: Obtain the business requirements of the target domain, determine the syntax and definition of the DSL, and use the syntax and definition to design the programming model of the DSL, including data types, control structures, exception handling, and node input and output; Design a visual development interface and use the development interface to obtain DSL, specifically including: creating an application by dragging or configuring; defining the data model of the application through the development interface; using the development interface to write DSL code to implement the business logic of the application; and designing the user interface of the application through the development interface; Convert the application into executable program code, generate high-quality code based on the definition of the DSL using a code generator; test the high-quality code on a low-code development platform and deploy it to a production environment; The syntax and definition of DSL are optimized based on user feedback and changes in business requirements to further expand the functionality of the low-code development platform.
2. The low-code implementation method according to claim 1, characterized in that: The programming model of the DSL uses the Unified Modeling Language UML to model the business process and to clarify key entities, relationships and operations.
3. The low-code implementation method according to claim 2, characterized in that: The programming model of the DSL adopts the B method in the formal method to verify the DSL to ensure correctness and consistency.
4. The low-code implementation method according to claim 2, characterized in that: The programming model of the DSL can perform metaprogramming according to business requirements during modeling.
5. The low-code implementation method according to claim 1, characterized in that: The visual development interface provides predefined application templates and integrates a version control system for user management and rollback of application versions.
6. The low-code implementation method according to claim 1, characterized in that: Generating high-quality code also includes integrating the code review tool SonarQube, supporting CI / CD processes, and automating code testing.
7. A computer program product, characterized in that A computer program is stored thereon, and when the computer program is executed by a processor, the method according to any one of claims 1 to 6 is implemented.
8. A computing system, characterized in that: The method comprises a processor and a memory, wherein the processor is configured to execute the method according to any one of claims 1 to 6.