CN113342323A - Method and device for software online development - Google Patents

Method and device for software online development Download PDF

Info

Publication number
CN113342323A
CN113342323A CN202110728573.6A CN202110728573A CN113342323A CN 113342323 A CN113342323 A CN 113342323A CN 202110728573 A CN202110728573 A CN 202110728573A CN 113342323 A CN113342323 A CN 113342323A
Authority
CN
China
Prior art keywords
target service
code
java
service requirement
calling
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.)
Granted
Application number
CN202110728573.6A
Other languages
Chinese (zh)
Other versions
CN113342323B (en
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.)
Yinqing Technology Co ltd
Original Assignee
Yinqing Technology Co ltd
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 Yinqing Technology Co ltd filed Critical Yinqing Technology Co ltd
Priority to CN202110728573.6A priority Critical patent/CN113342323B/en
Publication of CN113342323A publication Critical patent/CN113342323A/en
Application granted granted Critical
Publication of CN113342323B publication Critical patent/CN113342323B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/37Compiler construction; Parser generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

The invention discloses a method and a device for software online development, wherein the method comprises the following steps: receiving a target service requirement of a user when a software main program is called; according to the target service requirement of a user, inquiring JAVA codes corresponding to the target service requirement from a code library, wherein the JAVA codes corresponding to various service requirements are stored in the code library; the method comprises the steps of dynamically compiling JAVA codes corresponding to target business requirements into class files corresponding to the target business requirements, executing a hot loading command of the class files corresponding to the target business requirements based on tangent plane calling, obtaining calling results of the class files corresponding to the target business requirements, further improving expansibility of software development by compiling the JAVA codes on line, timely meeting user requirements, testing operation results of the class files on the premise of not influencing operation of a main program based on hot loading, and improving efficiency of the software development.

Description

