Conceptos de código limpio

Después de observar los cambios que se han ido realizando en los proyectos de código de mis alumnos, me puse a pensar en el concepto de código limpio el cuál para mi significa lo siguiente:

El código limpio es aquel código que es fácil de leer, fácil de entender y muestra un rendimiento óptimo.

¿Pero qué piensan otros programadores acerca del código limpio? para esto, voy a tomar algunas citas del libro Código limpio de Robert C. Martin.

Empecemos con Bjarne Stroustop, desarrollador del lenguaje de programación C++ y autor de The C++ Programming Language

Me gusta que mi código sea elegante y eficaz. La lógica debe ser directa para evitar errores ocultos, las dependencias deben de ser mínimas para facilitar el mantenimiento, el procesamiento de errores completo y sujeto a una estrategia articulada, y el rendimienot debe ser óptimo para que los usuarios no tiendan a estropear el código con optimizaciones sin sentido. El código limpio hace bien una cosa.

Grady Booch, autor de Object Oriented Analysis and Design with Applications

El código limpio es simple y directo. El código limpio se lee como un texto bien escrito. El código limpio no oculta la intención del diseñador si no que muestra nítidas abstracciones y líneas directas de control.

Big’ Dave Thomas, fundador de OTI, el padrino de la estrategia Eclipse.

El código limpio se puede leer y mejorar por parte de un programador que no sea su autor original. Tiene pruebas de unidad y aceptación. Tiene nombres con sentido. Ofrece una y no varias formas de hacer algo. Sus dependencias son mínimas, se definen de forma explícita y ofrece una API clara y mínima. El código debe ser culto en función del lenguaje, ya que no toda la información necesaria se puede expresar de forma clara en el código.

Michael Feathers, autor de Working Effectively with Legacy Code.

Podría enumerar todas las cualidades del código limpio pero hay una principal que engloba a todas ellas. El código limpio siempre parece que ha sido escrito por alguien a quien le importa. No hay nada evidente que hacer para mejorarlo. El autor del código pensó en todos los aspectos posibles y si intentamos imaginar alguna mejora, volvemos al punto de partida y sólo nos queda disfrutar del código que alguien a quien le importa realmente nos ha proporcionado.

Después de observar estas citas y algunas más, creo que las características que debe cumplir el código limpio son las siugientes:

  • Legible
  • Simple
  • Elegancia
  • Eficaz
  • Óptimo
  • Con pruebas

Seguro se pueden agregar más características para un código limpio, un buen código.

Anuncios

Año nuevo

Y bueno ya comenzó otro año, hay tantas cosas por hacer qué uno anda todo norteado. Creo que una de las cosas interesantes este año es que el curso de introducción a la programación con Java, el cuál doy casi cada 6 meses, tiene personas animadas para aprender a programar. Tal vez fue un poco cruel el hacer que la clase sea de 8 a 10 de la mañana pero bueh…

A pesar de que ayer regresé a mis días normales de trabajo, aún me siento fuera de lugar. Será por qué me desvelé mucho en vacaciones y estuve enfermo… whatever…

homer-thinking.png

Pero bueno, este año tengo que retomar mi dominio sobre clojure y retomar todas las cosas que se quedarón pendientes desde diciembre, hay tanto por pensar, qué hasta me dió por escuchar música que no escuchaba desde hace mucho tiempo.

Bueno es hora de comenzar a trabajar en este año nuevo.

Sentirme mejor

Hoy fue un día pésimo para mí en el sentido corporal, pero al menos mi coche está verificado.

La segunda es que a pesar de que no dí clase, me da gusto comenzar a ver como mis alumnos comienzan a hacer sus tareas. ¿Debería de hacer que todo lo trabajen vía git? Habrá que evaluarlo.

La tercera es que necesito regresar a entrenar como antes, creo que el que me sienta mal, tiene que ver con el hecho de que he estado fuera de ritmo durante casi 4 meses.

Frito

Creo que esto de dormir poco me empieza a cobrar factura. me siento bien frito.

Como me doy cuenta que estoy frito, simple, no puedo resolver un problema que seguramente en otro momento me tomaría unos cuantos minutos.

Dios, moriré, creo que hoy no daré clase…