Skip to content

MaximilianoRodrigoSoria/e-commerce

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Linkedin

Knime Chat ETL




⭐ Arquitectura Hexagonal?

La arquitectura hexagonal, también conocida como "arquitectura de puertos y adaptadores," es un enfoque de diseño de software que promueve la separación de las preocupaciones y facilita la mantenibilidad, escalabilidad y pruebas de aplicaciones. En esta guía, exploraremos los conceptos clave de la arquitectura hexagonal y cómo implementarla en tus proyectos.

⭐ Curso de Udemy

Estos ejemplo esta dados por el curso de Udemy Proyecto Ecommerce con Spring Boot y Arquitectura Hexagonal

Link: https://www.udemy.com/course/proyecto-ecommerce-con-spring-boot-y-arquitectura-hexagonal

Objetivo

  • Configurar un entorno para desarrollar aplicaciones web con Spring Boot

  • Entender, estructurar arquitectura hexagonal en un proyecto Spring Boot

  • Usar el motor de plantillas Thymeleaf para la vista en proyectos Spring Boot

  • Implementar Spring Data JPA para persistir información en una base de datos PostgreSql

  • Implementar autenticación y autorización con Spring Security

  • Como llevar un proyecto real usando buenas prácticas de programación

Arquitectura Hexagonal

⭐ Docker

docker run --name haxagonal-ecommerce -e POSTGRES_PASSWORD=1q2w3e4r -d -p 5432:5432 postgres

⭐ ¿Qué es la Arquitectura Hexagonal?

La arquitectura hexagonal se basa en el principio de que una aplicación se puede dividir en tres capas principales: la capa de dominio, la capa de aplicación y la capa de infraestructura.

  • Capa de Dominio: Contiene la lógica central de la aplicación, incluyendo reglas de negocio, entidades y valor de objetos. Esta capa es independiente de la capa de infraestructura y las tecnologías utilizadas.

  • Capa de Aplicación: Actúa como un intermediario entre la capa de dominio y la capa de infraestructura. Aquí se definen los casos de uso y se orquesta la interacción entre los diferentes componentes.

  • Capa de Infraestructura: Maneja los detalles técnicos y la interacción con recursos externos, como bases de datos, servicios web, y sistemas externos.

⭐ Principales Características

La arquitectura hexagonal presenta las siguientes características clave:

  • Desacoplamiento: Las capas están altamente desacopladas, lo que facilita cambios en una capa sin afectar a las demás. Esto mejora la mantenibilidad y la flexibilidad del sistema.

  • Pruebas Unitarias: Al separar claramente las capas, es más fácil realizar pruebas unitarias y pruebas de integración. Esto garantiza la calidad del software.

  • Reutilización: La lógica de negocio central se encuentra en la capa de dominio, lo que permite reutilizarla en diferentes interfaces de usuario o canales de comunicación.

⭐ Implementación

Para implementar la arquitectura hexagonal en tu proyecto, sigue estos pasos:

  1. Define la capa de dominio con tus entidades, objetos de valor y reglas de negocio.

  2. Crea la capa de aplicación para definir los casos de uso y las interacciones entre la capa de dominio y la capa de infraestructura.

  3. En la capa de infraestructura, implementa los adaptadores para la interacción con bases de datos, servicios externos y otros recursos.

  4. Usa inyección de dependencias para conectar las capas y asegurarte de que la capa de aplicación pueda acceder a los servicios de infraestructura necesarios.

⭐ Ejemplo de Estructura de Directorios

|-- my-app/
    |-- src/
        |-- main/
            |-- java/
                |-- application/       # Capa de Aplicación
                |-- domain/            # Capa de Dominio
                |-- infrastructure/    # Capa de Infraestructura

Dependencias

Group ID Version Artifact Scope
org.springframework.boot Spring Boot Starter Data JPA spring-boot-starter-data-jpa
org.springframework.boot Spring Boot Starter Web spring-boot-starter-web
org.springframework.boot Spring Boot DevTools spring-boot-devtools runtime
org.postgresql PostgreSQL postgresql runtime
org.mapstruct MapStruct mapstruct
org.projectlombok Lombok lombok
org.projectlombok Lombok MapStruct Binding lombok-mapstruct-binding
org.springframework.boot Spring Boot Starter Test spring-boot-starter-test test

Dominio

Product

Atributo Tipo
id Integer
code String
name String
description String
image String
price BigDecimal
dateCreated LocalDateTime
dateUpdated LocalDateTime
user User

User

Atributo Tipo
id Integer
username String
firstName String
lastName String
email String
address String
cellphone String
password String
userType UserType
dateCreated LocalDateTime

UserType

Valor Descripción
ADMIN Administrador
USER Usuario

⭐ Certificado

Linkedin

Note

Puedes entrar al certificado dando clic sobre el la imagen.



⭐ Autor


‍💻 Nombre: Maximiliano Rodrigo Soria

📧 Email: MaximilianoRodrigoSoria@gmail.com

🏠 De: Florencio Varela, Alpino

💼 Linkedin: SoriaMaximilianoRodrigo

💬 Chatear: Inicia un chat

📝 CV: Link

About

Este es un proyeco de Spring Booot utilizando arquitectura hexagonal, el mismo fue construido a partir de un curso de Udemy

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors