OPTIMIZATION OF THE DEVELOPMENT PROCESS OF MONOLITHIC MULTI-MODULE PROJECTS IN JAVA
DOI:
https://doi.org/10.20998/2079-0023.2024.01.13Keywords:
monolithic architecture, multi-module architecture, Java, project build, module, development, project deploymentAbstract
In recent years, there has been an increase in the complexity of Java software development and a change in the scope of projects, including an increase in the number of modules in projects. The multi-modularity of projects, although it improves manageability to a certain extent, but often creates a number of problems that can complicate development and, a problem that will appear in the future, require more resources to support. This article will analyze the main problems of monolithic multi-module Java projects and will try to consider a number of possible solutions to overcome the above problems. The article discusses the peculiarities of working with multi-module monolithic projects using Java as the main programming language. The purpose of this article is to identify features and obstacles using the above architectural approach of the software, analysis of the main possible issues of working with the monolithic multi-module Java projects, as well as providing recommendations for eliminating these obstacles or describing the features of the process that could help engineers in supporting this kind of projects. In other word the main goal of this work is to create recommendations, provide modern best practices for working with monolithic multi-modular software architecture and the most popular modern technological solutions used in corporate development. The proposed recommendations allow the team, primarily developers and the engineering side, to avoid possible obstacles that lead to the loss of efficiency of the monolithic software development process. The most important advantage, from the recommendations given in the article, is the optimization of resource costs (time, money and labor) for the development process. As a result of the article, a general list of recommendations was obtained, which allows the developer to better analyze what changes in the project should (if necessary) be made to optimize the development, assembly and deployment processes of a monolithic Java project, as well as advice before designing new software to avoid the main obstacles of monolithic architecture in the future.
References
Atlassian. Microservices vs. monolithic architecture. Available at: https://www.atlassian.com/microservices/microservices-architecture/microservices-vs-monolith (accessed 10.05.2024).
Martin, R. C. Clean Architecture. Prentice Hall, 2017. 432 p.
Microservices.io. Pattern: Monolithic Architecture. Available at: https://microservices.io/patterns/monolithic.html (accessed 10.05.2024).
Fowler M. Patterns of Enterprise Application Architecture. Addison-Wesley Professional, 2003. 560 p.
Android Developers. Guide to Android app modularization. Available at: https://developer.android.com/topic/modularization (accessed 10.05.2024).
Bloch, J. Effective Java. Addison-Wesley Professional, 2017. 416 p.
Franklin, C. A Guide to Java 9 Modularity. Baeldung. Available at: https://www.baeldung.com/java-9-modularity (accessed 10.05.2024).
Parlog, N. The Java Module System. Manning Publications Co. LLC, 2019. 440 p.
Lalou, J. Apache Maven Dependency Management. Packt Publishing, 2013. 158 p.
Muschko B. Gradle in action. Manning Publications Co. LLC, 2014. 480 p.
Mouat A. Using docker: developing and deploying software with containers. O'Reilly Media, Incorporated, 2015. 354 p.
Oggl B., Kofler M. Docker: practical guide for developers and devops teams (the rheinwerk computing). Rheinwerk Computing, 2023. 491 p.
Downloads
Published
How to Cite
Issue
Section
License
This work is licensed under a Creative Commons Attribution 4.0 International License.
Authors who publish with this journal agree to the following terms:
- Authors retain copyright and grant the journal right of first publication with the work simultaneously licensed under a Creative Commons Attribution License that allows others to share the work with an acknowledgement of the work's authorship and initial publication in this journal.
- Authors are able to enter into separate, additional contractual arrangements for the non-exclusive distribution of the journal's published version of the work (e.g., post it to an institutional repository or publish it in a book), with an acknowledgement of its initial publication in this journal.
- Authors are permitted and encouraged to post their work online (e.g., in institutional repositories or on their website) prior to and during the submission process, as it can lead to productive exchanges, as well as earlier and greater citation of published work (See The Effect of Open Access).