Clean Architecture, Laravel & gRPC I

Después de muchas idas y vueltas en los muchos proyectos en los que he trabajado en cada uno de ellos implemente mi propia version de Clean Architecture de forma diferente, al final decidí que era hora de tener mi propia “estructura” que me permitiera tener un orden, pero que fuera lo mas abstracta posible para que se pueda utilizar en cualquier tipo de proyecto.

Siguiendo ese orden de ideas he creado una estructura la cual bautice “AngelModules” , para la definición he intentado respetar una serie de aspectos.

  • Testeable
  • No atada a un framework
  • Simple de entender
  • Flexible a cambio de estructura

A continuación les presento un model bastante sencillo de como se ve esta estructura y como se relaciona entre si.

Un diseño simple de la arquitectura
UC: Usecase Rq: Request Rp: Response Repo:Repository

Ya conociendo un diseño basico ahora procederemos a ver un como se ve este diseño en una estructura de carpetas de un proyecto de Laravel y un diagrama de clases.

El diseño representado en un diagrama de clases
Diagrama de clases
Estructura de carpetas del proyecto en laravel
Estructura de carpetas

Durante el transcurso de esta serie estaremos creando un proyecto que nos permita la creación de notas y/o recordatorios por medio de dos protocolos de comunicación REST y gRPC


Antes de publicar las siguiente parte de esta serie es muy importante tener presente los principios SOLID ya que son lo base para tener un mayor entendimiento del proyecto, si no sabes de que te estoy hablando por favor investiga un poco de que se trata esto que estoy hablando una vez comprendido el tema puedes volver y continuar con el resto de la serie.


Nos vemos pronto!

Leave a Reply