Esto va a sonar como una no respuesta, pero la mejor arquitectura de software es la que funciona.
¿Entonces que significa eso? Depende del presupuesto, el tamaño del equipo, el cliente y el dominio, el tamaño de la base de usuarios y muchas otras cosas en cuanto a lo que hace la mejor arquitectura para un sistema.
La “arquitectura” de un programa HelloWorld es drásticamente diferente de la arquitectura de un IDE de alto funcionamiento como Visual Studio, JetBrains IntelliJ, etc. Aun así, la arquitectura del IDE es extremadamente diferente a una gran aplicación web como Netflix o Facebook.
- ¿Cuál es mejor, OmniFocus o las cosas?
- ¿Qué es la pila de tecnología de Udacity?
- ¿Qué otro software de edición de fotos hay aparte de Adobe Photoshop?
- ¿Cuáles son los momentos más difíciles al construir el software Palo Alto en los primeros días?
- ¿Cuál es el mejor software para obtener que pueda conectarme a mis máquinas basadas en Windows de forma remota dado que están conectadas a Internet?
Lo importante es hacer que el software funcione. Los principales inquilinos de la arquitectura de software son proporcionar una forma de extender el sistema sin mucha reescritura, escalar el sistema cuando sea necesario y donde sea necesario, y completar el trabajo de una manera rentable.
Estos ideales son los que impulsaron los principios SÓLIDOS de la Programación Orientada a Objetos. Al seguir SOLID pragmáticamente, la base del código es más fácil de probar, ampliar, comprender. Además, hay patrones comunes que ayudarán a impulsar una buena arquitectura para un sistema; Sin embargo, debe tenerse en cuenta que, en algunos casos, los patrones “estándar” deben aumentarse para adaptarse al dominio del sistema.
¡Espero que eso ayude! ¡Feliz codificación!