IV 2022-23

Diseño dirigido por dominio: DDD

Ingeniería del software: resolver problemas mediante código

Hay que entender el problema

Hacer un modelo del mismo

... Y de la solución

Mentalidad ágil:

Enfocada a las personas, afronta necesidades reales

Empatizar

Problema: los agricultores necesitan vender a precios más justos

Empatía: personalizar los tipos de usuarios de una aplicación

Historias de usuario

Los deseos de los clientes

Todos los clientes

Los hitos se organizan alrededor de productos mínimamente viables

Algunos pueden ser internos: diseño de una clase, por ejemplo

Hitos: hoja de ruta del desarrollo

Hito 0: diseño e implementación de la(s) clase(s) necesarias para trabajar con los precios de los productos en lonja

Válido: si compila

Hito 1: Hito 0 + lógica de validación y procesado de precios

Entender el sistema de tipos que ofrece el lenguaje

Privacidad de las variables

Herencia/encapsulación

Mutabilidad

Domain driven design: DDD

Puente entre HUs (deseos) e issues (implementación)

Objeto valor: precio individual

¿Necesita un histórico?

Si → inmutable

No → Fácil de recuperar

Entidad: histórico de precios (¿por producto?) + lógica de negocio

Agregado: Todas las entidades (todos los productos).

Nunca hay una sola forma de hacer las cosas

Documentar la toma de decisiones

Issues: puentes entre HUs y PMVs

Como programador, necesito conocer los precios con 2 decimales, con las unidades estándar para cada producto, identificando de forma única la lonja y la fecha.

Los issues plantean problemas

Se abren para discutir detalles de implementación, o se proponen en un PR

Adelante con el objetivo 2