Diseño Reflexivo

AUDIENCIA

Programadores

Cada día, nuestro código es mejor que el día anterior.

Los enfoques tradicionales del diseño asumen que el código no debe cambiar. En su lugar, las nuevas funciones y capacidades se apoyan añadiendo nuevo código. Un diseño tradicional apoya esto anticipándose a lo que podría necesitarse e incorporando "ganchos" de extensibilidad, en forma de herencia, inyección de dependencias, etc., de modo que el código para esas funciones pueda añadirse en el futuro. El Principio Abierto-Cerrado, una directriz clásica de diseño, ilustra esta mentalidad: "Las entidades de software (clases, módulos, funciones, etc.) deben estar abiertas a la extensión, pero cerradas a la modificación".

Pero los equipos ágiles crean diseños simples que no anticipan el futuro. Sus diseños no tienen ganchos. En su lugar, los equipos Ágiles tienen la capacidad de refactorizar su código y cambiar su diseño. Esto crea la oportunidad de un enfoque totalmente diferente del diseño: uno en el que las entidades no están diseñadas para ampliarse, sino para modificarse.

Llamo a este enfoque diseño reflexivo.

Cómo funciona el diseño reflexivo

El diseño reflexivo contrasta con el diseño tradicional, que yo llamo diseño predictivo. En el diseño predictivo, predices lo que tu software necesitará hacer, basándote en tus requisitos actuales y en tus mejores conjeturas sobre cómo podrían cambiar esos requisitos, y luego creas un diseño que se anticipe limpiamente a todas esas necesidades. ...

Get El Arte del Desarrollo Ágil, 2ª Edición now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.