Software development methods, apparatus, computer equipment, and storage media
By acquiring cloud service platform information from R&D tools for development and auditing locally, the efficiency loss caused by the separation of cloud service platforms from R&D tools is resolved, enabling remote development, improving the development efficiency of cloud applications, and shortening the R&D cycle.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- SHENZHEN S F TAISEN HLDG (GRP) CO LTD
- Filing Date
- 2025-01-17
- Publication Date
- 2026-07-17
AI Technical Summary
The separation of cloud service platforms from R&D tools has resulted in additional workload and efficiency losses, slowing down the development cycle of cloud applications.
By acquiring information from the cloud service platform through R&D tools, developing the application and auditing it locally, and then uploading it to the cloud service platform after the audit is passed, the R&D tools and the cloud service platform are connected to achieve remote development.
It improves the development efficiency of cloud applications and reduces the development cycle of the entire R&D process.
Smart Images

Figure CN122411892A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of computer technology, and more specifically to software development methods, apparatus, computer equipment, and storage media. Background Technology
[0002] With the popularization of cloud service platforms, service platforms and cloud application development are becoming increasingly inseparable. A complete cloud service platform often carries functions such as cloud service construction, release, security audit, and interface management.
[0003] In the development of cloud applications, development tools are typically used to support various stages of software development, thereby significantly improving development efficiency and quality. For example, these tools provide the development team with the necessary development environment, including operating systems, databases, middleware, etc., to meet diverse development needs. These environments can be configured according to the team's needs and deployed in the cloud, allowing team members to operate them anytime, anywhere, greatly improving work efficiency. Alternatively, a comprehensive set of development management tools can be provided, including project planning, task allocation, progress tracking, and quality control, helping the team effectively manage development projects and ensure their smooth progress. Through these tools, the team can better coordinate and manage development activities, increasing the project success rate.
[0004] However, while cloud service platforms facilitate the building, deployment, and lifecycle management of cloud applications in relevant software development solutions, they are not integrated with development tools. Cloud services and development tools remain essentially two separate terminals; any operation involving the cloud requires switching to the cloud service platform. For example, when using version control systems, continuous integration / continuous deployment (CI / CD) tools, and code quality management tools, development teams may still need to work in local environments or independent development environments before migrating their results to the cloud platform for further testing and deployment. This separation leads to additional workload and efficiency losses, ultimately slowing down the entire development cycle. Summary of the Invention
[0005] In view of this, the present invention provides a software development method, apparatus, computer equipment, and storage medium to solve the problem of additional workload and efficiency loss in the development of cloud applications caused by the separation of the local environment and the cloud service platform.
[0006] In a first aspect, the present invention provides a software development method, the method comprising:
[0007] Based on R&D tools, obtain cloud service information corresponding to the project to be developed in the cloud service platform. The cloud service information is used to indicate the R&D information of the project to be developed during the development process.
[0008] Based on cloud service information, the project to be developed is developed in the R&D tools;
[0009] Audit the development results and upload them to the cloud service platform when the audit is passed.
[0010] In this embodiment of the invention, firstly, cloud service information corresponding to the project to be developed can be obtained from the cloud service platform based on the R&D tool. This cloud service information indicates the R&D information of the project during its development process. Next, based on the cloud service information, the project is developed within the R&D tool. Then, the development results can be audited, and upon successful auditing, the results are uploaded to the cloud service platform. This connects the R&D tool and the cloud service platform, enabling remote development of cloud applications within the R&D tool, improving the development efficiency of cloud applications, and thus reducing the overall R&D cycle.
[0011] In one optional implementation, the cloud service information includes: container information of the development container corresponding to the project to be developed;
[0012] Based on cloud service information, the project to be developed is developed within the R&D tools, including:
[0013] Based on container information, obtain the container address of the development container;
[0014] The development container is based on the container address connection, and the project to be developed is developed in the development container.
[0015] In this embodiment of the invention, the container address of the development container can be obtained based on the container information, and the development container can be connected based on the container address to develop the project to be developed in the development container, such as building and deploying the project to be developed. This enables remote development of cloud applications through R&D tools on the terminal device, thereby improving project development efficiency.
[0016] In one optional implementation, the cloud service information includes: pipeline information and deployment unit information, wherein the pipeline information is used to indicate the code delivery and verification pipeline of the project under development, and the deployment unit information is used to indicate the information of the basic unit for managing the project under development.
[0017] Based on cloud service information, the development of the project to be developed within the R&D tools also includes:
[0018] Based on the pipeline information and deployment unit information, open the development interface corresponding to the project to be developed in the development tool;
[0019] In the R&D interface, based on the pipeline of the project to be developed, the interface management of the project to be developed is carried out. The pipeline is used to deliver and verify the code during the development process of the project to be developed.
[0020] In this embodiment of the invention, the development interface can be opened through the development tool, and pipeline management and application interface management can be performed based on the development interface, thereby realizing remote development management of the project to be developed on the terminal device without frequently switching to the cloud service platform, which further improves the efficiency of project development.
[0021] In one alternative implementation, interface management is performed on the project to be developed based on the project's pipeline, including:
[0022] Analyze the source code of the project to be developed to obtain the interface information of the application interface;
[0023] Debug application interfaces based on interface information, verify the debugged application interfaces, and push the interface documentation of the verified application interfaces to the cloud service platform.
[0024] In this embodiment of the invention, the interface document can be pushed to the cloud service platform only after the application interface has been verified, thereby enabling the local retrieval, editing and maintenance of the API management directory on the cloud, ensuring the accuracy and up-to-dateness of the API interface information.
[0025] In one optional implementation, the source code of the project to be developed is analyzed to obtain the interface information of the application interface, including:
[0026] Obtain the syntax structure information corresponding to the source code;
[0027] Traverse the syntax structure information to obtain the interface nodes;
[0028] The interface information of the application interface is obtained by extracting interface annotations based on the interface nodes.
[0029] In this embodiment of the invention, the development interface can be opened through the development tool, and pipeline management and application interface management can be performed based on the development interface, thereby realizing remote development management of the project to be developed on the terminal device without frequently switching to the cloud service platform, which further improves the efficiency of project development.
[0030] In one optional implementation, the development results are audited, and upon successful auditing, the development results are uploaded to the cloud service platform, including:
[0031] Audit the development results based on the code branches corresponding to the development results;
[0032] If the audit results do not meet the submission requirements, modify the development results, and upload the development results to the cloud service platform when the modified development results meet the submission requirements.
[0033] In this embodiment of the invention, before the code branch is developed and committed locally, the development results of the code branch can be audited to discover potential security vulnerabilities and risks. This allows problems to be discovered and resolved during the development phase, rather than waiting until the code is deployed to the cloud service platform, thus reducing the time and cost of fixing problems.
[0034] In one optional implementation, the development results are audited based on the code branch corresponding to the development result, including:
[0035] Retrieve the development history of the code branch;
[0036] Based on the development history, determine the update content corresponding to the code branch, and determine the commit conditions that match the update content;
[0037] The development results will be audited based on the submission criteria.
[0038] In this embodiment of the invention, before the code branch is developed and committed locally, the development results of the code branch can be audited to discover potential security vulnerabilities and risks. This allows problems to be discovered and resolved during the development phase, rather than waiting until the code is deployed to the cloud service platform, thus reducing the time and cost of fixing problems.
[0039] In a second aspect, the present invention provides a software development apparatus, the apparatus comprising:
[0040] The acquisition module is used to acquire cloud service information corresponding to the project to be developed in the cloud service platform based on the R&D tools. The cloud service information is used to indicate the R&D information of the project to be developed during the development process.
[0041] The development module is used to develop projects within the R&D tools based on cloud service information.
[0042] The audit module is used to audit the development results and upload them to the cloud service platform when the audit is passed.
[0043] Thirdly, the present invention provides a computer device, comprising: a memory and a processor, the memory and the processor being communicatively connected to each other, the memory storing computer instructions, and the processor executing the computer instructions to perform a software development method according to the first aspect or any corresponding embodiment thereof.
[0044] Fourthly, the present invention provides a computer-readable storage medium storing computer instructions for causing a computer to execute a software development method according to the first aspect or any corresponding embodiment thereof.
[0045] Fifthly, the present invention provides a computer program product, including computer instructions for causing a computer to execute a software development method according to the first aspect or any corresponding embodiment thereof. Attached Figure Description
[0046] To more clearly illustrate the specific embodiments of the present invention or the technical solutions in the prior art, the drawings used in the description of the specific embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are some embodiments of the present invention. For those skilled in the art, other drawings can be obtained from these drawings without creative effort.
[0047] Figure 1 This is a flowchart illustrating a software development method according to an embodiment of the present invention;
[0048] Figure 2 This is a flowchart illustrating another software development method according to an embodiment of the present invention;
[0049] Figure 3 This is a schematic diagram of the research and development interface in the research and development tool according to an embodiment of the present invention;
[0050] Figure 4 This is a flowchart illustrating another software development method according to an embodiment of the present invention;
[0051] Figure 5 This is a structural block diagram of a software development apparatus according to an embodiment of the present invention;
[0052] Figure 6 This is a schematic diagram of the hardware structure of a computer device according to an embodiment of the present invention. Detailed Implementation
[0053] To make the objectives, technical solutions, and advantages of the embodiments of the present invention clearer, the technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.
[0054] The application scenarios on which the execution of software development methodologies depends are described here.
[0055] With the popularization of cloud service platforms, service platforms and cloud application development are becoming increasingly inseparable. A complete cloud service platform often carries functions such as cloud service construction, release, security audit, and interface management.
[0056] In the development of cloud applications, development tools are typically used to support various stages of software development, thereby significantly improving development efficiency and quality. For example, these tools provide the development team with the necessary development environment, including operating systems, databases, middleware, etc., to meet diverse development needs. These environments can be configured according to the team's needs and deployed in the cloud, allowing team members to operate them anytime, anywhere, greatly improving work efficiency. Alternatively, a comprehensive set of development management tools can be provided, including project planning, task allocation, progress tracking, and quality control, helping the team effectively manage development projects and ensure their smooth progress. Through these tools, the team can better coordinate and manage development activities, increasing the project success rate.
[0057] However, in relevant software development solutions, while cloud service platforms facilitate the construction, deployment, and lifecycle management of cloud applications, they are not integrated with development tools. Cloud services and development tools are essentially two separate terminals; that is, the cloud service platform and development tools are two independent systems. Any operation involving the cloud requires switching to the cloud service platform. For example, when development teams use version control systems, continuous integration / continuous deployment (CI / CD) tools, code quality management tools, etc., they may still need to work in a local environment or a separate development environment before migrating the results to the cloud platform for further testing and deployment. This separation leads to additional workload and efficiency loss, thereby slowing down the entire development cycle.
[0058] Based on this, embodiments of the present invention provide a software development method, which includes: first, obtaining cloud service information corresponding to the project to be developed from a cloud service platform using a development tool, wherein the cloud service information is used to indicate the development information of the project to be developed during the development process. Next, developing the project to be developed in the development tool based on the cloud service information. Then, the development results can be audited, and when the audit is passed, the development results are uploaded to the cloud service platform, thereby connecting the development tool and the cloud service platform to remotely develop cloud applications in the development tool, improving the development efficiency of cloud applications, and thus reducing the development cycle of the entire development process.
[0059] According to an embodiment of the present invention, a software development method embodiment is provided. It should be noted that the steps shown in the flowchart in the accompanying drawings can be executed in a computer system such as a set of computer-executable instructions. Furthermore, although a logical order is shown in the flowchart, in some cases, the steps shown or described may be executed in a different order than that shown here.
[0060] This embodiment provides a software development method that can be used in terminal devices, such as computers. Figure 1 This is a flowchart of a software development method according to an embodiment of the present invention, such as... Figure 1 As shown, the process includes the following steps:
[0061] Step S101: Based on the R&D tools, obtain the cloud service information corresponding to the project to be developed in the cloud service platform. The cloud service information is used to indicate the R&D information of the project to be developed during the development process.
[0062] In this embodiment of the invention, the development tool can be installed on the terminal device of the developer, enabling the developer to remotely develop cloud applications on the cloud service platform. For example, the development tool can be a tool that supports various development functions such as web development, database tools, and framework support. The specific type of development tool depends on the actual development needs of the developer, and this disclosure does not impose specific limitations on it. The cloud service platform is a service platform that provides computing, storage, and network resources through a network, allowing enterprises and individuals to obtain and use these resources on demand without having to build and maintain complex IT infrastructure themselves. The project to be developed can be a cloud application to be developed on the cloud service platform. This cloud application can run on a cloud server, provide services to users through a network connection, and is not dependent on the user's local hardware and software environment.
[0063] Here, when obtaining cloud service information corresponding to the project to be developed in the cloud service platform based on the R&D tool, the plugin panel of the R&D tool can be opened on the terminal device first, and the R&D personnel can be instructed to verify their identity and log in, for example, by scanning the QR code to log in through the cloud service platform, and after successful authentication, the Git repository that the R&D personnel are currently using or operating can be obtained.
[0064] Then, the corresponding code branch can be obtained based on the current Git repository, and the corresponding cloud service information can be obtained based on that code branch. It should be understood that when developing a project, branch development can be adopted, which allows developers to develop new features or fix vulnerabilities without affecting the stability of the main codebase. The existence of code branches allows multiple developers to work on different features simultaneously without interfering with each other. Each code branch can be regarded as an independent development environment.
[0065] Step S102: Based on cloud service information, develop the project to be developed in the R&D tool.
[0066] In this embodiment of the invention, the cloud server can be opened in the R&D tool based on cloud service information, thereby directly operating the server, such as viewing server logs, restarting the server, and operating on R&D projects.
[0067] In addition, code can be written locally based on R&D tools to obtain development results. For example, to develop a feature in a project, a new branch can be created locally using the `git branch_name` command, and development work can be carried out on that new branch. The completed code branch can then be used as the development result.
[0068] Step S103: Audit the development results and upload them to the cloud service platform when the audit is passed.
[0069] In this embodiment of the invention, after developing the project to be developed locally using R&D tools, the development results can be submitted to the cloud service platform. For example, when the development results include code branches, the code branch can be submitted and merged into the main branch in the cloud service platform using a merge command.
[0070] Here, to proactively identify and fix potential errors, vulnerabilities, and poor coding practices in code branches, thereby improving overall code quality, auditing can ensure that code branches in the development results follow best practices and coding standards, reducing the difficulty of subsequent maintenance. Additionally, auditing can be used to deploy security measures before code branches are merged into the main branch, ensuring that every component of the system can withstand challenges in unknown environments.
[0071] Specifically, unlike the auditing method that audits the development results submitted by various terminal devices in the cloud platform, this invention can audit the development results to be submitted in the terminal device and provide corresponding optimization suggestions to reduce the possibility of security vulnerabilities in the project to be developed, thereby preventing hackers from using these vulnerabilities to attack, and deploying security defense measures before the code is merged into the main branch to ensure that every part of the system can withstand challenges in unknown environments.
[0072] As described above, in this embodiment of the invention, firstly, cloud service information corresponding to the project to be developed can be obtained from the cloud service platform based on the R&D tool. This cloud service information indicates the R&D information of the project during its development process. Next, based on the cloud service information, the project to be developed is developed within the R&D tool. Then, the development results can be audited, and upon successful auditing, the results are uploaded to the cloud service platform. This connects the R&D tool and the cloud service platform, enabling remote development of cloud applications within the R&D tool, improving the development efficiency of cloud applications, and thus reducing the overall R&D cycle.
[0073] This embodiment provides another software development method that can be used in terminal devices, such as computers. Figure 2 This is a flowchart of a software development method according to an embodiment of the present invention, such as... Figure 2 As shown, the process includes the following steps:
[0074] Step S201: Based on the R&D tools, obtain the cloud service information corresponding to the project to be developed from the cloud service platform. This cloud service information indicates the R&D information of the project during its development process. For details, please refer to [link to details]. Figure 1 Step S101 of the illustrated embodiment will not be described again here.
[0075] Step S202: Based on cloud service information, develop the project to be developed in the R&D tool.
[0076] Specifically, the aforementioned cloud service information includes: container information of the development container corresponding to the project to be developed, and step S202 includes:
[0077] Step S2021: Based on the container information, obtain the container address of the development container.
[0078] Step S2022: Connect to the development container based on the container address, and develop the project to be developed in the development container.
[0079] In this embodiment of the invention, the development container is a lightweight, portable software runtime environment used for the aforementioned project. Here, container technology allows developers to package an application and all its dependencies together into a standardized unit called a "container." This encapsulation ensures that the application behaves consistently regardless of the environment in which it runs.
[0080] Here, considering the collaborative development approach using multiple code branches when developing the aforementioned project, each code branch has an independent container environment to avoid interference between different code branches during development. Specifically, different container images can be configured for different code branches to include specific dependencies or tools, meeting the flexibility requirements of project development.
[0081] Therefore, when determining the container information of the development container corresponding to the project to be developed, the corresponding development container can be determined based on the current code branch, and the container information can be obtained. Here, the container information can be various data and configurations related to the development container, such as the container's ID, name, image, network settings, status, resource usage, etc.
[0082] Once it's determined that a container is in normal operating condition based on container information, the container address can be obtained, for example, through `docker inspect`.<container_id> The command can display detailed information about the container, such as its address. After obtaining the container address, you can connect to the development container based on that address and use your development tools to develop the project within that container.
[0083] Step S203: Audit the development results and upload them to the cloud service platform upon successful audit. For details, please refer to [link to relevant documentation]. Figure 1 Step S103 of the illustrated embodiment will not be described again here.
[0084] In this embodiment of the invention, the container address of the development container can be obtained based on the container information, and the development container can be connected based on the container address to develop the project to be developed in the development container, such as building and deploying the project to be developed. This enables remote development of cloud applications through R&D tools on the terminal device, thereby improving project development efficiency.
[0085] In some optional implementations, the cloud service information includes: pipeline information and deployment unit information, wherein the pipeline information is used to indicate the code delivery and verification pipeline of the project under development, and the deployment unit information is used to indicate the information of the basic unit for managing the project under development. Step S102 includes:
[0086] Step S11: Based on the pipeline information and deployment unit information, open the development interface corresponding to the project to be developed in the development tool.
[0087] Step S12: In the R&D interface, based on the pipeline of the project to be developed, interface management is performed on the project to be developed. The pipeline is used to deliver and verify code during the development process of the project to be developed.
[0088] In this embodiment of the invention, a pipeline is a CI / CD (Continuous Integration / Continuous Delivery) tool that can help development teams automate the building, testing, and deployment of applications, shortening the application's development-to-deployment cycle. Each pipeline can execute code delivery tasks serially or in parallel. Pipeline information can include cloud pipeline information and pipeline build information. The cloud pipeline information indicates the entire process from code submission to application deployment, including tasks such as building, testing, and deployment. The pipeline build information indicates the basic information that needs to be configured when creating a pipeline, such as pipeline name, type (source code build or image build), and code repository.
[0089] Here, as Figure 3 The image shows a schematic of the development interface in the development tools. Within these tools, pipeline management allows for the management of projects under development, enabling changes to the branches running within each pipeline, such as creating or modifying code branches. Taking creating a new code branch as an example, one can first select a version control system, such as Git. Then, in the local development environment, one can use the version control system's command-line tools to create a new branch and define the pipeline configuration file. It should be understood that when creating a new code branch, the deployment status of the development and testing environments, as well as the corresponding container information, can also be displayed.
[0090] Other, such as Figure 3 As shown, the R&D interface also includes an API (Application Programming Interface) management module. Step S12 described above can be executed based on this API management module to manage the interfaces of the project under development, according to the pipeline of the project. Specifically, this includes:
[0091] Step a1: Analyze the source code of the project to be developed to obtain the interface information of the application interface.
[0092] Step a2: Debug the application interface based on the interface information, verify the debugged application interface, and push the interface documentation of the verified application interface to the cloud service platform.
[0093] In this embodiment of the invention, the API management module is used to manage application interfaces (hereinafter referred to as APIs). An application interface is a set of predefined functions or methods that can provide developers with the ability to access the functions of a certain software or hardware without accessing the source code or understanding the details of its internal working mechanism, thereby simplifying the development process of cloud applications.
[0094] When managing interfaces, you can first obtain interface information. Specifically, in step a1 above, you analyze the source code of the project to be developed to obtain the interface information of the application interfaces, including:
[0095] (1) Obtain the syntax structure information corresponding to the source code.
[0096] (2) Traverse the syntax structure information to obtain the interface nodes.
[0097] (3) Extract interface annotations based on interface nodes to obtain the interface information of application interfaces.
[0098] In this embodiment of the invention, the API management module provides additional functions such as authentication and authorization, traffic control, monitoring and logging to help manage and protect APIs. Through the cloud API management module, APIs can be easily published, updated and managed to ensure API security and availability.
[0099] When obtaining API interface information, the source code of the project to be developed can be obtained first, and the code structure can be identified through PSI (Program Structure Interface, which is responsible for parsing files and creating layers of syntax and semantic code models to support many functions of cloud service platforms). The relevant information is parsed to generate OpenAPI, and the interface information is determined based on the OpenAPI.
[0100] Specifically, the first step is to obtain the syntax structure information corresponding to the source code, which can be the abstract syntax tree (AST) corresponding to the source code.
[0101] Then, you can traverse the nodes of the AST to find the parts that define the interface, such as classes, functions, and methods. For example, you can traverse and find nodes in the AST that contain annotations for interface information, such as nodes containing SpringMVC (which uses a series of annotations to define controller classes and methods that handle HTTP requests and return responses) or JAX-RS (Java API for RESTful Web Services, which provides a set of annotations to simplify the creation of RESTful services) annotations, and extract API information based on these annotations. This information can include the interface name, parameter list, return type, comments, etc.
[0102] Next, based on the extracted information, documentation conforming to the OpenAPI specification can be generated to obtain the API interface information.
[0103] It should be understood that developers can switch between cloud service platforms and local environments in the development interface, thereby choosing to debug API interfaces in either a local or cloud environment, allowing developers to select the most suitable debugging environment based on different needs and conditions.
[0104] Specifically, developers can easily switch between "cloud" and "local" environments using configuration files, environment variables, or command-line parameters, and obtain HTTP debugging information for the current environment, such as the API URL, port number, and authentication method. Then, they can use HTTP client tools to send requests to the API, observe the responses, and adjust the code or configuration based on the results until the API works as expected. If the API debugging is performed locally, the interface information corresponding to the API after it is expected to work can be pushed to the cloud service platform.
[0105] Additionally, developers can use the API management module to retrieve the cloud API management directory from the cloud service platform for maintaining API documentation. Specifically, they can select the API they want to modify from the API management directory on the cloud service platform and retrieve its interface information locally. Then, they can edit and maintain the interface documentation locally, such as updating the interface description, adding new endpoints, and modifying request or response formats. It should be understood that API information from the cloud service platform can be pre-synchronized to the local machine to facilitate subsequent modifications.
[0106] Then, to ensure the reliability of the modified interface information, it can be verified. API interfaces can be debugged in a local or cloud environment. After the corresponding API works as expected, the interface information is re-uploaded to the cloud service platform. This allows for effective local retrieval, editing, and maintenance of the cloud API management directory, ensuring the accuracy and up-to-dateness of API interface information. The specific API interface debugging process is as described above and will not be repeated here.
[0107] In this embodiment of the invention, the development interface can be opened through the development tool, and pipeline management and application interface management can be performed based on the development interface, thereby realizing remote development management of the project to be developed on the terminal device without frequently switching to the cloud service platform, which further improves the efficiency of project development.
[0108] This embodiment provides yet another software development method that can be used in terminal devices, such as computers. Figure 4 This is a flowchart of another software development method according to an embodiment of the present invention, such as... Figure 4 As shown, the process includes the following steps:
[0109] Step S401: Based on the R&D tools, obtain the cloud service information corresponding to the project to be developed from the cloud service platform. This cloud service information indicates the R&D information of the project during its development process. For details, please refer to [link to details]. Figure 1 Step S101 of the illustrated embodiment will not be described again here.
[0110] Step S402: Based on the cloud service information, develop the project to be developed using the development tools. For details, please refer to [link to details]. Figure 1 Step S102 of the illustrated embodiment will not be described again here.
[0111] Step S403: Audit the development results and upload them to the cloud service platform when the audit is passed.
[0112] Specifically, step S403 includes:
[0113] Step S4031: Audit the development results based on the code branch corresponding to the development results.
[0114] Step S4032: If the audit results do not meet the submission conditions, modify the development results, and upload the development results to the cloud service platform when the modified development results meet the submission conditions.
[0115] In this embodiment of the invention, the development result may include the developed code branch. The above auditing process may be local auditing on the terminal device. Specifically, before the code branch is developed and submitted locally, the code branch may be audited. For example, code auditing may be incorporated into the continuous integration (CI) process to ensure that each submitted code is automatically audited, so as to discover and fix newly introduced problems in a timely manner and maintain the health of the code repository.
[0116] Specifically, step S4031 above involves auditing the development results based on the code branch corresponding to the development results, including:
[0117] Step b1: Obtain the development history of the code branch.
[0118] Step b2: Based on the development records, determine the update content corresponding to the code branch, and determine the commit conditions that match the update content.
[0119] Step b3: Audit the development results based on the submission criteria.
[0120] In this embodiment of the invention, the development record may include the commit record, merge record, feedback and modification history of the code branch, and the update content corresponding to each version of the code branch shall be determined according to the development record in order to formulate the commit conditions for auditing.
[0121] Specifically, the characteristics and purpose of the current code branch can be determined based on the updated content, thereby formulating specific commit conditions. For example, for code branches that are about to be released, stricter code quality and security requirements may need to be formulated.
[0122] During the auditing of development results, problems, suggestions, and fixes can be recorded in detail to generate a detailed audit report. This report guides developers to modify code branches until they meet the submission requirements before uploading the development results to the cloud service platform.
[0123] In this embodiment of the invention, before the code branch is developed and committed locally, the development results of the code branch can be audited to discover potential security vulnerabilities and risks. This allows problems to be discovered and resolved during the development phase, rather than waiting until the code is deployed to the cloud service platform, thus reducing the time and cost of fixing problems.
[0124] In summary, in this embodiment of the invention, firstly, cloud service information corresponding to the project to be developed can be obtained from the cloud service platform based on the R&D tool. This cloud service information indicates the R&D information of the project during its development process. Next, based on the cloud service information, the project to be developed is developed within the R&D tool. Then, the development results can be audited, and upon successful auditing, the results are uploaded to the cloud service platform. This connects the R&D tool and the cloud service platform, enabling remote development of cloud applications within the R&D tool, improving the development efficiency of cloud applications, and thus reducing the overall R&D cycle.
[0125] This embodiment also provides a software development apparatus for implementing the above embodiments and preferred embodiments; details already described will not be repeated. As used below, the term "module" can refer to a combination of software and / or hardware that performs a predetermined function. Although the apparatus described in the following embodiments is preferably implemented in software, hardware implementation, or a combination of software and hardware, is also possible and contemplated.
[0126] This embodiment provides a software development apparatus, such as... Figure 5 As shown, it includes:
[0127] The acquisition module 501 is used to acquire cloud service information corresponding to the project to be developed in the cloud service platform based on the R&D tools. The cloud service information is used to indicate the R&D information of the project to be developed during the development process.
[0128] Development module 502 is used to develop projects to be developed within the R&D tools based on cloud service information.
[0129] The audit module 503 is used to audit the development results and upload them to the cloud service platform when the audit is passed.
[0130] In some optional implementations, the cloud service information includes: container information of the development container corresponding to the project to be developed; the development module 502 is also used for:
[0131] Based on container information, obtain the container address of the development container;
[0132] The development container is based on the container address connection, and the project to be developed is developed in the development container.
[0133] In some optional implementations, the cloud service information includes: pipeline information and deployment unit information, wherein the pipeline information is used to indicate the code delivery and verification pipeline of the project under development, and the deployment unit information is used to indicate information about the basic units for managing the project under development; the development module 502 is also used for:
[0134] Based on the pipeline information and deployment unit information, open the development interface corresponding to the project to be developed in the development tool;
[0135] In the R&D interface, based on the pipeline of the project to be developed, the interface management of the project to be developed is carried out. The pipeline is used to deliver and verify the code during the development process of the project to be developed.
[0136] In some alternative implementations, development module 502 is also used for:
[0137] Analyze the source code of the project to be developed to obtain the interface information of the application interface;
[0138] Debug application interfaces based on interface information, verify the debugged application interfaces, and push the interface documentation of the verified application interfaces to the cloud service platform.
[0139] In some alternative implementations, development module 502 is also used for:
[0140] Obtain the syntax structure information corresponding to the source code;
[0141] Traverse the syntax structure information to obtain the interface nodes;
[0142] The interface information of the application interface is obtained by extracting interface annotations based on the interface nodes.
[0143] In some optional implementations, the audit module 503 is also used for:
[0144] Audit the development results based on the code branches corresponding to the development results;
[0145] If the audit results do not meet the submission requirements, modify the development results, and upload the development results to the cloud service platform when the modified development results meet the submission requirements.
[0146] In some optional implementations, the audit module 503 is also used for:
[0147] Retrieve the development history of the code branch;
[0148] Based on the development history, determine the update content corresponding to the code branch, and determine the commit conditions that match the update content;
[0149] The development results will be audited based on the submission criteria.
[0150] Further functional descriptions of the above modules and units are the same as those in the corresponding embodiments described above, and will not be repeated here.
[0151] In this embodiment, the software development apparatus is presented in the form of functional units. Here, a unit refers to an ASIC (Application Specific Integrated Circuit) circuit, a processor and memory that execute one or more software or fixed programs, and / or other devices that can provide the above functions.
[0152] This invention also provides a computer device having the above-described features. Figure 5 The software development apparatus shown.
[0153] Please see Figure 6 , Figure 6 This is a schematic diagram of the structure of a computer device provided in an optional embodiment of the present invention, such as... Figure 6 As shown, the computer device includes one or more processors 10, memory 20, and interfaces for connecting the components, including high-speed interfaces and low-speed interfaces. The components communicate with each other via different buses and can be mounted on a common motherboard or otherwise installed as needed. The processors can process instructions executed within the computer device, including instructions stored in or on memory to display graphical information of a GUI on external input / output devices (such as display devices coupled to the interfaces). In some alternative implementations, multiple processors and / or multiple buses can be used with multiple memories and multiple memory modules, if desired. Similarly, multiple computer devices can be connected, each providing some of the necessary operations (e.g., as a server array, a group of blade servers, or a multiprocessor system). Figure 6 Take a processor 10 as an example.
[0154] Processor 10 may be a central processing unit, a network processor, or a combination thereof. Processor 10 may further include a hardware chip. The hardware chip may be an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or a combination thereof. The programmable logic device may be a complex programmable logic device (CAMP), a field-programmable gate array (FPGA), a general-purpose array logic (GDA), or any combination thereof.
[0155] The memory 20 stores instructions executable by at least one processor 10 to cause at least one processor 10 to perform the method shown in the above embodiments.
[0156] The memory 20 may include a program storage area and a data storage area. The program storage area may store the operating system and applications required for at least one function; the data storage area may store data created based on the use of the computer device. Furthermore, the memory 20 may include high-speed random access memory and may also include non-transitory memory, such as at least one disk storage device, flash memory device, or other non-transitory solid-state storage device. In some alternative embodiments, the memory 20 may optionally include memory remotely located relative to the processor 10, and these remote memories may be connected to the computer device via a network. Examples of such networks include, but are not limited to, the Internet, intranets, local area networks, mobile communication networks, and combinations thereof.
[0157] The memory 20 may include volatile memory, such as random access memory; the memory may also include non-volatile memory, such as flash memory, hard disk or solid-state drive; the memory 20 may also include a combination of the above types of memory.
[0158] The computer device also includes a communication interface 30 for communicating with other devices or communication networks.
[0159] This invention also provides a computer-readable storage medium. The methods described above according to embodiments of the invention can be implemented in hardware or firmware, or implemented as computer code that can be recorded on a storage medium, or implemented as computer code downloaded via a network and originally stored on a remote storage medium or a non-transitory machine-readable storage medium and then stored on a local storage medium. Thus, the methods described herein can be processed by software stored on a storage medium using a general-purpose computer, a dedicated processor, or programmable or dedicated hardware. The storage medium can be a magnetic disk, optical disk, read-only memory, random access memory, flash memory, hard disk, or solid-state drive, etc.; further, the storage medium can also include combinations of the above types of memory. It is understood that computers, processors, microprocessor controllers, or programmable hardware include storage components capable of storing or receiving software or computer code, which, when accessed and executed by the computer, processor, or hardware, implements the methods shown in the above embodiments.
[0160] A portion of this invention can be applied as a computer program product, such as computer program instructions, which, when executed by a computer, can invoke or provide the methods and / or technical solutions according to the invention through the operation of the computer. Those skilled in the art will understand that the forms in which computer program instructions exist in a computer-readable medium include, but are not limited to, source files, executable files, installation package files, etc. Correspondingly, the ways in which computer program instructions are executed by a computer include, but are not limited to: the computer directly executing the instructions, or the computer compiling the instructions and then executing the corresponding compiled program, or the computer reading and executing the instructions, or the computer reading and installing the instructions and then executing the corresponding installed program. Here, the computer-readable medium can be any available computer-readable storage medium or communication medium accessible to a computer.
[0161] Although embodiments of the invention have been described in conjunction with the accompanying drawings, those skilled in the art can make various modifications and variations without departing from the spirit and scope of the invention, and such modifications and variations all fall within the scope defined by the appended claims.
Claims
1. A software development method, characterized in that, The method includes: Based on R&D tools, cloud service information corresponding to the project to be developed in the cloud service platform is obtained, wherein the cloud service information is used to indicate the R&D information of the project to be developed during the development process; Based on the cloud service information, the project to be developed is developed in the R&D tool; The development results are audited, and the results are uploaded to the cloud service platform when the audit is passed.
2. The method according to claim 1, characterized in that, The cloud service information includes: container information of the development container corresponding to the project to be developed; The development of the project to be developed in the R&D tool based on the cloud service information includes: Based on the container information, obtain the container address of the development container; The development container is connected based on the container address, and the project to be developed is developed in the development container.
3. The method according to claim 1, characterized in that, The cloud service information includes: pipeline information and deployment unit information, wherein the pipeline information is used to indicate the code delivery and verification pipeline of the project under development, and the deployment unit information is used to indicate the information of the basic unit for managing the project under development; The development of the project to be developed in the R&D tool based on the cloud service information includes: Based on the flow information and deployment unit information, open the R&D interface corresponding to the project to be developed in the R&D tool; In the R&D interface, interface management is performed on the project to be developed based on the pipeline of the project to be developed. The pipeline is used to deliver and verify code during the development process of the project to be developed.
4. The method according to claim 3, characterized in that, The pipeline based on the project to be developed includes interface management for the project to be developed, including: The source code of the project to be developed is analyzed to obtain the interface information of the application interface; The application interface is debugged based on the interface information, and the debugged application interface is verified. The interface documentation of the verified application interface is then pushed to the cloud service platform.
5. The method according to claim 4, characterized in that, The analysis of the source code of the project to be developed to obtain the interface information of the application interface includes: Obtain the syntax structure information corresponding to the source code; Traverse the syntactic structure information to obtain the interface nodes; Based on the interface node, the interface annotation is extracted to obtain the interface information of the application interface.
6. The method according to claim 1, characterized in that, The auditing of development results, and uploading the development results to the cloud service platform upon successful auditing, includes: Audit the development results based on the code branches corresponding to the development results; If the audit results do not meet the submission requirements, the development results are modified, and the modified development results are uploaded to the cloud service platform when they meet the submission requirements.
7. The method according to claim 6, characterized in that, The auditing of the development results based on the code branch corresponding to the development results includes: Obtain the development history of the code branch; Based on the development record, determine the update content corresponding to the code branch, and determine the commit conditions that match the update content; The development results will be audited based on the submission criteria.
8. A software development apparatus, characterized in that, The device includes: The acquisition module is used to acquire cloud service information corresponding to the project to be developed in the cloud service platform based on the R&D tools, wherein the cloud service information is used to indicate the R&D information of the project to be developed during the development process; A development module is used to develop the project to be developed in the R&D tool based on the cloud service information; The audit module is used to audit the development results and upload the development results to the cloud service platform when the audit is passed.
9. A computer device, characterized in that, include: A memory and a processor are communicatively connected, the memory storing computer instructions, and the processor executing the computer instructions to perform the software development method of any one of claims 1 to 7.
10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer instructions for causing a computer to perform the software development method according to any one of claims 1 to 7.