10 consejos para escribir un código más limpio y mejor

Escribir código limpio parece más fácil de lo que realmente es, pero los beneficios valen la pena. Así es como puede comenzar a escribir un código más limpio hoy.

Escribir código limpio parece más fácil de lo que realmente es, pero los beneficios valen la pena.  Así es como puede comenzar a escribir un código más limpio hoy.
Anuncio

Sin lugar a dudas, la programación es difícil Cómo aprender a programar sin todo el estrés Cómo aprender a programar sin todo el estrés Tal vez hayas decidido seguir con la programación, ya sea para una carrera o simplemente como un hobby. ¡Estupendo! Pero tal vez estás empezando a sentirse abrumado. No muy bien. Aquí hay ayuda para facilitar su viaje. Lee mas . Una cosa es aprender idiomas y estudiar algoritmos, pero es una bestia completamente diferente que intenta codificar una aplicación de trabajo compleja que no hace que quieras sacarte los ojos.

En cierto modo, escribir código limpio se parece mucho al dibujo, a la cocina o a la fotografía 5 Aficiones creativas que te harán una persona más feliz 5 Aficiones creativas que te convertirán en una persona más feliz Un recurso creativo adecuado puede hacer maravillas para tu salud mental y, en general felicidad. Aquí hay algunos pasatiempos creativos que han demostrado ayudar de esta manera. Leer más: se ve más fácil de lo que realmente es. ¿Entonces, para qué molestarse? Bueno, porque los beneficios valen la pena:

  • Los problemas se vuelven más fáciles de resolver. Una vez que comienzas a pensar en un código limpio, tu enfoque a los cambios en la resolución de problemas. En lugar de soluciones de fuerza bruta, sus algoritmos y diseño de software se vuelven más elegantes e intencionales.
  • Se pierde menos tiempo en el mantenimiento. El código limpio es más fácil de leer y comprender, por lo que pasa menos tiempo tratando de descubrir qué hacen ciertos segmentos en realidad y más tiempo para arreglar, revisar, extender, etc.
  • Las ideas se comunican más claramente. Si está trabajando con otros programadores, el código limpio reduce la probabilidad de malentendidos entre todos ustedes, lo que también significa menos errores a largo plazo.

Así es como USTED puede comenzar a escribir código limpio.

1. Usa nombres descriptivos

¿Qué son variables, clases y funciones? Hay muchas maneras de responder eso, pero cuando realmente piensas en eso, esas cosas no son más que la interfaz entre un programador y la lógica subyacente de una aplicación.

Por lo tanto, cuando utiliza nombres confusos y no descriptivos para variables, clases y funciones, esencialmente está ofuscando la lógica de la aplicación de cualquier programador que lea el código, incluido usted mismo.

"No soy un gran programador; Solo soy un buen programador con buenos hábitos ".
- Kent Beck

¿Qué significa realmente una variable llamada dxy ? Quién sabe. Probablemente tendrías que leer todo el fragmento de código para invertir su significado. Por otro lado, el significado de una variable como distanceBetweenXY es instantáneamente reconocible.

Lo mismo es cierto para las clases y funciones. No se conforme con CalcTan() cuando puede CalcTangentAngle() CalculateTangent() o CalcTangentAngle() lugar.

2. Dar a cada clase / función un propósito

¿Alguna vez has echado un vistazo dentro de una función que tenía cientos o incluso miles de líneas de largo? Si lo has hecho, entonces sabes cuán difícil puede ser navegar, comprender y editar. Los comentarios pueden ayudar pero solo en un grado limitado.

"La programación está rompiendo una gran tarea imposible en varias pequeñas tareas posibles".
- Jazzwant

El código de limpieza se divide en fragmentos atómicos. Cada función debe tener como objetivo hacer una sola cosa y cada clase debe aspirar a representar un concepto en particular. Esto es una simplificación, por supuesto, pero cuando hay dudas, más simple es más limpio.

En la práctica, un cálculo complejo como GetCreditScore() puede necesitar dividirse en varias funciones de ayuda como GetCreditReports(), ApplyCreditHistoryAge() y FilterOutstandingMarks() .

3. Eliminar el código innecesario

