📄️ Arquitectura de software
Cuando te metés en el diseño de software, a menudo vas a escuchar sobre Clean Architecture. Casi que se volvió el plano por excelencia para diseñar sistemas fáciles de mantener. Sin embargo, en mi laburo actual, la Hexagonal Architecture apareció como una alternativa interesante. Echemos un vistazo a las dos, sus detalles, y por qué la Hexagonal quizás se vuelva aún más popular pronto.
📄️ Arquitectura de aplicación
Hay varias maneras de construir aplicaciones, y cada enfoque tiene su propio estilo, beneficios y desafíos.
📄️ ¿Es full stack siquiera una cosa?
Me gustaría empezar este documento con un comentario que encontré en un video de YouTube y me quedó grabado:
📄️ Servidor y Serverless
Nuestras aplicaciones, al final, necesitan correr en algún lado. Ese "algún lado" generalmente se reduce a dos opciones: servidores tradicionales (donde vos jugás a ser el dueño de la casa) o entornos serverless (donde sos un nómada en la nube). Ambos enfoques mantienen tu código corriendo en las nubes, pero uno te da las llaves de la sala de servidores mientras que el otro te pasa una cuenta tipo Uber. Analicemos estas opciones.
📄️ Comunicación entre sistemas
Cuando los sistemas necesitan hablar, tienen dos maneras fundamentales de comunicarse: de forma sincrónica (esperando respuestas inmediatas) o asincrónica (disparar y olvidarse). Entender esta división te va a ayudar a debuggear problemas, elegir tecnologías y explicar decisiones arquitectónicas a tu equipo.
📄️ IDE
Técnicamente, podrías escribir apps de Spring Boot en el Bloc de Notas y compilarlas manualmente por línea de comandos—pero eso es como construir una casa con un destornillador.
📄️ Control de versiones
No construirías una casa sin arnés de seguridad. No programes sin control de versiones.
📄️ Formatters
Un formatter estiliza automáticamente tu código (indentación, espacios, saltos de línea) para asegurar consistencia. ¡Se terminaron los debates sobre tabs vs. spaces!
📄️ Herramientas de construcción de Java
Tu herramienta de construcción es como un lavavajillas—vos solo querés platos limpios, no un doctorado en ingeniería de electrodomésticos. Cortemos con el ruido de XML/Groovy.
📄️ Interfaces e implementaciones
Dividamos esto en dos partes: la interfaz (el "qué") y la implementación (el "cómo").