Estoy 80% seguro de que no debería hacer esta pregunta porque podría parecer negativa y no faltarle el respeto a nadie, especialmente al autor de este libro. He visto varias publicaciones que recomiendan book y su compañero project. No he leído el libro, pero hoy he pasado unas horas estudiando el proyecto. Y si bien se ve muy completo, estoy teniendo un momento muy difícil con la cantidad de detalles de varias cosas dispersas. Estoy luchando en mis propios diseños con cuánto tengo que cambiar si una entidad cambia, y este proyecto no me hace sentir muy cómodo como solución.¿Es esto realmente DDD?
Por ejemplo, hay un objeto Empleado que hereda de una Persona. La persona tiene un constructor con primer nombre, apellido, etc. y, por lo tanto, también lo hace Employee. Privado para el empleado son miembros para el primer nombre, apellido, más propiedades públicas para el mismo.
Hay una EmployeeFactory que conoce tanto las propiedades del empleado como de la persona, así como los nombres de las columnas SQL (para extraer valores de un lector).
Hay un EmployeeRepository con métodos PersistNewItem y PersistUpdatedItem no implementados que sospecho que, si se implementara, construiría SQL para las sentencias INSERT y UPDATE como veo en CompanyRepository. Estos escriben las propiedades de las cadenas para construir el SQL.
Hay un PersonContract de 'Contrato de datos' con los mismos miembros privados y propiedades públicas que Person, y un EmployeeContract que hereda de PersonContract como Employee Does Person, con propiedades públicas que reflejan las entidades.
hay una clase estática 'convertidor' con métodos estáticos que se asignan a las entidades contratos, incluyendo
EmployeeContract ToEmployeeContract(Employee employee)
que copia los campos de la una a la otra persona, incluidos los campos. Puede haber un método complementario que vaya por el otro lado, no estoy seguro.
Creo que también hay pruebas unitarias.
En total cuento 5-10 clases, métodos y constructores con conocimiento detallado sobre las propiedades de la entidad. Tal vez se generen automáticamente, no estoy seguro. Si tuviera que agregar un 'Saludo' u otra propiedad a Persona, ¿tendría que ajustar todas estas clases/métodos? Estoy seguro de que me olvidaré de algo.
Una vez más, me refiero sin falta de respeto y este parece ser un ejemplo muy completo y detallado para el libro. ¿Es así como se hace DDD?
Por cierto, le he subido la apuesta porque creo que es una * excelente * pregunta. –