Method and device for software online development
Technical Field
The invention relates to the technical field of software development, in particular to a method and a device for software online development.
Background
This section is intended to provide a background or context to the embodiments of the invention that are recited in the claims. The description herein is not admitted to be prior art by inclusion in this section.
In the process of deploying the saas service in an enterprise, when a user has a customized requirement, the requirement of the user can only be added when the basic software version is upgraded, and when the user needs to compare functions or performances of different versions, the software of different versions needs to be released and deployed at the same time, so that the expandability is poor, and the efficiency is low.
In view of the above problems, no effective solution has been proposed.
Disclosure of Invention
The embodiment of the invention provides a method for software online development, which is used for improving the expandability and efficiency of software development and comprises the following steps:
receiving a target service requirement of a user when a software main program is called;
according to the target service requirement of a user, inquiring JAVA codes corresponding to the target service requirement from a code library, wherein the JAVA codes corresponding to various service requirements are stored in the code library;
dynamically compiling JAVA codes corresponding to the target service requirements into class files corresponding to the target service requirements;
and executing a hot loading command of the class file corresponding to the target service requirement based on the section calling to obtain a calling result of the class file corresponding to the target service requirement.
The embodiment of the invention provides a device for software online development, which is used for improving the expandability and efficiency of software development and comprises the following components:
the target service requirement receiving module is used for receiving the target service requirement of the user when the software main program is called;
the JAVA code query module is used for querying JAVA codes corresponding to target service requirements from a code library according to the target service requirements of users, wherein the code library stores the JAVA codes corresponding to various service requirements;
the class file compiling module is used for dynamically compiling the JAVA code corresponding to the target service requirement into a class file corresponding to the target service requirement;
and the hot loading module is used for executing a hot loading command of the class file corresponding to the target service requirement based on the section calling, so as to obtain a calling result of the class file corresponding to the target service requirement.
The embodiment of the invention also provides computer equipment which comprises a memory, a processor and a computer program which is stored on the memory and can run on the processor, wherein the processor realizes the software online development method when executing the computer program.
An embodiment of the present invention also provides a computer-readable storage medium storing a computer program for executing the method for software online development.
The embodiment of the invention comprises the following steps: receiving a target service requirement of a user when a software main program is called; according to the target service requirement of a user, inquiring JAVA codes corresponding to the target service requirement from a code library, wherein the JAVA codes corresponding to various service requirements are stored in the code library; the method comprises the steps of dynamically compiling JAVA codes corresponding to target business requirements into class files corresponding to the target business requirements, executing a hot loading command of the class files corresponding to the target business requirements based on tangent plane calling, obtaining calling results of the class files corresponding to the target business requirements, further improving expandability of software development by compiling the JAVA codes on line, timely meeting user requirements, embedding the class files corresponding to the target business requirements into a main program based on hot loading, testing operation results of the class files on the premise of not influencing operation of the main program, not needing to develop software of multiple versions, and improving efficiency of software development.
Drawings
In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings used in the description of the embodiments or the prior art will be briefly described below, it is obvious that the drawings in the following description are only some embodiments of the present invention, and for those skilled in the art, other drawings can be obtained according to the drawings without creative efforts. In the drawings:
FIG. 1 is a schematic diagram of a process flow for software online development in the practice of the present invention;
FIG. 2 is a diagram illustrating a process of building a code base according to an embodiment of the present invention;
FIG. 3 is a schematic diagram of a detailed process flow of step 103 in FIG. 1;
FIG. 4 is a diagram of an overall framework of a software online development method according to an embodiment of the present invention;
FIG. 5 is a diagram illustrating a process of loading a classLoader by a virtual machine according to an embodiment of the present invention;
FIG. 6 is a diagram illustrating an apparatus structure for online software development according to an embodiment of the present invention;
FIG. 7 is a diagram illustrating another structure of an apparatus for online software development according to an embodiment of the present invention.
Detailed Description
The technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are only a part of the embodiments of the present invention, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
As will be appreciated by one skilled in the art, embodiments of the present invention may be embodied as a system, apparatus, method or computer program product. Accordingly, the present disclosure may be embodied in the form of: entirely hardware, entirely software (including firmware, resident software, micro-code, etc.), or a combination of hardware and software.
An embodiment of the present invention provides a method for software online development, so as to improve extensibility and efficiency of software development, where fig. 1 is a schematic diagram of a process flow of software online development in the implementation of the present invention, and as shown in fig. 1, the method includes:
step 101: receiving a target service requirement of a user when a software main program is called;
step 102: according to the target service requirement of a user, inquiring JAVA codes corresponding to the target service requirement from a code library, wherein the JAVA codes corresponding to various service requirements are stored in the code library;
step 103: dynamically compiling JAVA codes corresponding to the target service requirements into class files corresponding to the target service requirements;
step 104: and executing a hot loading command of the class file corresponding to the target service requirement based on the section calling to obtain a calling result of the class file corresponding to the target service requirement.
As shown in fig. 1, an embodiment of the present invention is implemented by: receiving a target service requirement of a user when a software main program is called; according to the target service requirement of a user, inquiring JAVA codes corresponding to the target service requirement from a code library, wherein the JAVA codes corresponding to various service requirements are stored in the code library; the method comprises the steps of dynamically compiling JAVA codes corresponding to target business requirements into class files corresponding to the target business requirements, executing a hot loading command of the class files corresponding to the target business requirements based on tangent plane calling, obtaining calling results of the class files corresponding to the target business requirements, further improving expandability of software development by compiling the JAVA codes on line, timely meeting user requirements, embedding the class files corresponding to the target business requirements into a main program based on hot loading, testing operation results of the class files on the premise of not influencing operation of the main program, not needing to develop software of multiple versions, and improving efficiency of software development.
Fig. 2 is a schematic diagram of a process of establishing a code library in an embodiment of the present invention, as shown in fig. 2, in an embodiment, before querying a JAVA code corresponding to a target service requirement from a code library, the method further includes:
establishing a code base according to the following mode;
developing JAVA codes corresponding to various service requirements according to the various service requirements during software development;
calling a JAVA online compiler to pre-compile JAVA codes corresponding to various service requirements;
marking the JAVA code which is successfully precompiled as a code to be issued and/or a code to be developed, and marking the JAVA code which is failed in precompilation as the code to be developed;
and encrypting the code to be issued and the code to be developed and then storing the encrypted codes to a database.
In specific implementation, in order to quickly implement business informatization work of enterprises, when a saas service is developed, a code library can be established by configuring common functions and customized functions in an informatization process in advance, specifically, as shown in fig. 2, when software is developed, developers can develop JAVA codes corresponding to multiple business requirements according to multiple business requirements and special requirements of users through an online code editing window, then call a JAVA online compiler to pre-compile the JAVA codes corresponding to the multiple business requirements, the JAVA codes which are not pre-compiled and pass through are only marked as codes to be developed, the JAVA codes which are pre-compiled and pass through are stored into a database or continuously compiled after being encrypted, the JAVA codes which are pre-compiled and pass through can be marked as codes to be released and/or codes to be developed, the JAVA codes can be stored into multiple versions after being encrypted, and the JAVA codes which are pre-compiled and pass through are marked as codes to be developed so as to facilitate subsequent continuous secondary development of user requirements, the code to be released can replace the code of the current version or be stored as the code of the new version, the code to be released can be marked as a specified running version, and a subsequent system runs the specified version by default.
In one embodiment, the JAVA code corresponding to the target business requirement comprises a plurality of versions;
the class file corresponding to the target service requirement comprises the version number of the JAVA code.
Fig. 3 is a schematic diagram of a specific process in step 103 in fig. 1, for example, the JAVA code corresponding to the target service requirement is dynamically compiled into a class file corresponding to the target service requirement, which includes:
step 301: when the JAVA code corresponding to the target service requirement is the code to be developed, performing secondary development on the JAVA code corresponding to the target service requirement;
step 302: when the JAVA code corresponding to the target service requirement is the code to be issued, dynamically compiling the JAVA code corresponding to the target service requirement into a class file corresponding to the target service requirement;
step 303: calling a JAVA online compiler to pre-compile a JAVA code corresponding to the target service requirement after secondary development;
step 304: and when the pre-compiling is successful, dynamically compiling the JAVA codes corresponding to the target service requirements into class files corresponding to the target service requirements.
In specific implementation, fig. 4 is a schematic diagram of an overall framework of a software online development method in the embodiment of the present invention, as shown in fig. 4, when a main software program is called in step 101, a target service requirement of a user may be received, in step 102, a JAVA code corresponding to the target service requirement may be queried from a code library according to the target service requirement of the user, then, in step 103, the JAVA code corresponding to the target service requirement may be decrypted first, then, the JAVA code corresponding to the target service requirement may be dynamically compiled into a class file corresponding to the target service requirement, specifically, when the JAVA code corresponding to the target service requirement is a code to be developed, a development interface of the code to be developed may be called through section programming, based on a customized requirement of the user, a standard code writing manner is adopted in a corresponding specification, and JAVA code corresponding to the target service requirement is developed secondarily, when the JAVA code corresponding to the target service requirement is a code to be issued, the JAVA code corresponding to the target service requirement can be dynamically compiled into a class file corresponding to the target service requirement, then a JAVA online compiler is called to perform precompilation on the JAVA code corresponding to the target service requirement after secondary development, when the precompilation is successful, the JAVA code corresponding to the target service requirement is dynamically compiled into the class file corresponding to the target service requirement, then the JAVA class package is loaded under the condition of not restarting a server by compiling the JAVA code online and dynamically loading the compiled result, online compilation and online check can be performed, the expansibility of software development is improved, the user requirement can be met in time, a simpler section can be provided at a customized place commonly used by a user through section programming, and a common developer only needs to pay attention to the realization of the service, the underlying development of the system is not concerned.
It should be noted that, under normal conditions, loading of classes in JAVA is performed through a path of a class package, and class package collisions are easily generated when the same class package is loaded, so as to be shown in fig. 4, in the embodiment of the present invention, a JAVA (a) code corresponding to a target service requirement includes multiple versions, for example, JAVA (a1), JAVA (a2), JAVA (A3), and the like, and a class file corresponding to the target service requirement includes a version number of the JAVA code, for example: class (A1), class (A2) and class (A3), the embodiment of the invention solves the problem of java package conflict by adding version management to codes under the same package and generating class files with version numbers during compiling.
In an embodiment, in step 104, based on the section call, executing a hot load command of the class file corresponding to the target service requirement to obtain a call result of the class file corresponding to the target service requirement, where the call result includes:
and respectively executing hot loading commands of the class files of each version corresponding to the target service requirement based on the section calling to obtain calling results of the class files of each version corresponding to the target service requirement.
In specific implementation, fig. 5 is a schematic diagram of a process of loading classLoader by a virtual machine in the embodiment of the present invention, and as shown in fig. 5, for a Java application program, hot loading is to update a Java class file at runtime, and includes the following steps: destroying the existing custom ClassLoader; and updating the class file, and creating a new ClassLoader to load the updated class file.
In step 104, the main program may respectively execute a hot loading command of the class files of each version corresponding to the target service requirement based on the section call to obtain a call result of the class files of each version corresponding to the target service requirement, and then may deploy the class files of different versions in the same system based on the hot loading to test the operation effect of the class files of different versions, and may embed a debugging level code at any time during the operation of the system, observe the operation result and track the operation condition of the key point in real time without affecting the operation of the system.
It should be noted that while the operations of the method of the present invention are depicted in the drawings in a particular order, this does not require or imply that the operations must be performed in this particular order, or that all of the illustrated operations must be performed, to achieve desirable results. Additionally or alternatively, certain steps may be omitted, multiple steps combined into one step execution, and/or one step broken down into multiple step executions.
Based on the same inventive concept, the embodiment of the present invention further provides a device for software online development, such as the following embodiments. Because the principle of solving the problems of the device for the online software development is similar to that of the method for the online software development, the implementation of the device can refer to the implementation of the method, and repeated details are not repeated. As used hereinafter, the term "unit" or "module" may be a combination of software and/or hardware that implements a predetermined function. Although the means described in the embodiments below are preferably implemented in software, an implementation in hardware, or a combination of software and hardware is also possible and contemplated.
An embodiment of the present invention provides an apparatus for online software development, so as to improve extensibility and efficiency of software development, where fig. 6 is a schematic diagram of an apparatus for online software development in an embodiment of the present invention, and as shown in fig. 6, the apparatus includes:
the target service requirement receiving module 01 is used for receiving the target service requirement of a user when a software main program is called;
the JAVA code query module 02 is used for querying JAVA codes corresponding to target service requirements from a code library according to the target service requirements of users, wherein the code library stores the JAVA codes corresponding to various service requirements;
the class file compiling module 03 is used for dynamically compiling the JAVA codes corresponding to the target service requirements into class files corresponding to the target service requirements;
and the hot loading module 04 is used for executing a hot loading command of the class file corresponding to the target service requirement based on the section calling, so as to obtain a calling result of the class file corresponding to the target service requirement.
Fig. 7 is a schematic diagram of another structure of an apparatus for online software development according to an embodiment of the present invention, as shown in fig. 7, in an embodiment, the apparatus further includes: a code base establishment module 05 for:
before a JAVA code corresponding to a target service requirement is inquired from a code library, the code library is established in the following mode;
developing JAVA codes corresponding to various service requirements according to the various service requirements during software development;
calling a JAVA online compiler to pre-compile JAVA codes corresponding to various service requirements;
marking the JAVA code which is successfully precompiled as a code to be issued and/or a code to be developed, and marking the JAVA code which is failed in precompilation as the code to be developed;
and encrypting the code to be issued and the code to be developed and then storing the encrypted codes to a database.
In one embodiment, class file compiling module 03 is specifically configured to:
when the JAVA code corresponding to the target service requirement is the code to be developed, performing secondary development on the JAVA code corresponding to the target service requirement;
when the JAVA code corresponding to the target service requirement is the code to be issued, dynamically compiling the JAVA code corresponding to the target service requirement into a class file corresponding to the target service requirement;
calling a JAVA online compiler to pre-compile a JAVA code corresponding to the target service requirement after secondary development;
and when the pre-compiling is successful, dynamically compiling the JAVA codes corresponding to the target service requirements into class files corresponding to the target service requirements.
In one embodiment, the JAVA code corresponding to the target business requirement comprises a plurality of versions; the class file corresponding to the target service requirement comprises a JAVA code version number;
the thermal loading module 04 is specifically configured to:
and respectively executing hot loading commands of the class files of each version corresponding to the target service requirement based on the section calling to obtain calling results of the class files of each version corresponding to the target service requirement.
The embodiment of the invention also provides computer equipment which comprises a memory, a processor and a computer program which is stored on the memory and can run on the processor, wherein the processor realizes the software online development method when executing the computer program.
An embodiment of the present invention also provides a computer-readable storage medium storing a computer program for executing the method for software online development.
The following is a specific example to facilitate an understanding of how the invention may be practiced.
During software development, developers develop JAVA codes corresponding to multiple service requirements according to the multiple service requirements and special requirements of users through an online code editing window, call a JAVA online compiler, perform precompilation on the JAVA codes corresponding to the multiple service requirements, mark the JAVA codes which are not passed through precompilation as codes to be developed, mark the JAVA codes which are passed through precompilation as codes to be issued and/or codes to be developed, encrypt the codes to be issued and the codes to be developed and store the codes to be issued and the codes to be developed into a database to establish a code library, and then execute the following steps as shown in FIG. 3:
the first step is as follows: receiving a target service requirement of a user when a software main program is called;
the second step is that: according to the target service requirement of a user, a JAVA code corresponding to the target service requirement is inquired from a code library, wherein the JAVA (A) code corresponding to the target service requirement comprises a plurality of versions, JAVA (A1), JAVA (A2) and JAVA (A3);
the third step: decrypting JAVA codes corresponding to target service requirements, calling a development interface of the codes to be developed through section programming when the JAVA codes corresponding to the target service requirements are the codes to be developed, calling a JAVA online compiler to pre-compile the JAVA codes corresponding to the target service requirements after secondary development based on the customized requirements of users by adopting a standard code compiling mode in corresponding specifications, and dynamically compiling the JAVA codes corresponding to the target service requirements into class files corresponding to the target service requirements when the pre-compiling is successful, wherein the class files corresponding to the target service requirements comprise the version number of the JAVA codes, class (A1), class (A2) and class (A3);
the fourth step: when the JAVA code corresponding to the target service requirement is the code to be issued, dynamically compiling the JAVA code corresponding to the target service requirement into a class file corresponding to the target service requirement;
the fifth step: and the main program respectively executes hot loading commands of class files of various versions corresponding to the target service requirement based on the section calling, so as to obtain calling results, namely a result 1, a result 2 and a result 3, of the class files of various versions corresponding to the target service requirement.
In summary, the embodiment of the present invention provides: receiving a target service requirement of a user when a software main program is called; according to the target service requirement of a user, inquiring JAVA codes corresponding to the target service requirement from a code library, wherein the JAVA codes corresponding to various service requirements are stored in the code library; the method comprises the steps of dynamically compiling JAVA codes corresponding to target business requirements into class files corresponding to the target business requirements, executing a hot loading command of the class files corresponding to the target business requirements based on tangent plane calling, obtaining calling results of the class files corresponding to the target business requirements, further improving expandability of software development by compiling the JAVA codes on line, timely meeting user requirements, embedding the class files corresponding to the target business requirements into a main program based on hot loading, testing operation results of the class files on the premise of not influencing operation of the main program, not needing to develop software of multiple versions, and improving efficiency of software development.
In addition, the embodiment of the invention realizes loading the JAVA package under the condition of not restarting the server by compiling the JAVA code online and dynamically loading the compiled result, can encrypt and store the JAVA code, compile online, check online, repair problems online and dynamically operate, does not have the risk of code decompiling, improves the expansibility of software development, and can quickly meet more detailed requirements of users on the basis of the existing saas service platform. A simpler tangent plane can be provided in a customized place commonly used by a user through tangent plane programming, common developers only need to pay attention to the realization of the service, and the bottom-layer development of the system does not need to pay attention to the system.
The embodiment of the invention can deploy class files of different versions in the same system based on hot loading, test the operation effect of the class files of different versions, embed codes of debugging levels at any time in the operation process of the system, observe the operation result and track the operation condition of the key point in real time without influencing the operation process of the system.
Although the present invention provides method steps as described in the examples or flowcharts, more or fewer steps may be included based on routine or non-inventive labor. The order of steps recited in the embodiments is merely one manner of performing the steps in a multitude of orders and does not represent the only order of execution. When an actual apparatus or client product executes, it may execute sequentially or in parallel (e.g., in the context of parallel processors or multi-threaded processing) according to the embodiments or methods shown in the figures.
As will be appreciated by one skilled in the art, embodiments of the present description may be provided as a method, apparatus (system) or computer program product. Accordingly, embodiments of the present description may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present invention may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and the like) having computer-usable program code embodied therein.
The present invention is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each flow and/or block of the flow diagrams and/or block diagrams, and combinations of flows and/or blocks in the flow diagrams and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
The embodiments in the present specification are described in a progressive manner, and the same and similar parts among the embodiments are referred to each other, and each embodiment focuses on the differences from the other embodiments. In particular, for the system embodiment, since it is substantially similar to the method embodiment, the description is simple, and for the relevant points, reference may be made to the partial description of the method embodiment. In this document, relational terms such as first and second, and the like may be used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. Also, the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. The terms "upper", "lower", and the like, indicate orientations or positional relationships based on the orientations or positional relationships shown in the drawings, and are only for convenience in describing the present invention and simplifying the description, but do not indicate or imply that the referred devices or elements must have a specific orientation, be constructed and operated in a specific orientation, and thus, should not be construed as limiting the present invention. Unless expressly stated or limited otherwise, the terms "mounted," "connected," and "connected" are intended to be inclusive and mean, for example, that they may be fixedly connected, detachably connected, or integrally connected; can be mechanically or electrically connected; they may be connected directly or indirectly through intervening media, or they may be interconnected between two elements. The specific meanings of the above terms in the present invention can be understood by those skilled in the art according to specific situations. It should be noted that the embodiments and features of the embodiments may be combined with each other without conflict. The present invention is not limited to any single aspect, nor is it limited to any single embodiment, nor is it limited to any combination and/or permutation of these aspects and/or embodiments. Moreover, each aspect and/or embodiment of the present invention may be utilized alone or in combination with one or more other aspects and/or embodiments thereof.
Finally, it should be noted that: the above embodiments are only used to illustrate the technical solution of the present invention, and not to limit the same; while the invention has been described in detail and with reference to the foregoing embodiments, it will be understood by those skilled in the art that: the technical solutions described in the foregoing embodiments may still be modified, or some or all of the technical features may be equivalently replaced; such modifications and substitutions do not depart from the spirit and scope of the present invention, and they should be construed as being included in the following claims and description.

