CN115904382A - Code development method, system, client, server, device and storage medium - Google Patents

Code development method, system, client, server, device and storage medium Download PDF

Info

Publication number
CN115904382A
CN115904382A CN202111162800.XA CN202111162800A CN115904382A CN 115904382 A CN115904382 A CN 115904382A CN 202111162800 A CN202111162800 A CN 202111162800A CN 115904382 A CN115904382 A CN 115904382A
Authority
CN
China
Prior art keywords
user
setting result
display area
code
setting
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111162800.XA
Other languages
Chinese (zh)
Inventor
黄乾富
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN202111162800.XA priority Critical patent/CN115904382A/en
Publication of CN115904382A publication Critical patent/CN115904382A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • User Interface Of Digital Computer (AREA)

Abstract

The application relates to the technical field of big data, and discloses a code development method, a system, a client, a server, equipment and a storage medium, which are applied to the client, wherein the code development method comprises the following steps: acquiring a table name and corresponding field information of a data table in a database to be developed; generating a corresponding visual object according to the table name and the field information, and displaying the visual object on a first display area of a visual interface, so that a user can set the visual object in a second display area of the visual interface according to actual requirements; and acquiring a setting result obtained by setting the visual object in the second display area by the user, wherein the setting result is used for generating the executable code. The purposes of reducing development threshold, improving development efficiency and reducing development cost are achieved.

Description