Este mal hábito es uno con el que aún lucho de vez en cuando. Suele suceder así: quiero arreglar u optimizar un fragmento de código, así que lo comento y hago una reescritura justo debajo de él, y aunque funciona, guardo el código anterior allí por si acaso.

"¿Es posible que el software no sea como cualquier otra cosa, que esté destinado a ser descartado: que el objetivo es siempre verlo como una burbuja de jabón?"
- Alan J. Perlis

Con el tiempo, acumulo una gran cantidad de bloques de código comentados que ya no son necesarios y que atesoran mis archivos fuente. Y lo curioso es que, en muchos casos, el código que lo rodea ha evolucionado, por lo que el código comentado no funcionaría incluso si se restaurara.

El hecho es que esta práctica de comentar el "código de copia de seguridad" quedó obsoleta por el control de la fuente. Si no está usando algo como Git o Mercurial, necesita comenzar a usar el control de código fuente de inmediato Qué es Git y por qué debería usar el control de versiones Si es desarrollador Qué es Git y por qué debería usar el control de versiones si ' re un desarrollador Como desarrolladores web, muchas veces tendemos a trabajar en sitios de desarrollo local y luego solo cargamos todo cuando terminamos. Esto está bien cuando eres solo tú y los cambios son pequeños, ... Leer más. Código más limpio te espera.

4. legibilidad> inteligencia

Demasiados programadores combinan "código limpio" con "código inteligente", como si compactar diez líneas en uno fuera más limpio. Claro, ocupa menos espacio en la pantalla, pero ¿es realmente más fácil de entender? A veces, tal vez. Pero la mayor parte del tiempo? No.

"Todo el mundo sabe que la depuración es el doble de difícil que escribir un programa en primer lugar. Entonces, si eres tan listo como puedes cuando lo escribes, ¿cómo lo depurarás alguna vez? "
- Brian W. Kernighan

Creo que a los programadores les encanta el código inteligente porque se siente como un acertijo o acertijo resuelto. Encontraron una forma especial y única de implementar algo, un "atajo" si lo desean, y casi actúa como una validación de las habilidades del programador.

Pero para escribir código limpio, necesitas dejar tu ego en la puerta.

Siempre optimice el código para la siguiente persona que vaya a leerlo, porque con toda probabilidad la próxima persona será TÚ y no habrá nada más vergonzoso que no poder leer o comprender tu propia inteligencia.

5. Mantenga un estilo de codificación coherente

No tengo nada en contra de los buenos tutoriales de programación ¿Qué hace que un buen tutorial de programación? ¿Qué hace un buen tutorial de programación? No todos los tutoriales de programación se hacen iguales. Algunos te benefician y otros terminan perdiendo el tiempo. Esto es lo que debe buscar en un tutorial de programación de calidad. Lea más, pero una de las desventajas es que los novatos terminan adquiriendo una gran variedad de hábitos contradictorios, especialmente en lo que respecta al estilo de codificación.

No estoy aquí para declarar que un estilo es mejor que otro. Si quieres frenillos en sus propias líneas, ve por ello. Si quiere preceder llamadas de método con espacios, bien. Si prefieres pestañas a espacios, no dejes que te convenza de lo contrario.

¡Pero hagas lo que hagas, mantente constante!

Hermoso es mejor que feo.
Explícito es mejor que implícito.
Simple es mejor que complejo.
Complejo es mejor que complicado.
Flat es mejor que anidado.
Sparse es mejor que denso.
La legibilidad cuenta
- Tim Peters, El Zen de Python

Si va a usar camelCaseNaming para variables, no lo camelCaseNaming con underscore_naming . Si usa GetThisObject() en un lugar, no vaya con FetchThatObject() otro lugar. Y si mezclas pestañas y espacios, mereces que te quiten el teclado.

Decida qué va a hacer desde el principio y quédese con él de principio a fin. Algunos lenguajes, como Python y C #, tienen guías de estilo en todo el idioma que quizás desee seguir.

6. Elija la arquitectura correcta

Existen muchos paradigmas y arquitecturas diferentes que puede usar para crear sus proyectos. Tenga en cuenta que este consejo trata de seleccionar el más adecuado para sus necesidades, no de seleccionar el mejor por ahí. No hay "lo mejor" aquí.

