Referencias¶
La fuente original¶
- Alistair Cockburn, Hexagonal Architecture (Ports and Adapters), 2005. El artículo que propuso el patrón: https://alistair.cockburn.us/hexagonal-architecture/
Para profundizar en hexagonal y sus alternativas¶
- Tom Hombergs, Get Your Hands Dirty on Clean Architecture. El libro más práctico sobre hexagonal con Spring. La estructura de paquetes de esta guía (
port.in,port.out,service, adaptadores) sigue esa línea. - Robert C. Martin, Clean Architecture. Las capas concéntricas y la regla de dependencias.
- Jeffrey Palermo, Onion Architecture. La otra prima hermana, útil para comparar.
Kotlin para backend¶
- Documentación de Kotlin: https://kotlinlang.org/docs/home.html
- Spring con Kotlin: https://docs.spring.io/spring-framework/reference/languages/kotlin.html
- Conceptos que usamos:
data class,value class(@JvmInline),val/var, tipos nulos (?),enum class,companion object, lambdas yit, string templates.
Spring, Feign y Vaadin¶
- Spring Boot: https://docs.spring.io/spring-boot/
- Spring Boot Docker Compose Support: https://docs.spring.io/spring-boot/reference/features/dev-services.html
- Spring Cloud OpenFeign: https://docs.spring.io/spring-cloud-openfeign/reference/
- Vaadin Flow: https://vaadin.com/docs
Sobre cuándo usarla¶
Hexagonal suma cuando el dominio tiene lógica real. Para un CRUD sin reglas, una arquitectura en capas alcanza. El criterio importa más que el patrón.
El repo de esta charla¶
- Código del servicio de pagos: https://github.com/geovannymcode/hexarch-kotlin-baqjug
- Cada sesión es una rama (
sesion-1asesion-5). La ramamaines la versión final, con la UI de Vaadin.