Los tres tipos de código | Programar Plus

Cada vez que empiezo un nuevo proyecto, organizo el código que estoy viendo en tres tipos o categorías, si lo desea. Y creo que estos tipos se pueden aplicar a cualquier código base, cualquier lenguaje, cualquier tecnología o proyecto de código abierto. Ya sea que esté escribiendo HTML o CSS o creando un componente React, pensar en estas diferentes categorías me ha ayudado a determinar qué refactorizar y priorizar, y qué dejar solo por ahora.

Esas categorías: código aburrido, código de minas de sal y código radiactivo.

Dejame explicar.

código aburrido

El código aburrido es cuando tiene perfecto sentido cuando lo lees. No hay necesidad de refactorizarlo, y realiza su función de una manera que no te dan ganas de tirarte a un río. El código aburrido es un buen código. No hace un kick-flip y no está tratando de impresionarte. Puede usarlo sin tener que escribir aún más código o diseñar trucos encima. El código aburrido hace exactamente lo que dice en la lata y nunca causa sorpresas.

Esta función tiene sentido, este accesorio tiene un nombre claro, este componente React es sencillo. No hay bucles dentro de bucles, no se requiere gimnasia mental aquí.

Sin embargo, el código aburrido es casi imposible de escribir porque nuestra comprensión casi siempre es incompleta cuando comenzamos a abordar un problema. Solo mire cuántas consideraciones pueden incluirse en el estilo de un párrafo simple para el contraste. Para escribir código aburrido, debemos ser diligentes, debemos refactorizar sin cesar y debemos cuidar la base de código más allá de un cheque de pago a fin de mes.

El código aburrido es bueno porque el código aburrido es amable.

Código de la mina de sal

Este es el tipo de código que es una locura y no tiene sentido. Es el tipo de código que apenas podemos leer, pero está enterrado tan profundamente en la base de código que es casi imposible cambiarlo de todos modos. ¡Sin embargo! No se está filtrando a otras partes de nuestro código, por lo que en su mayoría podemos ignorarlo. Puede que no sea bonito, y probablemente no queramos volver a mirarlo mientras vivamos, pero no está causando ningún daño activamente.

Es este tipo de código del que podemos olvidarnos en su mayoría. Es el tipo de código que es peligroso si se abre y se manipula, pero por ahora, todo está bien.

El problema está enterrado profundamente.

Código radiactivo

El código radiactivo es el problema real en el corazón de cada equipo de ingeniería. Es el tipo de código de no-vamos-a-trabajar-hoy. Son las cosas que no solo son malas, sino que envenenan activamente nuestra base de código y empeoran todo con el tiempo. Imagine una base de código como un reactor nuclear; El código radiactivo es lo que ha violado el contenedor y ahora se está filtrando en cada parte de nuestra base de código.

¿Un ejemplo? Para nosotros en Gusto y en el equipo de sistemas de diseño, consideraría que los componentes de nuestra forma son radiactivos. Cada componente causa más problemas porque nunca podemos usar el componente tal cual; tenemos que hackearlo para conseguir lo que queremos. Cada vez que alguien usa este código, tiene que escribir aún más código encima, lo que empeora las cosas con el tiempo y anima a todos los miembros del equipo a hacer lo mismo.

En nuestro sistema de diseño, cuando queremos agregar un nombre de clase al div que envuelve un elemento de formulario, debemos usar el formFieldClass apoyo en un componente, y wrapperClass en otro. Hay un propType llamado isDefaultLayout y todos lo ponen a false y escribe clases CSS personalizadas encima. En otras palabras, el código radiactivo no solo nos dificulta entender todo este código sin sentido, sino que también hace que sea cada vez más difícil entender otras partes del código base. Porque el archivo que estamos viendo ahora tiene dependencias en ocho cosas diferentes que no podemos ver. El resultado de eliminar este código radiactivo significa cambiar todo lo demás que depende de él.

En otras palabras, el código radiactivo, como los componentes de nuestro formulario, hace que sea imposible confiar en el código base.

El código radiactivo no solo es malo para nosotros y nuestra base de código, sino que también es malo para nuestro equipo. Fomenta los malos hábitos, la crueldad en los hilos de Slack, sin mencionar que provoca fricciones entre los miembros del equipo que son difíciles de medir. El código radiactivo también anima a otros equipos de una empresa a actuar de forma deshonesta e introducir nuevas tecnologías en una base de código cuando el problema del código radiactivo no es la tecnología en sí. Cualquiera puede escribir este tipo de código, independientemente del idioma, el sistema o el linting cuando no presta suficiente atención al problema. O cuando intentan ser demasiado inteligentes. O cuando están tratando de impresionar a alguien.

¿Cómo arreglamos el código radiactivo? Bueno, debemos dibujar un círculo a su alrededor y contener la locura que se está filtrando en otras partes del código base. Entonces debemos hacer algo completamente heroico: debemos hacerlo aburrido.