Claims (10)

1. A method for software online development, comprising:
receiving a target service requirement of a user when a software main program is called;
according to the target service requirement of a user, inquiring JAVA codes corresponding to the target service requirement from a code library, wherein the JAVA codes corresponding to various service requirements are stored in the code library;
dynamically compiling JAVA codes corresponding to the target service requirements into class files corresponding to the target service requirements;
and executing a hot loading command of the class file corresponding to the target service requirement based on the section calling to obtain a calling result of the class file corresponding to the target service requirement.
2. The method of claim 1, before querying the JAVA code corresponding to the target service requirement from the code library, further comprising:
establishing a code base according to the following mode;
developing JAVA codes corresponding to various service requirements according to the various service requirements during software development;
calling a JAVA online compiler to pre-compile JAVA codes corresponding to various service requirements;
marking the JAVA code which is successfully precompiled as a code to be issued and/or a code to be developed, and marking the JAVA code which is failed in precompilation as the code to be developed;
and encrypting the code to be issued and the code to be developed and then storing the encrypted codes to a database.
3. The method of claim 2, wherein dynamically compiling the JAVA code corresponding to the target service requirement into a class file corresponding to the target service requirement comprises:
when the JAVA code corresponding to the target service requirement is the code to be developed, performing secondary development on the JAVA code corresponding to the target service requirement;
when the JAVA code corresponding to the target service requirement is the code to be issued, dynamically compiling the JAVA code corresponding to the target service requirement into a class file corresponding to the target service requirement;
calling a JAVA online compiler to pre-compile a JAVA code corresponding to the target service requirement after secondary development;
and when the pre-compiling is successful, dynamically compiling the JAVA codes corresponding to the target service requirements into class files corresponding to the target service requirements.
4. The method of claim 1, wherein the JAVA code corresponding to the target business requirement comprises a plurality of versions; the class file corresponding to the target service requirement comprises a JAVA code version number;
based on the section calling, executing a hot loading command of the class file corresponding to the target service requirement to obtain a calling result of the class file corresponding to the target service requirement, wherein the calling result comprises the following steps:
and respectively executing hot loading commands of the class files of each version corresponding to the target service requirement based on the section calling to obtain calling results of the class files of each version corresponding to the target service requirement.
5. An apparatus for online development of software, comprising:
the target service requirement receiving module is used for receiving the target service requirement of the user when the software main program is called;
the JAVA code query module is used for querying JAVA codes corresponding to target service requirements from a code library according to the target service requirements of users, wherein the code library stores the JAVA codes corresponding to various service requirements;
the class file compiling module is used for dynamically compiling the JAVA code corresponding to the target service requirement into a class file corresponding to the target service requirement;
and the hot loading module is used for executing a hot loading command of the class file corresponding to the target service requirement based on the section calling, so as to obtain a calling result of the class file corresponding to the target service requirement.
6. The apparatus of claim 5, further comprising: a code base establishment module to:
before a JAVA code corresponding to a target service requirement is inquired from a code library, the code library is established in the following mode;
developing JAVA codes corresponding to various service requirements according to the various service requirements during software development;
calling a JAVA online compiler to pre-compile JAVA codes corresponding to various service requirements;
marking the JAVA code which is successfully precompiled as a code to be issued and/or a code to be developed, and marking the JAVA code which is failed in precompilation as the code to be developed;
and encrypting the code to be issued and the code to be developed and then storing the encrypted codes to a database.
7. The apparatus of claim 6, wherein the class file compilation module is specifically configured to:
when the JAVA code corresponding to the target service requirement is the code to be developed, performing secondary development on the JAVA code corresponding to the target service requirement;
when the JAVA code corresponding to the target service requirement is the code to be issued, dynamically compiling the JAVA code corresponding to the target service requirement into a class file corresponding to the target service requirement;
calling a JAVA online compiler to pre-compile a JAVA code corresponding to the target service requirement after secondary development;
and when the pre-compiling is successful, dynamically compiling the JAVA codes corresponding to the target service requirements into class files corresponding to the target service requirements.
8. The apparatus of claim 5, wherein the JAVA code corresponding to the target business requirement comprises a plurality of versions; the class file corresponding to the target service requirement comprises a JAVA code version number;
the hot loading module is specifically used for:
and respectively executing hot loading commands of the class files of each version corresponding to the target service requirement based on the section calling to obtain calling results of the class files of each version corresponding to the target service requirement.
9. A computer device comprising a memory, a processor and a computer program stored on the memory and executable on the processor, characterized in that the processor implements the method of any of claims 1 to 4 when executing the computer program.
10. A computer-readable storage medium, characterized in that the computer-readable storage medium stores a computer program for executing the method of any one of claims 1 to 4.
CN202110728573.6A 2021-06-29 2021-06-29 Method and device for online development of software Active CN113342323B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110728573.6A CN113342323B (en) 2021-06-29 2021-06-29 Method and device for online development of software

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110728573.6A CN113342323B (en) 2021-06-29 2021-06-29 Method and device for online development of software