Code development method, system, client, server, device and storage medium
Technical Field
The embodiment of the application relates to the technical field of big data, in particular to a code development method, a system, a client, a server, equipment and a storage medium.
Background
In the big data era, people have realized that data is ubiquitous, and scenes in which big data development is required to be applied to realize functions of data analysis, data mining and the like are more and more extensive no matter in the collective aspect, such as enterprises and the like, or in the aspect of personal work and life. At present, big data code development is carried out, generally, business personnel carry out investigation and analysis on user requirements to form a requirement file, then the requirement file is delivered to development personnel for code development, and related functions are realized to meet the user requirements.
However, the requirement document may not be able to accurately and comprehensively describe the result of the survey and analysis of the user requirement by the service personnel, and the developer needs to spend time understanding the analysis requirement document, which is more time consuming than the direct development by the service personnel who propose the user requirement, thereby resulting in the problems of slow requirement response, long development period, high delivery cost, low code reusability, and more occupied human resources. If the business personnel directly develop the data, even aiming at a simple data analysis requirement, the business personnel can hardly realize the analysis function through code development because the code development requires professional computer skills which are not possessed by common business personnel and programming capability related to big data.
Therefore, a code development method is needed to prevent the code development process based on big data from being affected by the professional degree of programming, and personnel with basic programming knowledge can develop big data codes according to actual needs, so that the development threshold is reduced, the development efficiency is improved, and the development cost is saved.
Disclosure of Invention
The embodiment of the application mainly aims to provide a code development method, a system, a client, a server, equipment and a storage medium, and aims to achieve the purpose that a code development process based on big data is not affected by the professional degree of programming, and personnel with basic programming knowledge can develop big data codes according to actual requirements, so that the development threshold is reduced, the development efficiency is improved, and the development cost is reduced.
In order to achieve the above object, an embodiment of the present application provides a code development method, which is applied to a client, and includes: acquiring a table name and corresponding field information of a data table in a database to be developed; generating a corresponding visual object according to the table name and the field information, and displaying the visual object on a first display area of a visual interface, so that the user can set the visual object in a second display area of the visual interface according to actual requirements; and acquiring a setting result obtained by setting the visual object in the second display area by the user, wherein the setting result is used for generating an executable code.
In order to achieve the above object, an embodiment of the present application further provides a code development method, which is applied to a server and includes: if the setting result does not comprise at least two visual algorithms, syntax analysis is carried out on the setting result to obtain syntax units and syntax trees are generated, and one syntax unit corresponds to one node in the syntax trees; editing the grammar unit according to the grammar rules of the programming language or the predefined programming language indicated in the setting result to generate a plurality of sub-sentences; splicing and combining the sub-sentences to obtain executable codes; the executable code is executed.
In order to achieve the above object, an embodiment of the present application further provides a client, including: the first acquisition module is used for acquiring the table name and the corresponding field information of the data table in the database to be developed; the generating module is used for generating a corresponding visual object according to the table name and the field information and displaying the visual object on a first display area of a visual interface, so that the user can set the visual object in a second display area of the visual interface according to actual requirements; a second obtaining module, configured to obtain a setting result obtained by setting the visualization object in the second display area by the user, where the setting result is used to generate the executable code.
In order to achieve the above object, an embodiment of the present application further provides a server, including: the receiving module is used for receiving a setting result sent by a client, wherein the setting result is obtained by setting a visual object obtained by a data table in a database on a visual interface of the client by a user; the compiling module is used for carrying out grammar analysis on the setting result to obtain grammar units and generating grammar trees if the setting result does not comprise at least two visual algorithms, and one grammar unit corresponds to one node in the grammar trees; editing the grammar unit according to the grammar rules of the programming language or the predefined programming language indicated in the setting result to generate a plurality of sub-sentences; splicing and combining the sub-sentences to obtain executable codes; and the execution module is used for executing the executable code.
In order to achieve the above object, an embodiment of the present application further provides a code development system, which includes the client and the server as described above.
In order to achieve the above object, an embodiment of the present application further provides an electronic device, where the electronic device includes: at least one processor; and a memory communicatively coupled to the at least one processor; wherein the memory stores instructions executable by the at least one processor to enable the at least one processor to perform the code development method as described above.
To achieve the above object, an embodiment of the present application further provides a computer-readable storage medium storing a computer program, which when executed by a processor implements the code development method as described above.
According to the code development method provided by the embodiment of the application, the table names and the corresponding field information of the data tables in the database to be developed are obtained to generate the visual objects capable of accurately reflecting the information of the database to be developed, the generated visual objects are displayed on the first display area in the visual interface, so that a user can know which visual objects are in the first display area and set the visual objects in the second display area of the visual interface according to requirements, then a client side obtains the setting results of the visual objects in the second display area, the setting results are used for generating executable codes, accurate operation of the data tables in the database to be developed is achieved, namely, the user only needs to set the visual objects at the client side, namely, basic logic and specific operation objects are described, the setting results are obtained and used for generating the executable codes, the original manual code writing is replaced, the setting of the visual objects does not need complex and professional programming skills, the code development can be completed on the basis of knowing some basic knowledge, the code development threshold is reduced, the development process is not dependent on professional developers, the business personnel who propose business requirements can directly develop the code, the development efficiency is improved, and the development cost is saved. In addition, because the code is not required to be written manually, the problems of code format errors, more repeated redundant contents and the like in the process of writing the code manually can be avoided, and the code development quality can be improved.
Drawings
One or more embodiments are illustrated by the corresponding figures in the drawings, which are not meant to be limiting.
FIG. 1 is a flowchart of a code development method provided by an embodiment of the present application;
FIG. 2 is a flowchart of a method for code development that includes the step of receiving a user instruction according to another embodiment of the present application;
FIG. 3 is a flowchart of a code development method including the step of determining a data table to be operated according to another embodiment of the present application;
FIG. 4 is a flowchart of a code development method including a step of obtaining a setting result after debugging according to another embodiment of the present application;
FIG. 5 is a flow chart of a method of code development provided by another embodiment of the present application including the step of determining at least two visualization algorithms;
FIG. 6 is a flowchart of a code development method including the step of detecting whether a received setting result contains at least two visualization algorithms according to another embodiment of the present application;
FIG. 7 is a diagram illustrating a syntax tree traversal order involved in a code development method according to another embodiment of the present application;
FIG. 8 is a diagram illustrating a syntax tree format involved in a method for providing code development according to another embodiment of the present application;
FIG. 9 is a flowchart of a method for code development including a return execution result step according to another embodiment of the present application;
fig. 10 is a schematic structural diagram of a client according to another embodiment of the present application;
fig. 11 is a schematic structural diagram of a server according to another embodiment of the present application;
FIG. 12 is a block diagram of a code development system according to another embodiment of the present application;
fig. 13 is a schematic structural diagram of an electronic device according to another embodiment of the present application.
Detailed Description
As can be seen from the background art, the application demand for big data is increasing in an actual scene, and the code development based on big data is more and more important, but the code development usually needs business personnel to provide user demands, and the development personnel develop according to the user demands, and therefore, the demand response is slow, the development period is long, the interaction cost is high, the code reusability is low, if the business personnel program according to the development demands to solve the above problems, the business personnel can hardly complete the programming according to the demands because the business personnel do not have professional coding capability. Therefore, a code development method is needed to prevent the code development process based on big data from being affected by the professional degree of programming, and personnel with basic programming knowledge can develop big data codes according to actual needs, so that the development threshold is reduced, the development efficiency is improved, and the development cost is saved.
The embodiment of the application provides a code development method, which is applied to a client and comprises the following steps: acquiring a table name and corresponding field information of a data table in a database to be developed; generating a corresponding visual object according to the table name and the field information, and displaying the visual object on a first display area of a visual interface, so that the user can set the visual object in a second display area of the visual interface according to actual requirements; and acquiring a setting result obtained by setting the visual object in the second display area by the user, wherein the setting result is used for generating an executable code.
According to the code development method provided by the embodiment of the application, the table names and the corresponding field information of the data tables in the database to be developed are obtained, the visual objects capable of accurately reflecting the information of the database to be developed are generated, the generated visual objects are displayed on the first display area in the visual interface, a user can know which visual objects are in the first display area, the visual objects are set in the second display area of the visual interface according to requirements, then the client side obtains the setting results of the user on the visual objects in the second display area, the setting results are used for generating executable codes, accurate operation of the data tables in the database to be developed is achieved, namely, the user only needs to set the visual objects at the client side, describe basic logic and operation objects, the setting results are obtained and used for generating the executable codes, the original manual code writing is replaced, the setting of the visual objects does not need complex and professional programming skills, the code development can be completed on the basis of knowing some basic knowledge, the code development threshold is reduced, the development process is independent of professional developers, the business personnel who can directly develop the business requirements, the code development efficiency is improved, and the development cost is saved. In addition, because the code is not required to be written manually, the problems of code format errors, more repeated redundant contents and the like in the process of manually writing the code can be avoided, and the code development quality can be improved.
To make the objects, technical solutions and advantages of the embodiments of the present application clearer, the embodiments of the present application will be described in detail below with reference to the accompanying drawings. However, it will be appreciated by those of ordinary skill in the art that in the examples of the present application, numerous technical details are set forth in order to provide a better understanding of the present application. However, the technical solution claimed in the present application can be implemented without these technical details and various changes and modifications based on the following embodiments. The following embodiments are divided for convenience of description, and should not constitute any limitation to the specific implementation manner of the present application, and the embodiments may be mutually incorporated and referred to without contradiction.
In some embodiments, the code development method is applied to a client, and the client may be various terminals capable of accessing to a browser, such as a mobile phone, a computer, and the like, and referring to fig. 1, the code development method includes:
step 101, obtaining a table name and corresponding field information of a data table in a database to be developed.
Specifically, after the database to be developed is determined, table names and field information of data tables in the database to be developed are read, wherein the field information comprises field related information such as field names and field types.
It is worth mentioning that the client automatically reads the table names and the field information of the database in the database, manual participation is not needed, the efficiency is higher, the information acquisition is more comprehensive, the waste of human resources is avoided, and errors possibly caused by manual completion are also avoided.
It should be noted that the database to be developed may be a database designated by the user, or may be a database default for the client. When the database to be developed is designated by the user, as shown in fig. 2, in some embodiments, before step 101, the code development method further includes:
and step 104, receiving a data source configuration instruction issued by a user, wherein the data source configuration instruction carries database position information.
Specifically, when a user needs to perform code development, the user inputs database location information to the client, or selects from selectable databases provided by the client, so that the front end generates and receives a data source configuration instruction carrying the database location information, and the client makes clear which databases the user performs code development based on.
It should be noted that the database may be a personal database, or may be a public database, such as a database of social network chat information, an ACCESS database, an MSSQL database, and the like, which is created by a user on a personal device and used for storing the social network chat information. The database location information may be a database address.
It should be noted that the database location information may be location information of one database, or may be location information of multiple databases, and when the database location information is location information of multiple databases, operations such as data analysis and processing can also be performed across databases.
In one example, a user opens a certain browser and provides a client page for code development, and issues a data source configuration instruction to the client by clicking, selecting and inputting database position information and the like in the page, and the client receives the data source configuration instruction issued by the user by reading the user operation.
And 105, determining a database to be developed according to the database position information.
Specifically, the client can access the corresponding database through the location information of the database, that is, determine the database to be developed.
And 102, generating a corresponding visual object according to the table name and the field information, and displaying the visual object on a first display area of the visual interface, so that a user can set the visual object in a second display area of the visual interface according to actual requirements.
In this embodiment, the visualized object is a result obtained by visualizing the table name, the field information, and related information thereof, such as a field operation mode, a data table association mode, and the like; the visual interface is an interface provided by the client and used for interaction of a user, and the first display area is an area used for displaying visual objects, and can be a fixed area or a variable area.
It should be noted that, in this embodiment, the specific position of the first display area in the visual interface and the area size of the first display area are not limited, the first display area may be located at the left side, the lower side, the middle of the visual interface, and the like, and may occupy 1/2, 1/3, and the like of the total area of the visual interface, which is not described herein any more.
In some embodiments, one or a combination of the following objects is generated as the currently generated visualization object according to the table name and the field information: and then, displaying the generated visual object in a first display area for a user to know information such as the data table, the fields, the association mode and the like in the database, thereby setting the visual object according to actual requirements.
Specifically, a data table list is generated according to the table names, and elements in the list are the table names; and/or, generating a field list according to the field information, wherein elements in the field list can be field names or a combination of the field names and field types, and the like; and/or generating an operation mode list, wherein the operation mode list comprises four operations of fields, field splicing and the like; generating programming Language types including indicating Structured Query Language (SQL), elastic Distributed data sets (RDD), python, shell, AIE, etc.; and generating a data table association mode comprising inner association, left association, right association, full association and the like.
Further, for convenience of understanding and use of the user, the visualization object may carry explanatory content when displayed in the first display area or use an easy-to-understand graphic as the visualization object, such as displaying a "field list" above the displayed field list at the same time; displaying a clicked and dragged schematic icon above the displayed field list; displaying click to drag new on the data table list; the data tables are displayed in various association modes by using icons in a set form, such as filling a color deepening part at the middle overlapping part of two light-color filled circular patterns to represent inner association, filling a color deepening part at the left side of the light-color filled circular patterns with the dark-color filled circular patterns at the right side and the middle overlapping part of the two dark-color filled circular patterns to represent right association, filling a color deepening part at the right side of the light-color filled circular patterns with the dark-color filled circular patterns at the left side and the middle overlapping part of the two dark-color filled circular patterns to represent left association, and the like. In addition, the above visualization objects may be combined, for example, the field list is used as a child object of the data table list, so that when a user selects a data table in the data table list, the field list is displayed in a pop-up box. Of course, the above description is only a specific example, and other forms are also possible, and are not described in detail here.
It is worth mentioning that a corresponding visual object is generated aiming at the operation between the data table and the field, so that after the user performs logic setting on the visual object, the code for operating the data table is obtained, the code development is completed, and the detailed visual object is provided, so that more accurate and fine operation on the data table can be realized, a more accurate detailed function is provided for the user, and particularly, a plurality of specific and definite association modes are provided.
And 103, acquiring a setting result obtained by setting the visual object in the second display area by the user, wherein the setting result is used for generating an executable code.
Specifically, the first display area is used for displaying the visual object, the second display area is used for displaying the setting of the user on the visual object, the user can set the visual object in the second display area in a clicking, selecting, dragging and other modes, and relevant parameters and the like are set, so that the client can read the setting result of the user on the visual object in the second display area. It can be understood that after the setting result is obtained, under the condition that the client supports the conversion of the setting result into the code, the client may then execute the step of generating the executable code according to the setting result; when the client does not support the conversion of the setting result into the code, the client needs to cooperate with other devices capable of supporting the conversion of the setting result into the code, and sends the setting result to other devices for the other devices to convert the setting result into the code.
In this embodiment, the first display area and the second display area may be fixed areas or variable areas in the visual interface. When the area is a fixed area, the area may be preset, for example, when a user uses the client to perform code development, the client directly displays a default partition of the visual interface, and when the area is a variable area, the default partition may be selected by the user or the client may be in accordance with the requirements of the visual interface and the user programming, for example, by performing a frame selection on certain areas of the visual interface to form a first display area, a second display area, and the like. In addition, it is understood that the above steps relate to a first display area for presenting the visualization object and a first display area for presenting the result of the setting of the visualization object by the user, but this does not mean that the visualization interface is only divided into the first display area and the second display area, and the details are not repeated here.
It should be further noted that the visual interface provided by the client and the result displayed thereon can be implemented by front-end technologies such as hypertext Markup Language (HTML), cascading Style Sheets (CSSs), javaScript, and the like.
Further, to help those skilled in the art understand the code development method provided in the embodiment of the present application, a scenario in which the visualization object includes a data table list, a data table association manner, a field list, an operation manner list, and a programming language type at the same time is described as an example below, and with reference to fig. 3, step 103 in the code development method includes:
and step 1031, acquiring a plurality of data tables to be operated, which are selected from the data table list in the second display area by the user.
Specifically, a data table list is displayed in the first display area, a user selects and determines a plurality of data tables as data tables to be operated, the data tables to be operated are placed in the second display area through operations such as dragging, and the client reads the results of the user.
In some examples, the element in the data table list is a data table name, the data table list is displayed at the upper left of the visual interface and is a drop-down box, the second display area is the middle of the visual interface, the user clicks the data table list name on the left side of the visual interface through the drop-down list to realize the selection operation on a certain data table, the data table is dragged to the middle of the visual interface after being selected, and the operation is repeated until all the targeted data tables are placed in the middle of the visual interface; or after the data table is selected and dragged to the middle of the visual interface, the operations such as field selection, field calculation and the like are firstly completed on the data table, and then the step of clicking the name of the data table list is returned to repeat the operation until all the data tables serving as the targets are simply set such as field selection, field calculation and the like.
And step 1032, acquiring the operation performed by the user on the determined output field, input field and data table to be operated from the field list and the operation mode list in the second display area.
Specifically, a plurality of fields selected by a user from a field list of a data table to be operated are obtained, an output field and an input field are obtained respectively, fields and operation symbols checked by the user from the field list and an operation mode list are obtained, operation expressions are generated as operations performed on the data table to be operated, namely in a second display area, the user selects the fields from the field list as the input fields and the output fields respectively, the fields participating in operation are required to be selected from the field list and form the operation expressions together with a desired operation mode selected from the operation mode list, and a client reads the input fields, the output fields and the operation expressions, wherein the field list can be a radio box or a check box so that a plurality of fields can be checked simultaneously.
In some examples, the client automatically pops up a field list near the data table to be operated in the second display area by selecting the data table to be operated which is already placed in the second display area and clicking the field list in the first display area, then the user clicks and selects a certain field or certain fields in the field list as output fields or input fields, and the client reads the operation result of the user; when a user has a field operation requirement, clicking a data table to be operated which is already placed in a second display area, establishing a relation between the field list and the data table when the client displays the field list, when the client reads the click operation of the user, displaying an operation setting frame in the second display area, wherein a plurality of field lists displayed in a drop-down frame form exist in the setting frame from left to right, an operation mode list displayed in a drop-down frame form exists between every two lists, the user realizes the setting of the field operation through the drop-down list and the selected operation, and the client reads the setting result of the field operation. Of course, the operation setting box may include an addition option, an addition field list, and an operation mode list, so as to extend the expression, for example, extend the expression a + B to a + B + C.
And 1033, acquiring the association mode and the association field among the data tables to be operated, which are determined by the user from the data table association mode and the field list in the second display area.
Specifically, a plurality of data table association modes are displayed in a first display area of the visualization interface, a user determines one of the data table association modes displayed in the first display area and establishes an association between corresponding data tables in a second display area by operating the data tables, and since the association between the data tables is specifically an association mode between fields, it is also necessary to select fields having an association relationship between the data tables in order to provide a more accurate association mode, that is, to select an association field from a field list and establish a corresponding association relationship.
At step 1034, the programming language determined by the user from the programming language types in the second display area is obtained.
Specifically, a plurality of programming languages are displayed in a first display area of the visual interface, and a user determines the programming languages for other visual objects in a second display area by clicking a selected mode, so that the service end compiles a setting result into the selected programming languages, and the requirements of the user are met better.
And 1035, taking the table name, the input field, the output field, the operation, the association mode, the association field and the programming language of the data table to be operated as a setting result.
It should be noted that, in other embodiments, there may be a change in the execution sequence of the above steps 1031 to 1035, for example, step 1033 may be executed after step 1034 and before step 1035, or step 1034 may be executed before step 1031; alternatively, in other embodiments, there may be cases in which some of steps 1031-1035 do not need to be performed, such as step 1034 does not need to be performed by default when SQL is used as the programming language, or step 1033 does not need to be performed when the respective data tables are operated internally and are not associated with each other, etc.; alternatively, in other embodiments, other steps are further included between steps 1031 to 1035, for example, the association condition may be manually set before the association field is set.
It should be further noted that, although the above descriptions of steps 1031 to steps 1035 are relatively independent, in fact, in some cases, steps 1031 to step 10435 may also establish a very strong association relationship to form a set of standard processes, for example, a certain user drags a required data table from a data table list in the first display area to the design canvas on the right side, that is, in the second display area, the client reads data table information in the second display area and transmits the data table information to the server, and the server automatically generates a code of a sub query statement; clicking and selecting the data table on the second display area, checking fields needing to be output in the table, transmitting field information to the server by the client, and automatically adding the fields checked by the user to the query clause by the server; setting query conditions, grouping fields, aggregation fields and computational expressions of each field in a list box below a second display area, and after a client reads the information and transmits the information to a server, the server adds corresponding field computational expressions to the query clauses and generates corresponding clauses, for example: a WHERE clause, a GROUPBY clause and a HAVING clause programmed by SQL; and then dragging another table to be associated to an algorithm design canvas from a data table list in the first display area, completing the setting of the data table according to the steps, then selecting one table by using a cursor in the second display area, dragging the cursor to the other table to represent the association of the two tables, automatically popping up a dialog box on a page at the moment, providing a user for selecting an association mode, an association field and an association condition, automatically generating a new result table after the setting is completed, further setting new and other related information of the field of the new table, and automatically generating a new statement by a server end based on the association of the two tables, and further continuously associating other data tables until the requirements of the user are met.
Further, the user also needs to debug the development result during code development, so in some embodiments, the method further includes a step of adjusting the setting result according to the execution result after the server returns the execution result, as shown in fig. 4, and after step 103, the method for code development further includes:
and step 106, acquiring an execution result of the executable code.
And 107, displaying the execution result on a visual interface for a user to debug the setting result.
In this embodiment, a display area of the execution result on the visualization interface is not limited.
Step 108, detecting whether the setting result meets the expected requirement of the user, if so, executing step 109, and if not, executing step 110.
Specifically, the user determines whether an expected result is achieved by analyzing an execution result displayed on the visual interface, and then performs an operation on the visual interface autonomously, such as saving a setting result corresponding to the execution result, or the visual interface displays a pop-up box on the visual interface after a preset time, such as 10 minutes after the execution result is displayed, so that the user can confirm whether the error is correct or not. And once the client detects the operation, the client determines that the setting result meets the expected requirement of the user, otherwise, the client determines that the expected requirement of the user is not met.
And step 109, taking the setting result as a visualization algorithm and storing the visualization algorithm in an algorithm list.
Specifically, one setting result corresponds to one visual algorithm, if the current setting result is the first setting result meeting the expected requirement and completed by the user, an algorithm list is automatically generated and the algorithm name is saved in the generated algorithm list, and if the current setting result is not the first setting result meeting the expected requirement and completed by the user, the algorithm name is saved behind the last saved algorithm name.
It should be noted that, the algorithm name of the visualization algorithm may be stored in the algorithm list, so that when the user needs to store the visualization algorithm, the visualization interface prompts the user to input the algorithm name or automatically name the algorithm name according to the preset rule, so that when the client stores the visualization algorithm, the client also stores the algorithm name in the preset algorithm list,
it should be noted that the algorithm in this embodiment actually refers to a data query, and this data query may include multiple sub-queries in-line, one or more input tables, and finally output a result table. When the server generates the code according to the algorithm and executes the code, the code becomes a basic scheduling unit, and can also be regarded as a task.
And step 110, acquiring a setting result of the user after debugging in the second display area.
Specifically, when the setting result does not meet the expected requirement of the user, the setting result cannot be directly saved, the user is also required to perform analysis according to the execution result, find out the problem in the setting result and adjust the setting result in the second display area, and after the user completes adjustment, the adjusted setting result is obtained again.
Further, in an actual scenario, in order to meet the user requirement, it may be necessary to write a plurality of code files with different levels and different dimensions, and then combine the code files according to a certain framework, so in some embodiments, as shown in fig. 5, the visualization object further includes a stored visualization algorithm, and step 103 in the code development method includes:
at step 1036, at least two visualization algorithms selected by the user from the algorithm list are determined.
Specifically, the user selects and drags a needed visualization algorithm from the algorithm list to place the visualization algorithm in the second display area, and the client reads the algorithm information placed in the second display area by the user.
It should be noted that the visualization algorithm in the present embodiment is confirmed to meet the user's expected needs and saved in the algorithm list.
Step 1037, obtaining a result of the user arranging the at least two visualization algorithms in the second display area as a setting result, where the setting result includes the at least two visualization algorithms, a logical connection relationship between the visualization algorithms, and an execution configuration parameter of the visualization algorithms.
Specifically, a user places at least two visualization algorithms in a second display area, and then sets the at least two visualization algorithms, wherein the setting mode may be that an input endpoint is set on an icon of one visualization algorithm a, an output endpoint is set on an icon of another visualization algorithm B, and a line is connected between the input endpoint and the output endpoint, so that the output of the visualization algorithm B is used as the input of the visualization algorithm a, and the purpose of associating the two visualization algorithms is achieved; meanwhile, different visual algorithms should have parameters required by the execution algorithms such as respective life cycles, storage durations and the like, parameters such as data life cycle management and the like for setting priorities of tasks, occupied resources, data storage formats, data storage durations and the like by a user can be provided in a pull-down list and input box mode, and related parameters can be input by the user in a preset area of a visual interface and serve as related parameters configured when a bottom compiling platform executes codes; and then after the user finishes setting, the client reads the input and output relation and the corresponding visual algorithm which are established between the input endpoint and the output endpoint of the algorithm icon by the user through the connecting line as a setting result.
It is worth mentioning that a combination function of a plurality of algorithms is provided, so that development and debugging can be performed hierarchically and step by step according to requirements, and the method can be applied to a scene in which a plurality of developers cooperate to complete code development, is more suitable for an actual scene, and can also complete debugging more quickly especially when a large number of codes are needed to realize related functions.
It should be noted that the visualization algorithms are regarded as nodes in the topological graph, and the logical connection relationship between the visualization algorithms is regarded as an edge in the topological graph, so that the topological graph formed by setting the algorithms is a directed acyclic graph.
An embodiment of the present application further provides a code development method, which is applied to a server, such as a device deployed with a server, and as shown in fig. 6, the code development method includes:
step 601, receiving a setting result sent by the client, where the setting result is obtained by setting a visual object obtained from a data table in the database on a visual interface of the client by a user.
Specifically, a plurality of interfaces are preset between the server and the client for communication, after a user sets a visual object obtained from a data table in a database on a visual interface of the client, the client reads a setting result of the user and sends the setting result to the server through the predefined interface, and then the server receives the setting result to convert the setting result into a code.
More specifically, the client converts the user setting result read from the second display area into a predefined interface field, such as a JSON Object Notation (JSON) form, and transmits the predefined interface field to the client and the server for two-way communication, and then the server receives the setting result through the corresponding interface, so as to automatically generate a corresponding code according to the setting result in the future, obtain the code, and implement code development.
It should be noted that, in this embodiment, the whole code development process is completed by the client and the server in a matching manner, at this time, the steps executed on the client are usually implemented by the front-end technology, and the setting result converted by the server into the code is usually implemented by the back-end technology. At the moment, the code conversion process which is complex in realization and large in workload is transferred to the server, the code conversion can be rapidly completed by utilizing excellent storage and running capabilities of the back end, and the front end only needs to perform light-weight calculation and processing, so that the requirement on the front end is reduced, and the user requirements are met better.
Step 602, detecting whether the setting result includes at least two visualization algorithms, if not, executing step 603, and if so, executing step 607.
Step 603, parsing the setting result to obtain syntax units and generating syntax trees, wherein one syntax unit corresponds to one node in the syntax trees.
Specifically, when the setting result does not include at least two visualization algorithms, it indicates that the setting result is an unexecuted setting result sent by the client to the server, and at this time, a relevant code needs to be generated first, that is, the setting result is parsed and converted, and then stored into a corresponding structural body, and then each storage unit in the structural body is traversed, and a syntax key word matching the syntax key word is identified, and corresponding content is extracted and stored into the corresponding structural body according to a syntax tree.
In some examples, the setting result sent by the server is in a JSON format, and then the setting result in the JSON format is extracted by using the following server data structure key information and stored as a structural body according to a certain format, where the server data structure key information is shown in the following table:
name (R) Types of Description of the invention
queryType Query Query type identification
algorithmIndex String Algorithm indexing
inputTable InputTable Corresponding input table
outputTable Table Correspond toOutput table of
relations List[Relation] Relationships between input forms
outLimit String The output of the power supply is limited,
parentQuery String parent query name of current query
region String Partition information
queryName String Current query name
distinct Boolean Whether to remove weight
…… …… ……
Step 604, editing the grammar unit according to the grammar rules of the programming language or the predefined programming language indicated in the setting result, and generating a plurality of sub-sentences.
Specifically, if the setting result contains information indicating the programming language, editing the grammar unit in the grammar tree according to the indicated programming language; and if the setting result does not contain the information indicating the programming language, editing the grammar unit in the grammar tree according to the predefined programming language. Wherein, editing the syntax unit in the syntax tree is to traverse each node in the syntax tree and combine the syntax units obtained by traversing the syntax tree according to the syntax rules of the corresponding programming language, for example, according to each node in the depth-first algorithm syntax tree of the syntax tree, take out the node contents and combine the contents in the nodes according to the corresponding syntax rules to generate corresponding clauses, taking SQL language as an example, such as: the method comprises the steps of selecting clauses, WHERE clauses, GROUPBY clauses, HAVING clauses, FROM clauses and the like, wherein the depth-first traversal algorithm starts FROM a vertex, visits the first unaccessed adjacent node, then takes the adjacent node as the vertex, and repeats the steps until all nodes are accessed.
In some examples, taking a SELECT statement in the SQL language as an example, the format of the syntax tree obtained by parsing the data result is specifically shown in fig. 7, and the traversal order may be the order of the syntax tree nodes passed by the direction indicated by the dashed arrow shown in fig. 8.
And 605, splicing and combining the sub-sentences to obtain executable sentences.
Specifically, the respective sub-statements are combined according to the grammar rule, and the final executable code is generated as an executable statement.
At step 606, the executable statement is executed.
Specifically, the big data cluster is invoked to execute the executable statement obtained in step 605.
More specifically, the executable statements are saved as code files and the large data clusters are scheduled to execute the executable statements.
And step 607, acquiring a code file corresponding to the visualization algorithm.
Specifically, when the setting result includes at least two visualization algorithms, the setting result further includes a logical connection relationship between the visualization algorithms and an execution configuration parameter of the visualization algorithms, and at this time, since the visualization algorithms have generated corresponding codes and obtained the expected requirements of the user before obtaining the current setting result, at this time, the codes do not need to be generated, but the codes are called, and then the stored code file corresponding to the visualization algorithms included in the setting result needs to be obtained first.
And 608, generating an execution configuration file of the visualization algorithm according to the logic connection relation among the visualization algorithms and the execution configuration parameters of the visualization algorithms.
Specifically, the logical connection relationship between the visualization algorithms is converted into an execution logical parameter of the bottom layer big data cluster task scheduling, parameters such as priority, occupied resources, data storage format, data storage duration and the like in the executed configuration parameters are corresponding to the visualization algorithms contained in the setting result, and then the execution configuration parameters and the execution logical parameters are merged and stored into an execution configuration file.
And step 609, calling the big data cluster execution code file according to the execution configuration file.
Specifically, the code files corresponding to the execution configuration files are packaged into a folder, and then are submitted to the big data cluster together for execution, that is, the big data cluster is called to execute corresponding codes, where the big data cluster may include: spark cluster, hadoop Distributed File System (HDFS), GBase, etc.
It should be noted that the code is executed, which may be that the server needs to be executed by default, or that the user notifies the server to execute the code by clicking a "run" button displayed on a visual interface of the client, so that the user can verify the correctness and performance of the code. Of course, the above is only a specific example, and the server may also determine that the code needs to be executed in other ways, which is not described herein any more.
Further, the server may also satisfy the debugging function, that is, return the execution result to the client, as shown in fig. 9, after step 606, the code development method further includes:
and step 610, returning an execution result obtained by executing the executable statement to the client, so that the client can display the execution result for the user on a visual interface.
It should be noted that after the user completes code development, one or more code files corresponding to the setting result may further obtain corresponding application programs, so that more people can use the services provided by the application programs by downloading or accessing the application programs at the terminal.
In addition, it should be understood that the above steps of the various methods are divided for clarity, and the implementation may be combined into one step or split into some steps, and the steps are divided into multiple steps, so long as the same logical relationship is included in the protection scope of the present patent; it is within the scope of the patent to add insignificant modifications to the algorithms or processes or to introduce insignificant design changes to the core design without changing the algorithms or processes.
An embodiment of the present application further provides a client, as shown in fig. 10, including:
the first obtaining module 1001 is configured to obtain a table name and corresponding field information of a data table in a database to be developed.
The generating module 1002 is configured to generate a corresponding visualization object according to the table name and the field information, and present the visualization object on a first display area of the visualization interface, so that a user can set the visualization object on the visualization interface according to actual requirements.
A second obtaining module 1003, configured to obtain a setting result obtained by setting the visualization object in the second display area of the visualization interface by the user, where the setting result is used to generate an executable code.
It should be understood that the present embodiment is an apparatus embodiment corresponding to a method embodiment applied to a client, and the present embodiment can be implemented in cooperation with the method embodiment applied to the client. Related technical details mentioned in the embodiment of the method applied to the client are still valid in this embodiment, and are not described herein again in order to reduce repetition. Accordingly, the related technical details mentioned in the present embodiment can also be applied to the method embodiment applied to the client.
It should be noted that, all modules involved in this embodiment are logic modules, and in practical application, one logic unit may be one physical unit, may also be a part of one physical unit, and may also be implemented by a combination of multiple physical units. In addition, in order to highlight the innovative part of the present application, a unit that is not so closely related to solving the technical problem proposed by the present application is not introduced in the present embodiment, but this does not indicate that there is no other unit in the present embodiment.
An embodiment of the present application further provides a server, as shown in fig. 11, including:
the receiving module 1101 is configured to receive a setting result sent by the client, where the setting result is obtained by setting, on a visualization interface of the client, a visualization object obtained from a data table in the database according to a user.
The compiling module 1102 is configured to generate a data structure of the server according to the setting result if the setting result does not include at least two visualization algorithms; syntax analysis is carried out on the data structure to obtain syntax units and syntax trees are generated, and one syntax unit corresponds to one node in the syntax trees; editing the grammar unit according to the grammar rules of the programming language or the predefined programming language indicated in the setting result to generate a plurality of sub-sentences; and splicing and combining the sub-sentences to obtain an executable code.
An execution module 1103 for executing the executable code.
It should be understood that the present embodiment is an apparatus embodiment corresponding to the method embodiment applied to the server, and the present embodiment can be implemented in cooperation with the method embodiment applied to the server. The relevant technical details mentioned in the embodiment of the method applied to the server are still valid in this embodiment, and are not described herein again in order to reduce repetition. Accordingly, the related technical details mentioned in the present embodiment can also be applied to the method embodiment applied to the server.
It should be noted that, all modules involved in this embodiment are logic modules, and in practical application, one logic unit may be one physical unit, may also be a part of one physical unit, and may also be implemented by a combination of multiple physical units. In addition, in order to highlight the innovative part of the present application, a unit that is not so closely related to solving the technical problem proposed by the present application is not introduced in the present embodiment, but this does not indicate that there is no other unit in the present embodiment.
The embodiment of the application further provides a code development system, as shown in fig. 12, the code development system 1200 includes a client 1201 and a server 1202, where the client 1201 is configured to receive a data source configuration instruction issued by a user, the data source configuration instruction carries database location information, a table name and corresponding field information of a data table in a corresponding database are obtained according to the database location information, a corresponding visual object is generated according to the table name and the field information and is presented on a first display area of a visual interface, the user sets the visual object on the visual interface according to actual requirements, a setting result obtained by setting the visual object in a second display area of the visual interface by the user is obtained, the setting result is sent to the server through a predefined interface, and the server generates a code according to the setting result and executes the code; the server 1102 is configured to receive a setting result sent by the client, where the setting result is obtained by setting a visual object obtained from a data table in a database on a visual interface of the client according to a user, and if the setting result does not include at least two algorithms, perform syntax parsing on a data structure to obtain a syntax unit and generate a syntax tree, where one syntax unit corresponds to a node in the syntax tree, edit the syntax unit according to a syntax rule of a programming language or a predefined programming language indicated in the setting result to generate a plurality of sub-statements, and perform concatenation and combination on the sub-statements to obtain an executable statement and execute the executable statement.
An embodiment of the present application further provides an electronic device, as shown in fig. 13, including: includes at least one processor 1301; and, memory 1302 communicatively coupled to the at least one processor 1301; the memory 1302 stores instructions executable by the at least one processor 1301, and the instructions are executed by the at least one processor 1301, so that the at least one processor 1301 can execute the code development method described in any one of the method embodiments.
The memory 1302 and the processor 1301 are coupled by a bus, which may include any number of interconnecting buses and bridges that couple one or more of the various circuits of the processor 1301 and the memory 1302 together. The bus may also connect various other circuits such as peripherals, voltage regulators, power management circuits, and the like, which are well known in the art, and therefore, will not be described any further herein. A bus interface provides an interface between the bus and the transceiver. The transceiver may be one element or a plurality of elements, such as a plurality of receivers and transmitters, providing a means for communicating with various other apparatus over a transmission medium. The data processed by the processor 1301 is transmitted over a wireless medium via an antenna, which further receives the data and transmits the data to the processor 1301.
The processor 1301 is responsible for managing the bus and general processing, and may provide various functions including timing, peripheral interfaces, voltage regulation, power management, and other control functions. And memory 1302 may be used for storing data used by processor 1301 in performing operations.
An embodiment of the present application further provides a computer-readable storage medium storing a computer program. The computer program realizes the above-described method embodiments when executed by a processor.
That is, as can be understood by those skilled in the art, all or part of the steps in the method for implementing the embodiments described above may be implemented by a program instructing related hardware, where the program is stored in a storage medium and includes several instructions to enable a device (which may be a single chip, a chip, or the like) or a processor (processor) to execute all or part of the steps of the method described in the embodiments of the present application. And the aforementioned storage medium includes: a U-disk, a removable hard disk, a Read-Only Memory (ROM), a Random Access Memory (RAM), a magnetic disk, or an optical disk, and various media capable of storing program codes.
It will be understood by those of ordinary skill in the art that the foregoing embodiments are specific examples for carrying out the present application, and that various changes in form and details may be made therein without departing from the spirit and scope of the present application in practice.

