DCI en Python: roles en runtime
En la primera parte conté de dónde salió DCI: Trygve Reenskaug, el autor de MVC, pasó su jubilación buscando una forma de que el código muestre lo que el sistema hace y no sólo lo que el sistema es. La propuesta se llama Data, Context, Interaction y se resume en tres elementos. Data: los objetos de dominio son pequeños y apenas inteligentes — la Account sabe su saldo, cómo sumarlo y restarlo, nada más. Context: el caso de uso deja de ser un método suelto y pasa a ser un objeto de primera clase, que existe mientras el caso de uso está funcionando. Interaction: los roles —SourceAccount, DestinationAccount— son comportamientos que se le adosa a un objeto de datos mientras dura el contexto, de esa manera, el algoritmo que ejecutan entre todos reside en un solo lugar1.