Publications (2)

Publication Number Publication Date
CN113342323A true CN113342323A (en) 2021-09-03
CN113342323B CN113342323B (en) 2024-03-29

Family

ID=77481373

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110728573.6A Active CN113342323B (en) 2021-06-29 2021-06-29 Method and device for online development of software

Country Status (1)

Country Link
CN (1) CN113342323B (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113703820A (en) * 2021-09-23 2021-11-26 中国银行股份有限公司 Method and device for hot loading source code, electronic equipment and storage medium
CN113703740A (en) * 2021-09-17 2021-11-26 厦门中盾安信科技有限公司 Method and system for configuring and executing service request command based on service rule
CN115373725A (en) * 2022-10-24 2022-11-22 布谷云软件技术(南京)有限公司 Software development management system and method with requirement as granularity

Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6110226A (en) * 1998-02-19 2000-08-29 Cygnus Solutions Java development environment using optimizing ahead-of-time compiler
US6151703A (en) * 1996-05-20 2000-11-21 Inprise Corporation Development system with methods for just-in-time compilation of programs
US6842894B1 (en) * 1999-04-05 2005-01-11 Gateway, Inc. Dynamic Compiling
US6973646B1 (en) * 2000-07-21 2005-12-06 International Business Machines Corporation Method for compiling program components in a mixed static and dynamic environment
US20070169110A1 (en) * 2005-10-27 2007-07-19 Nikhil Gupta Method and system for dynamically providing native libraries and their dependencies
US20100281458A1 (en) * 2009-04-30 2010-11-04 Business Objects, S.A. Application modification framework
CN103885875A (en) * 2012-12-21 2014-06-25 中国银联股份有限公司 Device and method for verifying scripts
US20150135170A1 (en) * 2013-11-14 2015-05-14 Google Inc. Methods and Systems for Providing Compatibility of Applications with Multiple Versions of an Operating System
CN106250178A (en) * 2016-07-26 2016-12-21 北京北森云计算股份有限公司 The method that system dynamics function intercepts extension online is realized by the compiling of multilingual cloud
CN106648822A (en) * 2016-12-30 2017-05-10 深圳市九洲电器有限公司 User interface character string screening method and system
CN106775893A (en) * 2016-12-30 2017-05-31 北京小米移动软件有限公司 To the method and device of program precompile
CN107168758A (en) * 2017-04-12 2017-09-15 北京小米移动软件有限公司 The code compilation inspection method and device of many code libraries
US20180074852A1 (en) * 2016-09-14 2018-03-15 Salesforce.Com, Inc. Compact Task Deployment for Stream Processing Systems
CN107832099A (en) * 2017-10-26 2018-03-23 咪咕数字传媒有限公司 A kind of client release compatible method, apparatus and storage medium
CN108446223A (en) * 2018-03-06 2018-08-24 吉旗(成都)科技有限公司 A kind of business scenario automated testing method based on on-the-flier compiler
CN110262818A (en) * 2019-05-29 2019-09-20 北京达佳互联信息技术有限公司 The hot update method of Java code, device, electronic equipment and storage medium
CN111736916A (en) * 2020-06-08 2020-10-02 北京达佳互联信息技术有限公司 Dynamic expansion method and device based on Java language, electronic equipment and storage medium
CN112199110A (en) * 2020-10-16 2021-01-08 上海睿成软件有限公司 Restart-free operation and maintenance upgrading method, system, device and medium
CN112947934A (en) * 2021-02-25 2021-06-11 山东爱城市网信息技术有限公司 Method, device and medium for dynamically transforming business logic

Patent Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6151703A (en) * 1996-05-20 2000-11-21 Inprise Corporation Development system with methods for just-in-time compilation of programs
US6110226A (en) * 1998-02-19 2000-08-29 Cygnus Solutions Java development environment using optimizing ahead-of-time compiler
US6842894B1 (en) * 1999-04-05 2005-01-11 Gateway, Inc. Dynamic Compiling
US6973646B1 (en) * 2000-07-21 2005-12-06 International Business Machines Corporation Method for compiling program components in a mixed static and dynamic environment
US20070169110A1 (en) * 2005-10-27 2007-07-19 Nikhil Gupta Method and system for dynamically providing native libraries and their dependencies
US20100281458A1 (en) * 2009-04-30 2010-11-04 Business Objects, S.A. Application modification framework
CN103885875A (en) * 2012-12-21 2014-06-25 中国银联股份有限公司 Device and method for verifying scripts
US20150135170A1 (en) * 2013-11-14 2015-05-14 Google Inc. Methods and Systems for Providing Compatibility of Applications with Multiple Versions of an Operating System
CN106250178A (en) * 2016-07-26 2016-12-21 北京北森云计算股份有限公司 The method that system dynamics function intercepts extension online is realized by the compiling of multilingual cloud
US20180074852A1 (en) * 2016-09-14 2018-03-15 Salesforce.Com, Inc. Compact Task Deployment for Stream Processing Systems
CN106648822A (en) * 2016-12-30 2017-05-10 深圳市九洲电器有限公司 User interface character string screening method and system
CN106775893A (en) * 2016-12-30 2017-05-31 北京小米移动软件有限公司 To the method and device of program precompile
CN107168758A (en) * 2017-04-12 2017-09-15 北京小米移动软件有限公司 The code compilation inspection method and device of many code libraries
CN107832099A (en) * 2017-10-26 2018-03-23 咪咕数字传媒有限公司 A kind of client release compatible method, apparatus and storage medium
CN108446223A (en) * 2018-03-06 2018-08-24 吉旗(成都)科技有限公司 A kind of business scenario automated testing method based on on-the-flier compiler
CN110262818A (en) * 2019-05-29 2019-09-20 北京达佳互联信息技术有限公司 The hot update method of Java code, device, electronic equipment and storage medium
CN111736916A (en) * 2020-06-08 2020-10-02 北京达佳互联信息技术有限公司 Dynamic expansion method and device based on Java language, electronic equipment and storage medium
CN112199110A (en) * 2020-10-16 2021-01-08 上海睿成软件有限公司 Restart-free operation and maintenance upgrading method, system, device and medium
CN112947934A (en) * 2021-02-25 2021-06-11 山东爱城市网信息技术有限公司 Method, device and medium for dynamically transforming business logic

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈丁等: "Java EE程序设计教程", 西安电子科技大学出版社, pages: 336 - 339 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113703740A (en) * 2021-09-17 2021-11-26 厦门中盾安信科技有限公司 Method and system for configuring and executing service request command based on service rule
CN113703820A (en) * 2021-09-23 2021-11-26 中国银行股份有限公司 Method and device for hot loading source code, electronic equipment and storage medium
CN115373725A (en) * 2022-10-24 2022-11-22 布谷云软件技术(南京)有限公司 Software development management system and method with requirement as granularity

Also Published As

Publication number Publication date
CN113342323B (en) 2024-03-29

Similar Documents

Publication Publication Date Title
EP3518098B1 (en) Cross platform content management and distribution system
US10019256B2 (en) Systems and methods for incremental software development
CN111142903B (en) Configuration file interactive updating method and device based on file comparison
CN113342323B (en) Method and device for online development of software
Memon et al. Skoll: Distributed continuous quality assurance
US7971201B2 (en) Multiple operating device version software generating system and multiple operating device version software generation support program and method
CN107168749B (en) Compiling method, device, equipment and computer readable storage medium
CN107678748B (en) Source code file compiling method and device
GB2508643A (en) Method for Performing a Regression Test after Modifying Source Code File
CN110059456B (en) Code protection method, code protection device, storage medium and electronic equipment
US9459986B2 (en) Automatic generation of analysis-equivalent application constructs
Krüger et al. Cognicrypt gen: generating code for the secure usage of crypto apis
JP7015625B2 (en) Step-back mechanism for developing and diagnosing process applications
KR101231746B1 (en) Software Development system in SaaS environment
US9396239B2 (en) Compiling method, storage medium and compiling apparatus
CN114174983B (en) Method and system for optimized automatic verification of advanced constructs
KR20190075508A (en) Computing system and method for automatically generating embedded software on virtualized system
Di Ruscio et al. A model‐driven approach to detect faults in FOSS systems
Markomanolis et al. Time-Independent Trace Acquisition Framework--A Grid'5000 How-to
RU2521265C2 (en) System and method for automatic processing of software system errors
CN113672269B (en) Data processing method, system, electronic device and program product
CN111209002B (en) Development and deployment method for program package, server and computer readable storage medium
KR100636315B1 (en) System and method for processing of performance statics data management
JP2009098963A (en) Automatic module generation system
Morozov et al. Automatic distributed workflow generation with GridMD library

Legal Events

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