Claims (17)

1. A code development method is applied to a client side and comprises the following steps:
acquiring a table name and corresponding field information of a data table in a database to be developed;
generating a corresponding visual object according to the table name and the field information, and displaying the visual object on a first display area of a visual interface, so that the user can set the visual object in a second display area of the visual interface according to actual requirements;
and acquiring a setting result obtained by setting the visual object in the second display area by the user, wherein the setting result is used for generating an executable code.
2. The code development method of claim 1, wherein the visualization object comprises one or any combination of the following: the system comprises a data table list, a data table association mode, a field list, an operation mode list and a programming language type, wherein the data table association mode comprises inner association, full association, left association and right association, and fields of each data table in the data table list form the field list.
3. The code development method according to claim 2, wherein the visualization object is the data table list, the data table association method, the field list, the operation method list, and the programming language type, and the obtaining of the setting result obtained by the user setting the visualization object in the second display area includes:
acquiring a plurality of data tables to be operated selected from the data table list in the second display area by the user;
acquiring an output field and an input field which are selected and determined by the user from the field list and the operation mode list in the second display area, and performing operation on the data table to be operated;
acquiring the association mode and the association field between the data tables to be operated, which are determined by the user from the data table association mode and the field list in the second display area;
acquiring a programming language determined by the user from the programming language types in the second display area;
and taking the table name of the data table to be operated, the input field, the output field, the operation performed on the data table to be operated, the association mode, the association field and the programming language as the setting result.
4. The code development method according to claim 3, wherein the acquiring the operation performed on the to-be-operated data table by the user in the second display area by checking and selecting the determined output field and input field from the field list and the operation mode list comprises:
acquiring a plurality of fields selected by the user from the field list of the data table to be operated, and respectively acquiring the output field and the input field;
and acquiring fields and operation symbols which are selected by the user from the field list and the operation mode list, and generating an operation expression as the operation on the data table to be operated.
5. The code development method according to any one of claims 1 to 4, wherein after obtaining a setting result obtained by the user setting the visualization object in the second display area, the method further comprises:
acquiring an execution result of the executable code;
displaying the execution result on the visual interface for the user to debug the setting result according to the execution result;
and if the setting result meets the expected requirement of the user, taking the setting result as a visual algorithm and storing the visualization algorithm in an algorithm list.
6. The code development method of claim 5, wherein the visualization object further comprises the saved visualization algorithm,
the obtaining of the setting result obtained by the user setting the visual object in the second display area of the visual interface further includes:
determining at least two of the visualization algorithms selected by the user from the list of algorithms;
and acquiring a result of the arrangement of the at least two visualization algorithms in the second display area by the user as the setting result, wherein the setting result comprises the at least two visualization algorithms, a logical connection relation between the visualization algorithms and execution configuration parameters of the visualization algorithms.
7. The code development method according to claim 1, wherein before the obtaining of the table names and the corresponding field information of the data tables in the database to be developed, the method further comprises:
receiving a data source configuration instruction issued by a user, wherein the data source configuration instruction carries database position information;
and determining the database to be developed according to the database position information.
8. The code development method according to claim 1, wherein after obtaining a setting result obtained by the user setting the visualization object in the second display area, the method further comprises:
and sending the setting result to a server, so that the server can generate the executable code according to the setting result and execute the executable code.
9. A code development method is applied to a server side and comprises the following steps:
receiving a setting result sent by a client, wherein the setting result is obtained by setting a visual object obtained by a data table in a database on a visual interface of the client by a user;
if the setting result does not comprise at least two visual algorithms, syntax analysis is carried out on the setting result to obtain syntax units and syntax trees are generated, and one syntax unit corresponds to one node in the syntax trees;
editing the grammar unit according to the grammar rules of the programming language or the predefined programming language indicated in the setting result to generate a plurality of sub-sentences;
splicing and combining the sub-sentences to obtain executable codes;
the executable code is executed.
10. The code development method of claim 9, wherein after the executing the executable code, the method further comprises:
and returning an execution result obtained by executing the executable code to the client, so that the client can display the execution result for the user on a visual interface.
11. The code development method of claim 9, wherein said executing the executable code comprises:
and saving the executable code as a code file and scheduling a big data cluster to execute the executable code.
12. The code development method according to claim 11, wherein after receiving the setting result sent by the client, the method further comprises:
if the setting result comprises at least two visualization algorithms, a logic connection relation between the visualization algorithms and an execution configuration parameter of the visualization algorithms, acquiring the code file corresponding to the visualization algorithms;
generating an execution configuration file of the setting result according to the logic connection relation among the visualization algorithms and the execution configuration parameters of the visualization algorithms;
and scheduling the big data cluster to execute the code file according to the execution configuration file.
13. A client, comprising:
the first acquisition module is used for acquiring the table name and the corresponding field information of the data table in the database to be developed;
the generating module is used for generating a corresponding visual object according to the table name and the field information and displaying the visual object on a first display area of a visual interface, so that the user can set the visual object in a second display area of the visual interface according to actual requirements;
and the second acquisition module is used for acquiring a setting result obtained by setting the visual object in the second display area by the user, and the setting result is used for generating an executable code.
14. A server, comprising:
the receiving module is used for receiving a setting result sent by a client, wherein the setting result is obtained by setting a visual object obtained by a data table in a database on a visual interface of the client according to a user;
the compiling module is used for carrying out grammar analysis on the setting result to obtain grammar units and generating grammar trees if the setting result does not comprise at least two visual algorithms, and one grammar unit corresponds to one node in the grammar trees; editing the grammar unit according to the grammar rules of the programming language or the predefined programming language indicated in the setting result to generate a plurality of sub-sentences; splicing and combining the sub-sentences to obtain executable codes;
and the execution module is used for executing the executable code.
15. A code development system comprising the client of claim 13 and the server of claim 14.
16. An electronic device, comprising:
at least one processor; and (c) a second step of,
a memory communicatively coupled to the at least one processor; wherein, the first and the second end of the pipe are connected with each other,
the memory stores instructions executable by the at least one processor to enable the at least one processor to perform the code development method of any one of claims 1 to 8 or to perform the code development method of any one of claims 9 to 12.
17. A computer-readable storage medium storing a computer program, wherein the computer program, when executed by a processor, implements the code development method of any one of claims 1 to 8 or performs the code development method of any one of claims 9 to 12.
CN202111162800.XA 2021-09-30 2021-09-30 Code development method, system, client, server, device and storage medium Pending CN115904382A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111162800.XA CN115904382A (en) 2021-09-30 2021-09-30 Code development method, system, client, server, device and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111162800.XA CN115904382A (en) 2021-09-30 2021-09-30 Code development method, system, client, server, device and storage medium

