viernes, 27 de diciembre de 2019

Capítulo 1: Qué es el diseño y qué es arquitectura - Clean Architecture


Cuando surge la necesidad de desarrollar un nuevo sistema software hay una primera fase que define el QUÉ se quiere hacer, esta fase debería (aunque extrañamente no siempre así) proporcionar una especificación de lo que el sistema debería hacer.

Una vez que está definido el QUÉ debe hacer el sistema comienza una segunda fase para ver CÓMO se va a abordar el desarrollo del sistema.

En este punto, el desarrollo de sistema va a tener una parte que modele el QUÈ hay que hacer (las reglas de negocio) y otra parte que tendrá más que ver con qué tecnologías se van a utilizar para llevarlo a cabo.

Por ejemplo, si el nuevo sistema software consiste en el juego de las tres en raya las reglas del negocio sería las reglas del juego (alto nivel) mientras que las tecnologías que se van a usar las cuales podrían comprender un entorno LAMP, MEAN, etc. (bajo nivel)

La arquitectura tiene que ver más con las partes de alto nivel mientra que el diseño tiene que ver más con las partes de bajo nivel. No obstante, no hay una línea clara entre los dos conceptos.
La meta
Según Robert. C. Martin la meta de un buen software es:

«The goal of software architecture is to minimize the human resources required to build and
Maintain the required system.»

La calidad del diseño va a venir determinada por el tipo de esfuerzo durante el tiempo de vida del sistema. Si el esfuerzo se mantiene el diseño tiende a ser bueno mientras que si el esfuerzo se incrementa con cada nueva versión el diseño es malo.

No hay comentarios:

Publicar un comentario