Rimorsoft Online

Skills

Blog de Rimorsoft Online listado

Clean code


En el mundo del desarrollo web nosotros los mortales trabajamos con lenguajes de programación que utilizan en las grandes empresas como Facebook, Netflix, Twitter o Uber, hablo directamente de PHP, Python y Javascript.

Por este motivo, se ha vuelto imprescindible la necesidad de escribir código con calidad y legibilidad para que otros compañeros del equipo nos entiendan. Y es que, cuando estamos empezando en esta profesión no tenemos la más mínima intención de escribir código para otros programadores, de hecho queremos hacer lo contrario creando, queremos crear cajas negras que solo nosotros entendamos. Con el pasar del tiempo nos centramos directamente en que lo que desarrollemos funcione y que resuelva lo que me han solicitado.

El problema es evidente, y es tratar de entender hasta nuestro propio código de días atrás, se puede volver una tarea realmente difícil para nosotros, para el equipo y para otros compañeros.

La solución es sencilla, lo que debemos aprender es clean code, SOLID, TDD, y en general herramientas de testing precisamente para escribir código legible y sobre todo mantenible (tolerante a cambios y expansión).

Esto es artesanía y es lo que debemos buscar constantemente.

Artesanía: Arte o técnica, proceso artístico donde se elaboran productos profesionales con la mano.

Accesibilidad

Los lenguajes de programación para crear sistemas web presentan grandes fortalezas y debilidades, todo radica en que te permiten hacer cosas impresionantes, para bien y para mal (mencionado en twitter).

  1. ¿Cuándo empezaste con PHP? ¿En qué fecha creaste tu primer componente?
  2. ¿Cuándo empezaste con Javascript? ¿En qué fecha entendiste los web components?

Con esto quiero dar a entender lo siguiente, todos tuvimos acceso a un ¡hola mundo! y a otras creaciones desde estos lenguajes sin conocer nada más que ello, eso es posibilidad de acceso (accesibilidad), por eso empezamos con malas prácticas, cajas negras y código que solo entendemos nosotros en un tiempo finito ¿Y en un principio a quién le interesa conocerlas si los proyectos funcionan? Ahí comienzan los problemas.

La principal ventaja de estas tecnologías, y a su vez su mayor debilidad es la versatilidad. Esa gran versatilidad ha derivado en mala fama y malas prácticas que se han ido extendiendo en la comunidad (PHP sabe de qué hablo). Pero al mismo tiempo son tecnologías que se usan en sistemas de alcance mundial y esto quiere decir que tenemos una salida, una carrera profesional allá fuera.

Un proyecto se abandona cuando ya no lo podemos mantener y llegamos a este punto cuando el costo de mantenimiento supera a la inversión, el mantenimiento siempre será mucho más alto que la inversión inicial porque involucra entender el código, alterarlo, incluir testing en cada función y promover o subir a producción las modificaciones.

Saber todos estos problemas y costos consecuentes nos da una guía de cómo podemos minimizarlos y al mismo tiempo entender lo que se quiere decir con clean code.

Clean code es una forma de avanzar bien en cualquier tecnología, esto debe relacionarse con conceptos propios del lenguaje que uses precisamente porque la unión de ambos es lo que nos ayudará a crear mejores sistemas.

Otras técnicas a considerar y que debemos relacionar son las siguientes (les dedicaremos su respectivo espacio en esta página):

  1. SOLID, quien nos permite crear piezas realmente intuitivas precisamente para que nos vaya mejor en el mantenimiento.
  2. TDD es escribir código con calidad, es quien nos ayuda a prevenir la deuda técnica y al mismo tiempo nos garantiza que el código anterior no se está viendo afectado con el código actual.

Parece que son muchos conceptos pero son unos pocos que iremos aprendiendo con el tiempo, por eso se menciona con mucha frecuencia que "un senior se forma con el tiempo".

Estos son los pasos que precisamente nos saltamos en los primeros años de programación.

Clean Code

Este es un término que usamos precisamente para hacer referencia al resultado final deseado, de hecho es aquel código escrito con la intención de que lo puedas entender tu en el futuro y otros compañeros. Entender un código de otro programador es difícil, hay que hacer definitivamente un esfuerzo extra que lograrlo.

Y hablando de "esfuerzo extra", yo diría que es mejor aplicar este esfuerzo en la etapa inicial creando soluciones legibles que se puedan mantener con éxito en el futuro.

El concepto de clean code no es difícil, lo complicado es lograrlo como resultado.

Los programadores somos emprendedores por naturaleza, queremos ser programadores precisamente para crear grandes soluciones que se mantengan funcionando por muchos años, entonces, si tenemos este deseo más nos vale crear algo que podamos mantener en el tiempo. Se trata de preparar el código de hoy para que soporte mejoras, reparación de errores, cambios de funcionamiento, nuevas incorporaciones y es ahí donde aplica este concepto. Es inimaginable el hecho de que una empresa como Uber tenga que cambiar su código desde cero cada 18 meses, esto no sucede (lo afirmo como usuario de la app con conocimientos de programación), siempre vemos una constante evolución y mejora.

Como programadores necesitamos conocer esencialmente lo siguiente:

  1. Escribe correctamente los nombre de funciones, variables, clases, métodos, incluso de carpetas y cualquier otra cosa como los parámetros.
  2. Mejora cada código que te topes, revisa y edita con la intención de mejorar todo aquello que veas de una manera consciente.
  3. Haz que sea simple, crea lo que necesitas y no lo que podrías necesitar.
  4. Don't Repeat Yourself (en cualquier sentido), carpetas, código o datos.
  5. Comenta, Laravel es un ejemplo a seguir, todo está tan hermosamente comentado que simplemente debemos aprender de ello.
  6. Crea testing y haz que sean pequeños y entendibles, a veces el testing es la mejor herramienta de documentación de un proyecto.

Recuerda que clean code es algo que existe en todas las profesiones quitando por supuesto la palabra code, todos los profesionales verdaderos, sin importar el área son pulcros, organizados y delicados.