Publications (1)

Publication Number Publication Date
CN115904382A true CN115904382A (en) 2023-04-04

Family

ID=86495264

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111162800.XA Pending CN115904382A (en) 2021-09-30 2021-09-30 Code development method, system, client, server, device and storage medium

Country Status (1)

Country Link
CN (1) CN115904382A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117648122A (en) * 2024-01-25 2024-03-05 北京一谈网络科技有限公司 Visual code warehouse optimization method, system, equipment and storage medium

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117648122A (en) * 2024-01-25 2024-03-05 北京一谈网络科技有限公司 Visual code warehouse optimization method, system, equipment and storage medium

Similar Documents

Publication Publication Date Title
US11436126B2 (en) Customizable enterprise automation test framework
CN108280023B (en) Task execution method and device and server
CN109614102A (en) Code automatic generation method, device, electronic equipment and storage medium
CN106341444B (en) Data access method and device
CN115617327A (en) Low code page building system, method and computer readable storage medium
US10303517B1 (en) Automated evaluation of computer programming
CA3050159C (en) Artificial intelligence (ai) based automatic rule generation
CN114356921A (en) Data processing method, device, server and storage medium
US20140101097A1 (en) Template based database analyzer
CN113946321B (en) Processing method of computing logic, electronic device and readable storage medium
CN114036425A (en) Page access method, client, server and system
CN110990011A (en) Data request method of automation interface
CN114816375A (en) Service arranging method, device, equipment and storage medium
CN115904382A (en) Code development method, system, client, server, device and storage medium
US10977745B1 (en) Computer-implemented methods systems and articles of manufacture for generating user interface with personalized response to user query
CN114371845A (en) Form generation method and device
CN111159207B (en) Information processing method and device
CN117762404A (en) Configurable operator processing method and device for data mining
CN110175917B (en) Device and method for parameter graphical processing
CN112926008A (en) Method and device for generating form page, electronic equipment and storage medium
CN111984826A (en) XML-based data automatic storage method, system, device and storage medium
WO2022267865A1 (en) Workflow creation method and system, and electronic device and computer-readable storage medium
CN116069330A (en) Middle and background template construction method, device and storage medium
CN115408009A (en) Code file generation method, device, equipment and storage medium
CN115145652A (en) Method, device, equipment and medium for creating data processing task

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination