馃 驴Qu茅 es el c贸digo limpio?

El c贸digo limpio es aquel en el cual se indica a la computadora de forma clara los requerimientos que requiere un programa.

Se espera que el nivel de abstracci贸n de los lenguajes de programaci贸n continuar谩 increment谩ndose al igual que el n煤mero de lenguajes de dominio espec铆fico, por lo que las especificaciones escritas un un nivel superior al final terminan por convertirse en c贸digo, y para que este proceso se complete de la mejor forma, el c贸digo debe ser preciso y detallado de forma que una computadora pueda ejecutarlo.

Si bien ya podemos hablar de sistemas capaces de realizar un cierto nivel de programaci贸n de forma autom谩tica, la realidad es que el c贸digo siempre termina por ser la 煤ltima capa en la cual se expresan los requerimientos. Por ello nunca podr谩 eliminarse por completo este nivel de precisi贸n requerido, al final siempre habr谩 que escribir cierta cantidad de c贸digo.

El costo de crear c贸digo malo tiene que como resultado que el desastre va increment谩ndose mientras la productividad va decreciendo, por ello es importante entender que hay que dedicar el tiempo necesario para mantener el c贸digo limpio, esto representa para el proyecto no es solo una inversi贸n de costo efectiva sino un acto de supervivencia del proyecto mismo.

馃嵖 驴Por qu茅 los programadores escriben mal c贸digo?

La raz贸n del porque escribimos c贸digo de mala calidad es porque no actuamos de forma profesional. Los administradores de proyectos y personal de ventas buscan en nosotros informaci贸n que necesitan en relaci贸n a estimados de tiempo y compromisos de entrega. La responsabilidad de quien realiza dichas estimaciones y promesas es ser c贸mplice en la planeaci贸n del proyecto y compartir la responsabilidad de cualquier error en dicha planeaci贸n, especialmente si dichos errores son debido a fallos que tienen que ver con un mal programador. Los administradores desean conocer la verdad acerca cuando se definen tiempos, y de igual manera esperan tener un producto con una buena calidad de c贸digo. El programador por su parte tiene como responsabilidad defender en todo momento que los est谩ndares de calidad del c贸digo se cumplan.

馃嵖 驴C贸mo afecta a un proyecto el caos generado por c贸digo malo?

Cuando se desarrolla cierto grado de experiencia se sabe que lidiar con el desorden previo conduce a que la productividad se reduzca al mismo tiempo que se ven presionados en crear mas c贸digo de mala calidad que contribuya al desorden pero que permita cumplir con los tiempos establecidos. Hay que entender por ello que si bien se puede sentir tentado a contribuir al desorden, la realidad es que no se logra cumplir con la entrega si se abona mas caos en el proyecto. Solo se obtienen las metas y se puede continuar si se mantiene el c贸digo limpio como sea posible.

馃嵖 驴Qu茅 es el arte del c贸digo limpio?

Escribir c贸digo de forma correcta es como realizar una pintura y la mayor铆a de nosotros sabemos distinguir una pintura buena de una mala sin saber como pintar. Sin embargo pero la capacidad de distinguir entre buen y mal c贸digo no implica que sepamos escribir c贸digo de forma correcta.

Poder escribir c贸digo limpio implica el desarrollo de una disciplina para poder llevar a cabo esta actividad de forma correcta, la disciplina consiste desarrollar una estrategia para poder transformar el c贸digo malo en bueno. Un programador con esta habilidad lo suficientemente desarrollada es capaz de ver el caos dentro de un algoritmo y encontrar las diferentes posibilidades para convertirlo en una pieza de c贸digo bueno.

As铆 entonces el programador que escribe c贸digo bueno se convierte en un artesano que pude tomar una pantalla en blanco a trav茅s de una serie de transformaciones hasta que llega a obtener un sistema cuya programaci贸n ha sido escrita de forma elegante.

馃嵖 驴Cu谩les son los diferentes conceptos de C贸digo Limpio?

