sábado, 7 de marzo de 2015

¿Qué es Clean Code?

¿Qué es Clean Code?

En los últimos años en las empresas de desarrollo de Software se han estado adoptando procesos, metodologías y tecnologías que permitan que el desarrollo de sistemas sea mas dinámico y eficiente con la finalidad de tener sistemas mas confiables y robustos. Un punto importante en esta adaptación de metodologías es lo referente al proceso propio del desarrollo de Software, es decir, como hacer un código mantenible, legible, entendible, ...... ible.

El Clean Code mas que una metodología yo lo veo como una filosofía de trabajo, son las practicas que te permiten que el código que desarrollas sea realizado de una manera profesional y cumpla con ciertas características.

A continuación voy a listar algunas definiciones de Clean Code tomadas del libro Clean Code de Robert C. Martin. En cada definición se pueden ver puntos importantes para cada autor,  después de leer las definiciones tu puedes crear tu propia definición y ver que tan importante es adoptar técnicas que te permitan crean Clean Code.

Bjarne Stroustrup, Inventor de C++
Me gusta que el código sea elegante y eficiente. La lógica debería ser sencilla para hacer difícil el ocultar bugs, dependencias mínimas para facilitar mantenimiento, manejo de errores basado en una estrategia articulada y rendimiento optimo.

Grady Booch, autor de Análisis y Diseño orientado a objetos con aplicaciones.
Clean Code es simple y directo, el Clean Code se lee como una prosa bien escrita. Clean Code nunca oscurece las intenciones de los diseñadores, mas bien esta lleno de abstracciones y simples lineas de control.

"Big" Dave Thomas, fundador de OTI.
Clean Code  puede ser leido y mejorado por un desarrollador que no es el autor original, tiene pruebas unitarias  y de aceptación, tiene nombres significativos, provee una forma en lugar de varias formas de hacer una cosa, Tiene mínimas dependencias, y provee claras y mínimas API's.

Michael Feathers, Autor de Working Effectively with Legacy Code.
Yo podría listar todas las cualidades que yo he observado en Clean Code,  pero hay una cualidad general en todos los códigos, Clean Code siempre luce que fue escrito por alguien que tiene cuidado.No hay nada obvio que tu puedas hacer mejor.

Ward Cunningham, inventor de Wiki, inventor de Fit, co-inventor de eXtreme Programming.
Tu sabes que estas trabajando en Clean Code cuando cada rutina que tu lees es bastante mejor de lo que tu esperas. Tu puedes llamar esto código "hermoso"cuando el código hace ver al lenguaje como hecho para resolver el problema.

Tenemos suficientes definiciones para poder crear un propio criterio sobre lo que es el Clean Code, al fin de cuentas todo nos lleva a realizar un código  de manera profesional, teniendo en consideración que muy probablemente en un futuro quien escribe el código o algún otro desarrollador tendrá que realizar modificaciones, y este trabajo de cambio debe de ser lo suficientemente transparente, y con mínimo impacto en otras secciones del sistema.

En las próximas entradas nos enfocaremos en algunas técnicas de Clean Code. Por lo pronto tenemos la tarea de reflexionar que tan limpio es el código que actualmente estamos escribiendo.


Esta imagen refleja en gran medida como saber si estamos tratando con Clean Code, en un revisión de código, cuantos WTF ocurren.

Bibliografía:
Clean Code A Handbook of Agile Software craftsmanship, Robert C. Martin Series.







No hay comentarios:

Publicar un comentario