Un programador errante en busca de la sabiduría...

Reseña del libro Clean Architecture

El ultimo libro de trilogía es Clean Architecture escrito por Rebert C. Martin en el en el 2017, apenas hace unos años. Es un libro difícil de resumir y si bien no es indispensable leer las dos entregas anteriores, por lo menos es bueno leer la primer entrega (clean code y clean coder )

En este libro el tío Bob critica a todos los arquitectos de software que no saben escribir código. No, no se refiere a que un arquitecto debe escribir código en un proyecto, se refiere a que debe saber como escribir buen codigo para que sus decisiones de arquitectura no causen un desastre. En otras palabras el tío Bob sugiere que el arquitecto sea un ex programador.

La arquitectura y el diseño de un sistema no van separados

Robert nos plantea la siguiente analogía. Cuando vemos los planos de una casa, en estos planos no solo viene lo general que es los muros y las ventanas, a esto le llamaremos la arquitectura. Sino que viene también lo particular, las tuberías, la instalación eléctrica, la instalación del gas etc. Esto ultimo, lo particular, podríamos verlo como el diseño de un sistema. Lo general y lo particular van juntos en el mismo plano, en la arquitectura, y es el equipo de construcción, el programador, el que se hará cargo de implementar los planos.

¿Qué demonios es la arquitectura de software?

La arquitectura comúnmente hace referencia al sistema donde va a vivir nuestro software, el sistema operativo, los servidores de aplicación, la base de datos, la escalabilidad horizontal o vertical, el stacks de tecnologías. Arquitectura es un termino ambiguo en sistemas y suele excluir, mala mente, al diseño de software.

¿Qué demonios es el diseño de software?

Un termino un poco menos ambiguo que la arquitectura. El diseño hace referencia a como se ordena el código y como este interactúa entre si. En otras palabras estamos hablando de los patrones de diseño de software. Desde los generales que dictan el flujo de información entre capas, como el MVC o el MVVM. Hasta los particulares que definen como actúa un modelo, como ejemplos tenemos al singleton o al flyweight.

El tío Bob nos recalca que no solo los programadores deben tener conocimiento de diseño de software. Es un error muy común de la industria que el arquitecto se desatienda de ver que patrones de diseño se están usando para atacar el problema. El arquitecto es la figura responsable de que el código se escriba bien. Si el arquitecto solo dicta el stack de tecnologías, la empresa esta prácticamente tirando dinero a la basura.

¿Que esta mal con este libro? UML es un lenguaje muerto.

El tío Bob tiene un excelente libro, y uno de sus primeros libros que no recomiendo, llamado "UML for java programmers". Este libro comienza diciendo que UML es basura, ¡y lo es!. UML es un invento de IBM por crear un lenguaje unificado de diseño de software. Este pseudo lenguage tiene mas de 15 diagramas distintos para representar cosas en el software y IBM lo vendía como la solución a todos los problemas, como si fuera una bala de plata.

UML solo era un negocio para vender asesores y era un lenguaje tan malo en el que te podías tirar meses diseñando y al final de estos meses no tener nada ejecutable. Si empiezas a programar un software con un lenguaje de verdad al menos tendrás algo que corre. Con UML tendrás un montón de diagramas que no hacen nada y que probablemente estén desfasados por que al departamento comercial se le ocurrieron nuevas ideas de que querían que el software hiciera.

Robert si bien desacredita al UML, no duda en usar un par de sus diagramas sin explicar como leerlos, y el problema es que... !UML murió hace 10 años! para leer este libro vas a necesitar, por lo menos, saber como leer un diagrama de clases.


Ultima revisión:



Usamos cookies. Leer más