El C贸digo Limpio es elegante y eficiente, la l贸gica debe ser tal que los errores puedan ser f谩cilmente encontrados, las dependencias deben ser m铆nimas para que el programa se pueda mantener de forma sencilla, el manejo de errores debe estar alineado a una estrategia, el rendimiento debe ser cercano a lo optimo. Bjarne Stroustrup.

El c贸digo malo promueve que el desorden crezca. Cuando otros se ven en la necesidad de cambiar este c贸digo malo terminan haci茅ndolo mas malo. El c贸digo limpio se encarga de hacer una sola cosa bien mientras que el malo intenta hacer demasiadas cosas a la vez, por lo cual su prop贸sito no es claro. El c贸digo bueno busca tener un enfoque. Las funciones, clases, m贸dulos exponen una sola intenci贸n que se mantiene de forma entera sin distracci贸n y sin verse afectada por el ambiente que rodea a estas.

El c贸digo limpio es sencillo y directo. Se lee como una prosa bien escrita. Nunca oculta el intento de su autor, se encuentra lleno de abstracciones y lineas de control sencillas. Grady Booch

La lectura sencilla forma parte de las caracter铆sticas del c贸digo limpio, por ello debe ser parecido a una prosa bien escrita. Tiene que poder exponer cual es la tensi贸n del problema a resolver y llevar esta tensi贸n al punto en donde se provea una soluci贸n. Para ello no debe estar basado en echos y no ser especulativo ademas de contener solo lo necesario.

El c贸digo limpio puede ser le铆do de forma simple por alguien que no es su autor. Tener pruebas unitarias y de aceptaci贸n. Nombres descriptivos. Proveer una forma y no muchas de resolver un problema. Pocas dependencias y una API sencilla y concisa. Dave Thomas

El c贸digo limpio permite que otros programadores puedan realizar sobre el mejoras.

La incursi贸n del Desarrollo Basado en Pruebas (Test Driven Development TDD) ha tenido un impacto muy positivo dentro del desarrollo de la industria de desarrollo de software, convirti茅ndose en parte fundamental de esta profesi贸n. El c贸digo escrito sin pruebas no puede ser considerado como c贸digo de calidad.

El c贸digo limpio siempre parece como si hubiera sido escrito por alguien que se preocupa de escribirlo as铆. Michael Feathers

Visto de esta forma el objetivo de crear c贸digo de forma correcta deber铆a ser “crear c贸digo de forma responsable y cautelosa”.

El c贸digo limpio es aquel en donde todas las pruebas corren correctamente, no existe c贸digo duplicado, se expresan las ideas que hay en el sistema y se minimiza el numero de entidades como clases, m茅todos y funciones. Ron Jeffries

Cuando la misma actividad se repite una y otra vez, es una muestra de que hay una idea que no esta bien representada dentro del c贸digo.

La expresividad conlleva que los nombres de las entidades sean descriptivas, por lo cual elegir los nombres correctos para ellas requiere que se escriban varias veces antes de estar satisfecho.

Tambi茅n se recomienda ver si un objeto o m茅todo esta haciendo mas de una cosa a la vez. Si es as铆 lo recomendable ser铆a descomponer este en varios m茅todos u objetos.

El poder reducir la duplicidad, elevar la expresividad y abstraer de forma temprana y simple es la combinaci贸n de elementos que conducen a tener un c贸digo limpio.

Puedes darte cuenta que estas creando c贸digo limpio cuando cada rutina se convierte en algo en lo que realmente esperas. El c贸digo es hermoso cuando luce como lenguaje que fue escrito para solucionar un problema.

Los programas que est谩n construidos mediante c贸digo limpio est谩n escritos de forma tan correcta que esto ni siquiera es perceptible. Es rid铆culamente simple que su dise帽o es excepcional.

Si deseas que tu c贸digo sea sencillo de escribir, hazlo sencillo de leer. El c贸digo se debe mantener ordenado y limpio a trav茅s del tiempo.

Nomenclatura descriptiva
comments powered by Disqus