10 consejos para escribir código más limpio y mejor
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 haya decidido dedicarse a la programación, ya sea para una carrera o simplemente como pasatiempo. ¡Genial! Pero tal vez estás empezando a sentirte 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 te hace querer sacarte los ojos..
En cierto modo, escribir código limpio es muy parecido a dibujar, cocinar o fotografiar. 5 Pasatiempos creativos que lo harán una persona más feliz 5 Pasatiempos creativos que lo harán una persona más feliz felicidad. Aquí hay algunos pasatiempos creativos que han demostrado ayudar de esta manera. Leer más - parece más fácil de lo que realmente es. ¿Entonces, para qué molestarse? Bueno, porque los beneficios lo valen:
- Los problemas se vuelven más fáciles de resolver.. Una vez que comience a pensar en código limpio, su enfoque hacia la resolución de problemas cambia. En lugar de soluciones de fuerza bruta, sus algoritmos y diseño de software se vuelven más elegantes e intencionados..
- Se pierde menos tiempo en mantenimiento. El código limpio es más fácil de leer y comprender, por lo que pasa menos tiempo tratando de averiguar qué hacen realmente ciertos segmentos y más tiempo para corregir, revisar, ampliar, 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. Use nombres descriptivos
¿Qué son las variables, clases y funciones? Hay muchas formas de responder a eso, pero cuando realmente lo piensas, esas cosas no son más que la interfaz entre un programador y la lógica subyacente de una aplicación..
Entonces, cuando usa nombres poco claros y no descriptivos para variables, clases y funciones, Básicamente, usted está confundiendo la lógica de la aplicación de cualquier programador que lea el código., incluyéndote.
“No soy un gran programador; Solo soy un buen programador con buenos hábitos..”
- Kent Beck
¿Qué hace una variable llamada dxy
en realidad significa? Quién sabe. Probablemente tendrías que leer todo el fragmento de código para aplicar ingeniería inversa a su significado. Por otro lado, el significado de una variable como distancia entre XY
es reconocible al instante.
Lo mismo es cierto para las clases y funciones. No conformarse con CalcTan ()
cuando puedes ir por CalculateTangent ()
o CalcTangentAngle ()
en lugar.
2. Dar a cada clase / función un propósito
¿Alguna vez has mirado dentro de una función que tenía cientos o incluso miles de líneas? Si lo ha hecho, entonces sabe cuánto le puede costar navegar, comprender y editar. Los comentarios pueden ayudar pero solo en un grado limitado.
“La programación está dividiendo una gran tarea imposible en varias pequeñas tareas posibles.”
- Jazzwant
El código limpio se divide en trozos atómicos. Cada función debe apuntar a hacer una sola cosa y cada clase debe apuntar a representar un concepto particular. Esto es una simplificación, por supuesto, pero en caso de duda, más simple es más limpio..
En la práctica, un cálculo complejo como GetCreditScore ()
puede necesitar ser dividido en varias funciones auxiliares como GetCreditReports ()
, ApplyCreditHistoryAge ()
, y FilterOutstandingMarks ()
.
3. Eliminar código innecesario
Este mal hábito es uno con el que todavía lucho de vez en cuando. Por lo general, sucede así: quiero arreglar u optimizar una parte del código, así que comento y reescribo justo debajo de él, y aunque funciona, mantengo el código antiguo por si acaso.
“¿Es posible que el software no sea como cualquier otra cosa, que esté destinado a ser descartado: que el objetivo es verlo siempre 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 abarrotan mis archivos de origen.. Y lo curioso es que, en muchos casos, el código circundante ha evolucionado, por lo que el código comentado no funcionaría incluso si se restaurara..
La cosa es, esta práctica de comentar “código de respaldo” Se hizo obsoleto por el control de la fuente. Si no está utilizando algo como Git o Mercurial, debe comenzar a usar el control de código fuente de forma inmediata. ¿Qué es Git y por qué debería usar el control de versiones? Si es un desarrollador. ¿Qué es Git y por qué debería usar el control de versiones? re como Desarrollador Como desarrolladores web, la mayoría de las veces tendemos a trabajar en sitios de desarrollo local y luego simplemente cargamos todo cuando terminamos. Esto está bien cuando solo eres tú y los cambios son pequeños, ... Leer más. Código limpiador te espera.
4. Legibilidad> Inteligencia
Demasiados programadores se confunden “código limpio” con “código inteligente”, como si compactar diez líneas en una es, de alguna manera, 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. Así que si eres tan inteligente como puedes ser cuando lo escribes, ¿cómo lo vas a depurar??”
- Brian W. Kernighan
Creo que a los programadores les encanta el código inteligente porque se siente como un enigma o acertijo resuelto. Encontraron una manera especial y única de implementar algo: un “atajo” si lo desea, 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 lo va a leer, porque es muy probable que la próxima persona sea TÚ y no hay nada más vergonzoso que ser incapaz de leer o entender su propia inteligencia..
5. Mantener un estilo de codificación consistente
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 son 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 conflictivos, especialmente en lo que respecta al estilo de codificación..
No estoy aquí para declarar que un estilo es mejor que otro. Si quieres llaves en sus propias líneas, ve por ello. Si desea preceder las llamadas de método con espacios, está bien. Si prefieres las pestañas a los espacios, no dejes que te convenza de lo contrario..
Pero hagas lo que hagas, mantente consistente!
Bello es mejor que feo.
Explícito es mejor que implícito.
Simple es mejor que complejo.
Complejo es mejor que complicado.
Plano es mejor que anidado.
Es escaso es mejor que denso.
La legibilidad cuenta.
- Tim Peters, El zen de pitón
Si vas a usar camelCaseNaming
Para las variables, no lo adulteres con. subrayado
. Si utiliza GetThisObject ()
en un lugar, no vayas con FetchThatObject ()
en algún otro lugar. Y si mezclas tabulaciones y espacios, mereces que te quiten el teclado.
Decida lo que va a hacer desde el principio y apéguese a ello. Algunos idiomas, como Python y C #, tienen guías de estilo en todo el idioma que puede seguir.
6. Elija la arquitectura correcta
Hay muchos paradigmas y arquitecturas diferentes que puede utilizar para crear sus proyectos. Observe cómo este consejo trata sobre la selección de Correcto una para sus necesidades, no para seleccionar la mejor uno por ahí No hay “mejor” aquí.
“Sin requisitos ni 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 manera que minimice los esfuerzos de mantenimiento.
De manera similar, el patrón Entidad-Componente-Sistema (ECS) es muy popular ahora en el desarrollo del juego porque ayuda a modularizar los datos y la lógica del juego de una manera que facilita el mantenimiento, al mismo tiempo que produce un código que es más fácil de leer..
7. Dominar los idiomas 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 aprende. Estos consejos pueden ayudarlo a conservar mejor toda la información nueva. Leer más es aprender los matices que lo separan de todos los demás idiomas. Estos matices pueden ser la diferencia entre un código feo y complicado y un 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 diferente forma de pensar dependiendo del idioma que elija utilizar.
“No vale la pena conocer un lenguaje que no afecte tu forma de pensar acerca de la programación..”
- Alan J. Perlis
Mientras que Python tiene que ver con código compacto y escritura de pato, Java es más hacia el lado de la verbosidad y lo explícito. Cada idioma tiene expresiones idiomáticas (como listas de comprensión en Python) que fomentan una cierta forma de codificación. Harías bien en aprenderlos.
Tambien hay “anti-patrones” de qué preocuparse, que son patrones de diseño esencialmente subóptimos que resultan en un código ineficiente, poco confiable o malo. Estudie y desapruebe todos los antipatrones comunes relacionados con el idioma que elija..
8. Estudiar el Código de Maestros.
Si desea escribir código limpio, lo mejor que puede hacer es ver cómo se ve 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 pueda entender. Los buenos programadores escriben código que los humanos pueden entender..”
- Martin fowler, Refactorización: Mejora del diseño de código existente
Después de todo, esa es una de las razones por las que existen proyectos de código abierto. ¿Por qué las personas contribuyen a los 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 suele estar disponible de forma gratuita y, a menudo, más seguro de usar. Pero, ¿qué obliga a los desarrolladores a aportar código gratis? Leer más: para que otros puedan aprender de ellos. Y si decide contribuir a un proyecto de este tipo, puede acelerar el proceso de aprendizaje. 5 Ideas de proyecto para ayudarlo a aprender más rápido. 5 ideas de proyecto para ayudarlo a aprender más rápido. Hay varias maneras de facilitar la curva de aprendizaje para la programación. Ensucie sus manos y aprenda más rápido con proyectos paralelos que puede comenzar en cualquier momento. Juega un poco con estos cinco. Lee mas .
Personalmente, la primera vez que vi un código realmente limpio es cuando me topé con el proyecto de código abierto de Python de cierto aficionado. El código era tan abrumadoramente elegante que casi dejé de programar, pero terminó enseñándome mucho.
9. Escribe buenos comentarios
“Escribe buenos comentarios” Es el consejo más antiguo del mundo de la programación. De hecho, tan pronto como los novatos son introducidos a 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 novatos, en particular, tienden a comentar en exceso: describen cosas que no necesitan ser descritas y no entienden lo que es “buen comentario” en realidad es.
“Siempre codifique como si el tipo que termina manteniendo su código sea un psicópata violento que sepa dónde vive..”
- John Woods
Aquí hay una buena regla general: existen comentarios para explicar POR QUÉ existe un fragmento de código en lugar de QUÉ realmente lo hace el código.. Si el código está escrito de manera suficientemente clara, debe explicarse por sí mismo en cuanto a lo que hace: el comentario debe aclarar la intención detrás de por qué se escribió..
Los comentarios pueden ser buenos para advertencias (es decir,. “eliminando esto se romperá A, B, y C”) pero en su mayor parte debería descubrir cosas que no se pueden extraer inmediatamente del código (es decir,. “usa 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 de muchas maneras este es el consejo más importante a considerar..
En resumen, la refactorización es solo un término sofisticado para limpiar el código sin afectar su comportamiento real.
“Cuando tengo que pensar para entender lo que hace el código, me pregunto si puedo refactorizar el código para que esa comprensión sea más evidente..”
- Martin fowler, Refactorización: Mejora del diseño de código existente
Un poco de sabiduría que se ha quedado conmigo es el dicho, “No comentar código malo. Reescribirlo.” Como explica Fowler en la cita anterior, si el código se siente lo suficientemente confuso como para que lo comentes, tal vez necesites refactorizarlo.
Además, a medida que edite bits de código aquí y allá a lo largo de su proyecto, siempre deje el código en un estado mejor 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 Burnout: Cómo recuperar tu motivación perdida Programación Burnout: Cómo recuperar tu motivación perdida Escribe todas esas líneas de el código puede estar agotando física y emocionalmente. Todo lo que necesita para hacer una copia de seguridad es la conciencia de que se puede recuperar la motivación. Leer más).
Siempre hay algo nuevo que 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 per se, pero hay muchas formas incorrectas de hacerlo, y tomará años para dominar.
Algunas personas no tienen lo que se necesita y finalmente terminan abandonando la programación para siempre. 6 Signos de que no se pretende que usted sea un programador. 6 de que no están destinados a ser programadores. No todos están hechos para ser programadores. Si no está completamente seguro de estar destinado a ser un programador, aquí hay algunas señales que pueden indicar la dirección correcta. Lea más, y está bien porque hay muchos otros trabajos tecnológicos que no implican la codificación La codificación no es para todos: 7 empleos tecnológicos que puede obtener sin ella La codificación no es para todos: 7 empleos tecnológicos que puede obtener sin ella No se desanime si quiere ser parte del campo de la tecnología. ¡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 por lo que vale la pena esforzarse, incluso si se necesita el resto de su vida para 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 trocito de sabiduría para compartir? Háganos saber en los comentarios a continuación.!
Explorar más sobre: Programación.