Anuncio
Sin duda, la programación es difícil.. 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 deslumbrar.
En cierto modo, escribir código limpio es muy parecido a dibujar, cocinar o fotografiar, 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 para 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 intencionales.
- 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 descubrir qué hacen realmente ciertos segmentos y más tiempo reparando, revisando, extendiendo, etc.
- Las ideas se comunican más claramente. Si está trabajando con otros programadores, un 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. Usar nombres descriptivos
¿Qué son las variables, clases y funciones? Hay muchas maneras de responder 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 descriptos para variables, clases y funciones, básicamente está ofuscando la lógica de la aplicación de cualquier programador que lea el código, incluyéndote a ti mismo.
"No soy un gran programador; Solo soy un buen programador con buenos hábitos ".
- Kent Beck
¿Qué significa una variable llamada dxy
en realidad significa? Quién sabe. Probablemente tendría 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 distanceBetweenXY
Es instantáneamente reconocible.
Lo mismo es cierto para las clases y funciones. No te conformes con CalcTan ()
cuando puedes ir por CalculateTangent ()
o CalcTangentAngle ()
en lugar.
2. Dé 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 ha hecho, entonces sabe lo difícil que puede ser 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 fragmentos 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 dividirse 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 un fragmento de código, así que lo comento y reescribo justo debajo de él, y aunque funciona, mantengo el código antiguo 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 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 pero que desordenan mis archivos fuente. 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 cuestión es que esta práctica de comentar el "código de respaldo" quedó obsoleta por el control de la fuente. Si no está usando algo como Git o Mercurial, debe comience a usar el control de fuente de inmediato. Un código más limpio te espera.
Recuerde, también es importante evitar escribir código repetitivo, que puede lograr fácilmente con un marco web. Aquí hay algunos marcos web que vale la pena aprender como desarrollador 5 marcos web que vale la pena aprender para desarrolladores¿Interesado en aprender desarrollo web avanzado? Evite escribir código repetitivo en su lugar utilice estos marcos de desarrollo web. Lee mas .
4. Legibilidad> Inteligencia
Demasiados programadores combinan "código limpio" con "código inteligente", como si la compactación de diez líneas en una fuera más limpia. 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 inteligente como puedes ser cuando lo escribes, ¿cómo lo vas a depurar?
- Brian W. Kernighan
Creo que los programadores aman 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 un código limpio, debes dejar tu ego en la puerta.
Siempre optimice el código para la próxima persona que lo va a leer, porque con toda probabilidad la próxima persona es en realidad va a ser USTED y no hay nada más vergonzoso que no poder leer o comprender el suyo astucia.
5. Mantenga un estilo de codificación consistente
yo tengo nada en contra de buenos tutoriales 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 tu tiempo. Esto es lo que debe buscar en un tutorial de programación de calidad. Lee mas , pero una de las desventajas es que los novatos terminan adquiriendo una amplia 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 aparatos ortopédicos en sus propias líneas, hazlo. Si desea preceder las llamadas a métodos 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 constante!
Hermoso 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.
Escaso es mejor que denso.
La legibilidad cuenta.
- Tim Peters, El zen de pitón
Si vas a usar camelCaseNaming
para variables, no lo adulteres con subrayado_naming
. Si utiliza GetThisObject ()
en un lugar, no vayas con FetchThatObject ()
en algún otro lugar. Y si mezclas pestañas y espacios, mereces que te quiten el teclado.
Decida qué va a hacer desde el principio y sígalo de principio a fin. Algunos lenguajes, como Python y C #, tienen guías de estilo en todo el lenguaje que es posible que desee seguir.
6. Elija la arquitectura correcta
Existen muchos paradigmas y arquitecturas diferentes que puede usar para crear sus proyectos. Tenga en cuenta cómo se trata este consejo sobre la selección de Correcto uno para sus necesidades, no se trata de seleccionar el 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 en este momento en el desarrollo web porque ayuda a mantener su código organizado y diseñado de una manera que minimiza 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 los datos y la lógica del juego de una manera que facilita el mantenimiento, todo mientras produce código que es más fácil de leer.
7. Domina los modismos del lenguaje
Una de las dificultades en dominar un nuevo lenguaje de programación 7 trucos útiles para dominar un nuevo lenguaje de programaciónEstá bien sentirse abrumado cuando aprende a codificar. Probablemente olvidará las cosas tan rápido como las aprenda. Estos consejos pueden ayudarlo a retener mejor toda esa información nueva. Lee mas 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 un diferente forma de pensar según el idioma que elija usar.
"No vale la pena conocer un lenguaje que no afecta la forma en que piensas sobre la programación".
- Alan J. Perlis
Mientras que Python tiene que ver con el código compacto y el tipeo de patos, Java está más del lado de la verbosidad y la explícita 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.
También hay "antipatrones" de los que preocuparse, que son esencialmente patrones de diseño subóptimos que resultan en un código ineficiente, poco confiable o de otro modo malo. Estudie y desaprenda todos los antipatrones comunes relacionados con su idioma de elección.
8. Estudie 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 e intentar entiendo por qué es así, y no hay mejor manera de hacerlo que estudiando los archivos fuente de maestros de la industria.
Obviamente, no puede simplemente ingresar a la sede de Microsoft y echar un vistazo a sus proyectos, sino que siempre puede navegar por proyectos conocidos de código abierto Cómo ver y editar el código fuente de una aplicación de código abiertoSi 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 ... Lee mas . ¿No sabes por dónde empezar? Prueba el proyectos exhibidos 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 del código existente
Después de todo, esa es una de las razones por qué existen proyectos de código abierto ¿Por qué las personas contribuyen a proyectos de código abierto?El desarrollo de código abierto es el futuro del software. Es excelente para los usuarios porque el software de código abierto generalmente está disponible de forma gratuita y, a menudo, es más seguro de usar. Pero, ¿qué obliga a los desarrolladores a contribuir con código gratis? Lee mas : para que otros puedan aprender de ellos. Y si decides contribuir a tal proyecto, puede acelerar el proceso de aprendizaje 5 ideas de proyectos para ayudarlo a aprender a programar más rápidoHay algunas maneras de facilitar la curva de aprendizaje para la programación. Ensúciate las manos y aprende más rápido con proyectos paralelos que puedes comenzar en cualquier momento. Juega un poco con estos cinco. Lee mas .
Personalmente, la primera vez que vi un código realmente limpio fue cuando me topé con el proyecto Python de código abierto de cierto aficionado. El código era tan abrumadoramente elegante que casi dejé de programar, pero terminó enseñándome mucho.
9. Escribe buenos comentarios
"Escribir 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 los alienta a comentar con la mayor frecuencia posible.
Pero casi parece que nos hemos desviado demasiado en la dirección opuesta. Los novatos, en particular, tienden a comentar en exceso, describiendo cosas que no necesitan ser descritas y perdiendo el punto de lo que realmente es un "buen comentario".
"Siempre codifica como si el tipo que termina manteniendo tu código sea un psicópata violento que sabe dónde vives".
- John Woods
Aquí hay una buena regla general: existen comentarios para explicar POR QUÉ existe un fragmento de código en lugar de QUÉ hace realmente el código. Si el código está escrito de manera suficientemente clara, debería explicarse por sí mismo 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 debería descubrir cosas que no se pueden deducir 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 el consejo más importante a tener en cuenta.
En resumen, refactorizar es solo 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 que esa comprensión sea más evidente de inmediato".
- Martin Fowler, Refactorización: mejora del diseño del código existente
Un poco de sabiduría que se me ha quedado grabado es el dicho: "No comente el código incorrecto. Reescríbalo. Como explica Fowler en la cita anterior, si el código se siente lo suficientemente confuso como para tener que comentarlo, tal vez necesite refactorizarlo.
Además, a medida que 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 a la larga dará sus frutos (e incluso puede evitar el agotamiento mental Programación Burnout: Cómo recuperar su motivación perdidaEscribir todas esas líneas de código puede ser agotador física y emocionalmente. Todo lo que necesita para volver a subir es la conciencia de que se puede recuperar la motivación. Lee mas ).
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 maneras incorrectas de hacerlo, y llevará años Maestro.
Algunas personas no tienen lo que se necesita y finalmente terminan abandonando la programación para siempre 6 señales de que no debes ser programadorNo todos están hechos para ser programadores. Si no está completamente seguro de que está destinado a ser un programador, aquí hay algunas señales que pueden indicarle la dirección correcta. Lee mas - y eso está bien porque hay muchos otros trabajos técnicos que no implican codificación La codificación no es para todos: 9 empleos tecnológicos que puede obtener sin ellaNo se desanime si quiere ser parte del campo tecnológico. ¡Hay muchos trabajos para personas sin habilidades de codificación! Lee mas . Pero para todos los demás, el código limpio es algo por lo que vale la pena esforzarse, incluso si lleva el resto de su vida llegar allí.
Joel Lee tiene un B.S. en informática y más de seis años de experiencia profesional en redacción. Es el editor en jefe de MakeUseOf.