Software needs to be well built and perform well. For many projects Enterprise Architecture/Applications (EA) is desired. EA can mean different things to different businesses. To me EA represents, scalable, modular, fit for purpose software which follows best practise to deliver stable and efficient execution.
EA requires good object orientated (OO) design principles, such as the SOLID principles. (Single responsibility, open/close – allowing classes to be extended, Liskov Substitution Principle ensuring that the extended classes follow substitution rules, Interface Segregation principle, and Dependency inversion)
OO in itself doesn’t make software enterprise software! Enterprise software typically follows one or more architectural patterns, such as layered modelling (presentation/business logic/data layers), the application will be scalable, utilise a distributed cache or similar. The database or databases will likely have a distributed component with specific focus on performance and integrity.
Enterprise applications have a defined structure, well planned, documented and built. It should also follow the CIA triad, maintaining Confidentiality, Integrity and Availability.
Software should be maintainable, and written in the most appropriate language for the goal, which in many cases can mean a mixed technology stack.
If you’re looking to build a new application or to rearchitect an existing application, feel free to get in touch.
Some useful reading/links;
Solid principles
https://www.digitalocean.com/community/conceptual_articles/s-o-l-i-d-the-first-five-principles-of-object-oriented-design
Software Architecture Patterns
https://get.oreilly.com/rs/107-FMS-070/images/Software-Architecture-Patterns.pdf
https://www.youtube.com/watch?v=BrT3AO8bVQY
Distributed cache
https://hazelcast.com/glossary/distributed-cache/
Related Software Articles