"Sin requisitos y diseño, la programación es el arte de agregar errores a un archivo de texto vacío".
- Louis Srygley

Por ejemplo, el patrón Modelo-Vista-Controlador (MVC) es muy popular ahora en el desarrollo web porque ayuda a mantener su código organizado y diseñado de una manera que minimice los esfuerzos de mantenimiento.

Del mismo modo, el patrón Entity-Component-System (ECS) es muy popular en este momento en el desarrollo de juegos porque ayuda a modularizar la lógica y los datos del juego de una manera que facilita su mantenimiento, al mismo tiempo que produce un código que es más fácil de leer.

7. Domine las expresiones idiomáticas de la lengua

Una de las dificultades para dominar un nuevo lenguaje de programación 7 Trucos útiles para dominar un nuevo lenguaje de programación 7 Trucos útiles para dominar un nuevo lenguaje de programación Está bien sentirse abrumado cuando está aprendiendo a codificar. Probablemente olvidará las cosas tan rápido como las aprenda. Estos consejos pueden ayudarlo a conservar mejor toda esa nueva información. Leer más es aprender los matices que lo separan de todos los demás idiomas. Estos matices pueden ser la diferencia entre el código feo y enrevesado y el código hermoso y fácil de mantener.

Considere Python, Java y JavaScript. Todos son extremadamente diferentes entre sí, en un grado que requiere una forma diferente de pensar dependiendo de qué idioma elijas usar .

"No vale la pena conocer un idioma que no afecte la forma en que piensas acerca de la programación".
- Alan J. Perlis

Mientras que Python tiene que ver con el código compacto y el tipado de pato, Java está más al lado de la verbosidad y la explicitud. Cada idioma tiene modismos (como listas de comprensión en Python) que fomentan una cierta forma de codificación. Harías bien en aprenderlos.

También hay "antipatrones" de los que preocuparse, que son esencialmente patrones de diseño subóptimos que dan como resultado un código ineficiente, poco confiable o, por lo demás, malo. Estudia y desaprende todos los antipatrones comunes relacionados con tu idioma de elección.

8. Estudia el Código de Maestros

Si desea escribir código limpio, lo mejor que puede hacer es ver qué aspecto tiene el código limpio y tratar de entender por qué es así, y no hay mejor manera de hacerlo que estudiando los archivos fuente de la industria. Maestros.

Obviamente, no puede simplemente ingresar a la sede de Microsoft y echar un vistazo a sus proyectos, pero siempre puede navegar por proyectos de código abierto conocidos. Cómo ver y editar el código fuente de una aplicación de código abierto Cómo ver y editar el código fuente De una aplicación de código abierto Si bien el código abierto puede ser una buena opción, también deberá invertir en la comunidad adecuada. GitHub es uno de los mejores lugares para hacer esto, no solo por la gran cantidad ... Leer más. ¿No sabes por dónde empezar? Prueba los proyectos presentados en Github.

"Cualquier tonto puede escribir código que una computadora puede entender". Los buenos programadores escriben códigos que los humanos pueden entender ".
- Martin Fowler, refactorización: mejorar el diseño del código existente

Después de todo, esa es una de las razones por las que existen proyectos de código abierto ¿Por qué la gente contribuye a proyectos de código abierto? ¿Por qué la gente contribuye a proyectos de código abierto? El desarrollo de código abierto es el futuro del software. Es genial para los usuarios porque el software de código abierto generalmente está disponible gratis y, a menudo, es más seguro de usar. Pero, ¿qué obliga a los desarrolladores a contribuir con código de forma gratuita? Leer más: para que otros puedan aprender de ellos. Y si decide contribuir a ese proyecto, puede acelerar el proceso de aprendizaje. 5 Ideas de proyectos para ayudarle a aprender Programación más rápida 5 Ideas de proyectos para ayudarle a aprender Programación más rápida Hay algunas maneras de facilitar la curva de aprendizaje para la programación. Ensuciate las manos y aprende más rápido con proyectos paralelos que puedes comenzar en cualquier momento. Juega con estos cinco. Lee mas .

