#phpirstaid - replanteamiento de diseño de software
TRANSCRIPT
![Page 1: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/1.jpg)
Replanteamiento de diseño de
Software
![Page 2: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/2.jpg)
#PhpirstAid
![Page 3: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/3.jpg)
#scbcn15 // #PhpirstAid
¡Bienvenidos!Soy Javier Ferrer González
@JavierCane en Twitter
Desarrollador web en @uvinum_es
Gañán en @CodelyTV
![Page 4: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/4.jpg)
#scbcn15 // #PhpirstAid
Agenda
Contexto Objetivos
Plan de acción Conclusiones
Problemas
![Page 5: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/5.jpg)
#scbcn15 // #PhpirstAid
Agenda
Exploración Objetivos del paciente
Tratamiento Diagnóstico final
Síntomas
![Page 6: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/6.jpg)
#scbcn15 // #PhpirstAid
Exploración1
![Page 7: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/7.jpg)
Uvinum: Marketplace bebidas alcohólicas
![Page 8: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/8.jpg)
#scbcn15 // #PhpirstAid
El pacienteESTÁ VIVO
![Page 9: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/9.jpg)
151.000.000Peticiones mensuales de media
![Page 10: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/10.jpg)
#scbcn15 // #PhpirstAid
Oficina
Web disponible en 14 países
![Page 11: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/11.jpg)
#scbcn15 // #PhpirstAid
5Años en activo
2M €Inversión total en 3 rondas
6 / 22Desarrolladores / Empleados totales
![Page 12: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/12.jpg)
#scbcn15 // #PhpirstAid
Objetivos del paciente2
![Page 13: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/13.jpg)
#scbcn15 // #PhpirstAid
1. Aumentar tolerancia a cambios (Ejemplo API)
Place your screen
shot
here
![Page 14: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/14.jpg)
“
#scbcn15 // #PhpirstAid
Walking on water and developing software from a specification are easy if both are frozen
-Edward V. Berard
![Page 15: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/15.jpg)
“
#scbcn15 // #PhpirstAid
Las especificaciones CAMBIAN
-Sabiduría popular
![Page 16: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/16.jpg)
“
#scbcn15 // #PhpirstAid
Las especificaciones LAS CAMBIAMOS
![Page 17: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/17.jpg)
#scbcn15 // #PhpirstAid
2. Permitir una correcta implementación de test
![Page 18: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/18.jpg)
#scbcn15 // #PhpirstAid
Pirámide de test
![Page 19: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/19.jpg)
#scbcn15 // #PhpirstAid
Software testing ice-cream cone anti-pattern
![Page 20: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/20.jpg)
#scbcn15 // #PhpirstAid
3. Evitar muerte por deuda técnica (velocidad de desarrollo)
![Page 21: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/21.jpg)
#scbcn15 // #PhpirstAid
Muerte por deuda técnica
![Page 22: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/22.jpg)
#scbcn15 // #PhpirstAid
Deuda técnica
![Page 23: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/23.jpg)
#scbcn15 // #PhpirstAid
Complejidad accidental vs. Complejidad esencial
Complejidad esencial
Complejidad accidentalC
omp
leji
dad
sis
tem
a
Tiempo
![Page 24: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/24.jpg)
#scbcn15 // #PhpirstAid
4. Sentir motivación por cómo hacemos lo que hacemos(Software Craftsmanship)
![Page 25: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/25.jpg)
#scbcn15 // #PhpirstAid
Síntomas3
![Page 26: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/26.jpg)
#scbcn15 // #PhpirstAid
1ª visita~Finales 2014
![Page 27: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/27.jpg)
![Page 29: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/29.jpg)
#scbcn15 // #PhpirstAid
Síntomas
■ Falta de test■ Código altamente acoplado
■ Al framework (clases Controller y Model)■ A librerías externas■ A implementaciones concretas
■ Falta de modelado del dominio■ “Modelos” obesos■ Controladores obesos■ Código de difícil lectura
![Page 30: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/30.jpg)
#scbcn15 // #PhpirstAid
■ Falta de test => Reticencia al cambio/descontrol■ Alto acoplamiento => Poca cambiabilidad
Síntomas
![Page 32: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/32.jpg)
#scbcn15 // #PhpirstAid
Tratamiento4
![Page 33: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/33.jpg)
#scbcn15 // #PhpirstAid
Tratamiento por etapas
Diseño“alto nivel” Procesos
Transferencia conocimiento
Replanteamiento diseño “bajo nivel”
![Page 34: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/34.jpg)
#scbcn15 // #PhpirstAid
■ OOP■ Clean Code■ Code Smells■ Refactoring■ Principios SOLID■ Object calisthenics
Etapa diseño a “bajo nivel”
■ Composition Over Inheritance
■ Tell don’t ask■ Ley de Demeter■ DRY■ YAGNI■ …
![Page 35: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/35.jpg)
#scbcn15 // #PhpirstAid
Clean Code - Naming
![Page 36: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/36.jpg)
Clean Code Refactoring - Antes
![Page 37: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/37.jpg)
#scbcn15 // #PhpirstAid
Clean Code Refactoring - Después
■ Naming■ Guard clause■ Extract method■ Introduce
explanatory variable
![Page 38: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/38.jpg)
Diseño “alto nivel” -> Domain-Driven Design
![Page 39: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/39.jpg)
#scbcn15 // #PhpirstAid
Arquitectura Hexagonal
![Page 40: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/40.jpg)
#scbcn15 // #PhpirstAid
Arquitectura Hexagonal
■ Ports & Adapters■ Programación contra contratos / DIP FTW
■ Separación en capas■ Cambiabilidad
■ Regla de dependencia de fuera hacia dentro■ Bajo acoplamiento
![Page 41: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/41.jpg)
#scbcn15 // #PhpirstAid
■ Hexagonal Architecture, @fideloper
■ Hexagonal Architecture with PHP, @buenosvinos
■ Repo■ Application Services vs. Infrastructure Services vs. Domain
Services, @BenNadel
Takeaways
![Page 42: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/42.jpg)
Capas Arquitectura Hexagonal
![Page 43: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/43.jpg)
DDD - Agregados
![Page 44: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/44.jpg)
DDD - Agregados - Clientes
![Page 45: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/45.jpg)
DDD - Value Objects
![Page 46: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/46.jpg)
#scbcn15 // #PhpirstAid
Usando agregados y demás para listados
■ 1 Query por AR■ Agregados pequeños
=> Muchas queries■ MUCHAS:■ No vale cache■ Complejidad
![Page 47: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/47.jpg)
#scbcn15 // #PhpirstAid
Usando agregados y demás para listados
![Page 48: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/48.jpg)
#scbcn15 // #PhpirstAid
Usando Write Model para listados
![Page 49: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/49.jpg)
#scbcn15 // #PhpirstAid
DDD - Read Model
■ Ataca a la misma BBDD (progresivo)■ Permite violar restricciones del Write Model (WM)
para optimizar rendimiento■ No usa el dominio del WM para evitar pervertirlo■ Basado en DTOs
![Page 50: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/50.jpg)
DDD - Read Model
![Page 51: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/51.jpg)
#scbcn15 // #PhpirstAid
Takeaways
■ Validation in DDD, @eulerfx
■ Read-models as a Tactical Pattern in DDD, @eulerfx
![Page 52: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/52.jpg)
#scbcn15 // #PhpirstAid
Read Model Composer
■ Finalidad: Agilizar desarrollo Read Model■ Reutilizar DTOs y “repositorios dependientes”■ Tradeoff que decidimos asumir :)
![Page 53: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/53.jpg)
Read Model Composer Builder - Uso
![Page 54: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/54.jpg)
#scbcn15 // #PhpirstAid
Read Model
Composer
Builder -
Implementació
n
Read Model Composer Builder - Implementación
![Page 55: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/55.jpg)
#scbcn15 // #PhpirstAid
Read Model Composer Builder - Definición servicio
![Page 56: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/56.jpg)
#scbcn15 // #PhpirstAid
Read Model Composer Builder - Implementación Projector
RM Composer Builder - Implementación Projector
![Page 57: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/57.jpg)
#scbcn15 // #PhpirstAid
Read Model Composer Builder - Implementación Projector
RM Composer Builder - Implementación Joiner
![Page 58: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/58.jpg)
#scbcn15 // #PhpirstAid
RM Composer Builder - Diagrama de clases
![Page 59: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/59.jpg)
Procesos -> Composer + CI
![Page 60: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/60.jpg)
“
#scbcn15 // #PhpirstAid
Sólo conseguiremos anular la reticencia al cambio con procesos que no generen
fricción innecesaria
![Page 61: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/61.jpg)
#scbcn15 // #PhpirstAid
Elementos introducidos
■ Actualización PHP 5.6■ Composer■ Continuous Deployment: Push a master => deploy
■ Único repositorio■ GitHub■ Capistrano
![Page 62: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/62.jpg)
Transferencia conocimiento -> Rethinking Code
![Page 63: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/63.jpg)
#scbcn15 // #PhpirstAid
Cómo implicar al equipo
![Page 64: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/64.jpg)
#scbcn15 // #PhpirstAid
Sesiones Rethinking Code
■ Semanalmente■ 2 - 3 horas■ Equipo arquitectura■ Informales■ Casos prácticos
![Page 65: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/65.jpg)
#scbcn15 // #PhpirstAid
Sesiones Rethinking Code - Diseño “a bajo nivel”
1. Controllers menos Controllers2. SOLIDificando Verticomm3. Code Smells4. Refactoring, Clean Code & Tips5. Composition over Inheritance & Design Patterns6. Shotgun Surgery, DTOs & DIC
![Page 66: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/66.jpg)
#scbcn15 // #PhpirstAid
Hablar de SOLID en un entorno legacy
![Page 67: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/67.jpg)
![Page 68: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/68.jpg)
#scbcn15 // #PhpirstAid
Takeaways
■ The SOLID Principles, @Tutsplus■ Code Smells & Refactorings, @RefactoringGuru■ Design Patterns, SourceMaking■ Screencasts de SOLID, @CodelyTV■ Ejemplos de código propio (involucrar, motivación)
![Page 69: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/69.jpg)
#scbcn15 // #PhpirstAid
Sesiones Rethinking Code - Diseño “a alto nivel” (1/2)
7. Teoría Hexagonal Architecture8. Workshop Hexagonal Architecture9. DDD Building Blocks - Value Objects
10. DDD Building Blocks - Values Objects Workshop11. DDD Building Blocks - Entities & Aggregates12. DDD Building Blocks - Entities & Aggregates Workshop
![Page 70: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/70.jpg)
#scbcn15 // #PhpirstAid
■ The Two Sides of Domain-Driven Design (DDD), @eulerfx
■ Repo Symfony MPWAR Edition, @Eloipoch y @SergiGP
■ Domain-Driven Design in PHP, @buenosvinos @theUniC y @KeyvanAkbary
■ Implementing Domain-Driven Design, @VaughnVernon
■ Ejercicios con contexto propio (acercar)
Takeaways
![Page 71: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/71.jpg)
#scbcn15 // #PhpirstAid
13. Dominio vs. Aplicación vs. Infraestructura y DI14. Use Read Model, stay legen...dary, y lo otro ya tal15. Read Model Workshop16. Pedidos conjuntos17. Event Driven Development
Sesiones Rethinking Code - Diseño “a alto nivel” (2/2)
![Page 72: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/72.jpg)
#scbcn15 // #PhpirstAid
Sesiones Rethinking Code - Testing
18. First tests exercises19. TDD with legos20. Setting up phpunit,
asserts and testing types21. …
![Page 73: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/73.jpg)
#scbcn15 // #PhpirstAid
■ TDD and Refactoring with LEGO, Bryan Beecham
Takeaways
![Page 74: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/74.jpg)
#scbcn15 // #PhpirstAid
Diagnóstico final5
![Page 75: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/75.jpg)
#scbcn15 // #PhpirstAid
■ Equipo arquitectura■ Composer■ SOLID■ Dependency Injector Container■ Arquitectura Hexagonal
■ Lógica desacoplada del framework■ Eventos
Puntos de inflexión
![Page 76: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/76.jpg)
#scbcn15 // #PhpirstAid
Errores cometidos
■ Gestión inicial del equipo de arquitectura■ Cuello de botella a la hora de resolver dudas
■ Intentar encajar Write Model en Read Model■ Subestimar impacto■ Subestimar Bounded Contexts
![Page 77: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/77.jpg)
“
#scbcn15 // #PhpirstAid
Si tu aplicación no es compleja, no te líes con DDD.Tira por CRUD y no hay problema.
-Dicho popular
![Page 78: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/78.jpg)
#scbcn15 // #PhpirstAid
¿Existen las “aplicaciones” complejas?
![Page 79: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/79.jpg)
“
#scbcn15 // #PhpirstAid
Una aplicación compleja tendrá partes donde NO merecerá la pena aplicar DDD
![Page 80: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/80.jpg)
#scbcn15 // #PhpirstAid
Pasito a Pasito Driven Development (PPDD)
![Page 81: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/81.jpg)
#scbcn15 // #PhpirstAid
Trabajo futuro
■ TDD (in progress)■ BDD
![Page 82: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/82.jpg)
#scbcn15 // #PhpirstAid
Agradecimientos7
![Page 83: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/83.jpg)
#scbcn15 // #PhpirstAid
Equipo técnico Uvinum
@Obokaman@PabloRos @EduFabra@_googol @Madu2789
![Page 84: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/84.jpg)
#scbcn15 // #PhpirstAid
¡Gracias!¿Preguntas? ¿Comentarios?
Contacto
■ @JavierCane
■ Codely.TV
![Page 85: #PhpirstAid - Replanteamiento de diseño de software](https://reader031.vdocuments.net/reader031/viewer/2022021921/58f141551a28abd5398b4641/html5/thumbnails/85.jpg)
#scbcn15 // #PhpirstAid
■ SlidesCarnival Plantilla presentación■ Fideloper Imágenes Arquitectura Hexagonal■ Giphy GIFs Zoidberg■ WallpapersWide Wallpaper Zoidberg■ Arlo Belshee The 7 stages of naming■ Watirmelon Testing ice-cream cone anti-pattern■ Cañita Brava “El que avisa traiciona”
Créditos imágenes