¿Usas getters y setters? ¿Te suenan los modelos de dominio anémicos? ¿El principio Tell don't ask? ¡En este vídeo aprenderemos más acerca de estos conceptos! Ya hemos trabajado un poco la parte de la capa de aplicación mediante el screencast sobre el principio de responsabilidad única, y la relación con la capa de infraestructura mediante el screencast sobre el principio de inversión de dependencias. En este vídeo nos centraremos en la capa de nuestro dominio, concretamente, los modelos de dominio.
Índice del vídeo
- 0:19 Pregunta: En PHP se accede a atributos de clase públicos, ¿uso getters y setters?
- 1:17 Principio de programación aplicable a todo lenguaje
- 2:00 Modelo User con atributos de clase públicos
- 3:19 Diferencia entre Data Transfer Object (DTO) y modelo de dominio. Qué es un modelo de domino anémico
- 4:14 Qué problemas tiene usar atributos de clase públicos
- 4:50 Modelo User como array asociativo/hashmap
- 6:00 Qué problemas tiene usar arrays asociativos para el modelado de dominio
- 6:50 Modelo User con atributos de clase privados, getters y setters (modelo anémico)
- 7:17 Beneficios de usar getters y setters
- 8:00 Por qué NO usar getters y setters
- 9:12 Modelo de dominio User con comportamiento
- 10:47 Qué beneficios tiene usar modelos de dominio ricos (con comportamiento)
- 13:09 Conclusión: Ni atributos de clase públicos, ni getters y setters. Lo ideal: Lógica de negocio donde corresponda (alta cohesión)
Vídeo
Material relacionado
- Tell don't ask: Artículo de Martin Fowler acerca del principio Tell don't ask
- Tell, Don't Ask (thoughtbot): Ejemplos de violaciones del principio Tell don't ask en Ruby
- Data Transfer Object: Artículo de Martin Fowler sobre el patrón de diseño DTO
- Anemic Domain Model: Artículo también de Martin Fowler acerca del anti-patrón de modelos de dominio anémicos