Developing an Intra-program Messaging Utility in C++
Bjerreskov, Rasmus Storm (2023)
Bjerreskov, Rasmus Storm
2023
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2023120333768
https://urn.fi/URN:NBN:fi:amk-2023120333768
Tiivistelmä
This project was carried out on behalf of a telecommunication company. The aim of the project was to create a C++ library for the purpose of supporting a publish-subscribe programming style within one of their programs. The intention was to reduce the degree of coupling within the program by allowing classes to transmit data to other classes through the developed utility. The project was developed in C++17, and GoogleTest was used for unit testing.
Care was taken to ensure the created utility would be easy to use, yet capable of sending arbitrary information. To ensure the created utility was well-designed with regards to user friendliness and future development, the project made use of the SOLID principles as described by Robert C. Martin. The project also incorporated the RAII principle and the Observer Design Patten.
The developed utility allows classes to transmit arbitrary objects to subscribers of that type of object without being coupled to the destination. As such, the goal of creating a powerful, yet simple publish-subscribe utility was achieved. The developed utility has some possibility of future expansion thanks to following the SOLID principles, but a list of aspects that could be further improved in the future are also identified. These include ways to improve performance and changes that would add an even greater degree of flexibility for future expansion of the utility.
Care was taken to ensure the created utility would be easy to use, yet capable of sending arbitrary information. To ensure the created utility was well-designed with regards to user friendliness and future development, the project made use of the SOLID principles as described by Robert C. Martin. The project also incorporated the RAII principle and the Observer Design Patten.
The developed utility allows classes to transmit arbitrary objects to subscribers of that type of object without being coupled to the destination. As such, the goal of creating a powerful, yet simple publish-subscribe utility was achieved. The developed utility has some possibility of future expansion thanks to following the SOLID principles, but a list of aspects that could be further improved in the future are also identified. These include ways to improve performance and changes that would add an even greater degree of flexibility for future expansion of the utility.