Soy desarrollador junior entre personas mayores y estoy luchando mucho para comprender su pensamiento y razonamiento.
Estoy leyendo Diseño controlado por dominio (DDD) y no puedo entender por qué necesitamos crear tantas clases. Si seguimos ese método de diseño de software, terminamos con 20-30 clases que pueden reemplazarse como máximo con dos archivos y 3-4 funciones. Sí, esto podría ser complicado, pero es mucho más fácil de mantener y leer.
Cada vez que quiero ver qué hace algún tipo EntityTransformationServiceImpl
, necesito seguir muchas clases, interfaces, sus llamadas a funciones, constructores, su creación, etc.
Matemática simple:
- 60 líneas de código ficticio frente a 10 clases X 10 (supongamos que tenemos lógicas totalmente diferentes) = 600 líneas de código desordenado frente a 100 clases + algunas más para envolverlas y administrarlas; No olvides agregar la inyección de dependencia.
- Lectura de 600 líneas de código desordenado = un día
- 100 clases = una semana, todavía olvida cuál hace qué, cuándo
Todos dicen que es fácil de mantener, pero ¿para qué? Cada vez que agrega una nueva funcionalidad, agrega cinco clases más con fábricas, entidades, servicios y valores. Siento que este tipo de código se mueve mucho más lento que el código desordenado.
Digamos que si escribe un código desordenado de 50K LOC en un mes, la cosa DDD requiere muchas revisiones y cambios (no me importan las pruebas en ambos casos). Una simple adición puede llevar una semana, si no más.
En un año, escribe un montón de código desordenado e incluso puede reescribirlo varias veces, pero con el estilo DDD, aún no tiene suficientes funciones para competir con el código desordenado.
Por favor explique. ¿Por qué necesitamos este estilo DDD y muchos patrones?
UPD 1 : Recibí muchas respuestas geniales, ¿pueden agregar algún comentario o editar su respuesta con el enlace para leer la lista (no estoy seguro de dónde comenzar, DDD, Patrones de diseño, UML, Código completo, Refactorización, Pragmática, etc.). .. tantos buenos libros), por supuesto con secuencia, para que yo también pueda comenzar a entender y llegar a ser mayor como algunos de ustedes.