Personalmente, la primera vez que vi un código verdaderamente limpio es cuando me topé con el proyecto de código abierto de Python de un aficionado. El código era tan abrumadoramente elegante que casi dejé de programar, pero terminó por enseñarme mucho.

9. Escribe buenos comentarios

"Escribir buenos comentarios" es el consejo más antiguo en el mundo de la programación. De hecho, tan pronto como se les presenta a los novatos los comentarios, se les anima a que comenten tan a menudo como puedan.

Pero casi parece que hemos ido demasiado lejos en la dirección opuesta. Los principiantes, en particular, tienden a hacer un comentario excesivo, describiendo cosas que no necesitan ser descritas y sin entender qué es realmente un "buen comentario".

"Siempre codifica como si el tipo que termina manteniendo tu código será un psicópata violento que sabe dónde vives".
- John Woods

Aquí hay una buena regla general: existen comentarios para explicar por qué existe una porción de código en lugar de QUÉ hace realmente el código. Si el código está escrito de forma suficientemente clara, debería ser autoexplicativo en cuanto a lo que hace: el comentario debería arrojar luz sobre la intención detrás de por qué fue escrito.

Los comentarios pueden ser buenos para las advertencias (es decir, "eliminar esto romperá A, B y C"), pero en su mayor parte deben descubrir cosas que no pueden obtenerse inmediatamente del código (es decir, "use este parámetro porque X, Y, y Z ").

10. Refactor, Refactor, Refactor

Así como la edición es parte del proceso de escritura, la refactorización es parte del proceso de codificación. Una aversión a la refactorización es la forma más rápida de terminar con un código que no se puede mantener, por lo que en muchos sentidos este es realmente el consejo más importante a considerar.

En resumen, refactorizar es simplemente un término elegante para limpiar el código sin afectar su comportamiento real.

"Cada vez que tengo que pensar para entender lo que está haciendo el código, me pregunto si puedo refactorizar el código para hacer que esa comprensión sea más inmediata".
- Martin Fowler, refactorización: mejorar el diseño del código existente

Un poco de sabiduría que se ha quedado conmigo es el dicho: "No comentes un código malo". Reescríbelo. "Como Fowler explica en la cita anterior, si el código se siente tan confuso que necesitas comentarlo, quizás necesites refactorizarlo.

Además, mientras edita fragmentos de código aquí y allá a lo largo de su proyecto, siempre deje el código en un mejor estado que cuando lo encontró por primera vez . Puede parecer una molestia en el momento, pero valdrá la pena a largo plazo (e incluso puede evitar el agotamiento mental Programación de Burnout: Cómo recuperar su motivación perdida Programación de Burnout: Cómo recuperar su motivación perdida Escribiendo todas esas líneas de el código puede ser agotador física y emocionalmente. Todo lo que necesita para recuperarse es la conciencia de que la motivación puede recuperarse. Lea más).

Siempre hay algo nuevo para aprender

Un programador que está aprendiendo a escribir código limpio es similar a un novelista que aprende a escribir prosa limpia: no hay una manera correcta de hacerlo en sí misma, pero hay muchas formas equivocadas de hacerlo, y tomará años para dominar

Algunas personas no tienen lo que se necesita y eventualmente terminan abandonando la programación para bien. 6 Señales de que no se pretende ser un programador. 6 Señales de que no se pretende ser un programador. No todo el mundo está decidido a ser un programador. Si no estás completamente seguro de que debes ser un programador, aquí hay algunos signos que pueden orientarte en la dirección correcta. Leer más - y eso está bien porque hay muchos otros trabajos técnicos que no implican codificación La codificación no es para todos: 7 trabajos tecnológicos que puede obtener sin que la codificación no sea para todos: 7 trabajos tecnológicos que puede obtener sin ella No se desanime si quiere formar parte del campo tecnológico: ¡hay muchos trabajos para personas que no saben cómo codificar! Lee mas .

Pero para todos los demás, el código limpio es algo a lo que vale la pena esforzarse, incluso si lleva el resto de su vida llegar allí.

¿Qué tan importante es el código limpio para usted? ¿Qué reglas sigues para mantener tu código limpio y organizado? ¿Tienes algún otro fragmento de sabiduría para compartir? Háganos saber en los comentarios a continuación!

In this article