language agnostic - ¿Cómo mejorar su lectura y comprensión del código?
language-agnostic (9)
"puedes mejorar las habilidades del código de lectura leyendo el código"
Correcto.
¿Qué código leer?
Cualquier proyecto de código abierto que te atraiga. La mayoría de la codificación de código abierto es notablemente buena.
Sin embargo, no lea el código al azar. Lee cosas que realmente te interesan. Cuanto más comprenda el dominio del problema, mejor podrá apreciar la solución que está leyendo.
Durante los últimos 5 o más años, he estado trabajando con proyectos y sistemas muy diferentes. El código para esos proyectos difería significativamente en términos de calidad, estilo y tamaño. Vi ejemplos de ambas: funciones limpias y desagradables de 1000 líneas y si las condiciones codifican.
Todavía no me siento muy competente para leer el código de otras personas, entender las partes internas de los sistemas, etc.
Me gustaría saber qué técnicas usa para mejorar su habilidad para leer y comprender el código de otras personas, cómo ponerse al día rápidamente, qué herramientas, métodos, etc. comúnmente se emplean.
Permítanme darles esta respuesta, que muchos simplemente apostarán por ella: usted puede mejorar las habilidades de lectura del código leyendo el código
Existe una publicación relevante para mejorar las habilidades de programación que puede ser útil y va a la par con esta publicación: ¿Cuál es la medida más efectiva que usted hizo para mejorar sus habilidades de programación?
2 cosas en particular
Refactor Cuando vea un código que oscurece las aguas de su IDE, refactorícelo para que tenga sentido, así que es fácil de preparar
Comentario Utilice la refactorización para dividir en compartimientos el "cómo", pero use su comentario para mostrar por qué.
Al igual que Steve McConnell dice en Code Complete 2, siga el proceso de programación de Psuedocode (en este caso, después de escribir el código). Te ayudará a ti y a los futuros desarrolladores a leer el código.
Aparte de la experiencia simple que conduce a la lectura del código mejor, sugiero adjuntar un depurador a la aplicación, agregar algunos puntos de interrupción y analizar los datos a medida que pasan por el sistema. De esa forma, usted SABE lo que está sucediendo, en lugar de suponer (por lógica o por otros medios) lo que está sucediendo.
Aprendes a nadar nadando, aprendes a leer leyendo. Primero intente leer pequeños fragmentos de código escritos por otros en su área favorita.
Empecé a hacerlo leyendo códigos Python en code.activestate.com sobre mis temas favoritos (matemática, algoritmos, etc.).
Ventajas:
- Los códigos Python son más limpios para que no te frustres en el primer intento .
- Comenzar con cosas manejables pequeñas ayuda (mucho).
- Usar herramientas como FREEMIND para organizar tus pensamientos también ayuda.
- Luego puede pasar a códigos más complejos y sucios.
Estoy de acuerdo con leer la codificación de fuente abierta. Hay un libro de O''reilly en Beautiful Code , pero apesta en mi opinión. Sugeriría libros que haya leído para preparar la programación de entrevistas, y que a menudo se sugieren (todos los enlaces que he puesto son enlaces de Google Books:
[Perlas de programación] es una buena (obtenga la edición más reciente, aunque los conceptos son los mismos), [La práctica de la programación] es otro clásico.
Estos son libros bastante prácticos con ejemplos reales del mundo del código
Además, practica escribir código de prueba para proyectos ya existentes. Esto tiende a ayudarte al hacerte forzar a comprender exactamente lo que hace la función. Si los resultados no son los que esperaba, se ve obligado a pensar por qué el código de la persona no funciona como esperaba para esas pruebas. Explorar y ver lo que dicen las personas con gran reputación siempre ayuda también.
Las cosas que me han ayudado, más que cualquier otra cosa, han sido probar y refactorizar. No puede decir: "Entiendo este código" hasta que sepa cómo romperlo con una prueba .
Lo que me ha ayudado, más que cualquier otra cosa, ha sido refactorizar.
Tome un proyecto (puede ser un proyecto de trabajo, un proyecto personal, un proyecto de código abierto, lo que sea) y comience a refactorizar.
Con el tiempo, cuanto más refactorice el código de otras personas, mejor se "meterá en su cabeza" y comprenderá su forma de pensar, sea buena o mala.
No solo lea el código de código abierto, únase a uno. De esta manera, usted puede preguntar "¿por qué fue escrito de esta manera?" Vs. simplemente leerlo. La mayoría de las veces, había una razón subyacente para hacer algo anormal, sea auténtico o no.
Además, si participa activamente, podrá ver la progresión de la base de código. Te familiarizarás con el estilo de desarrollo de diferentes personas. Esto puede proporcionar diferentes vías para que su cerebro camine cuando se encuentre con un proyecto no afiliado que necesita leer.
Yo personalmente creo en el
"Cualquier tonto puede escribir código que una computadora puede entender. Los buenos programadores escriben códigos que los humanos pueden entender". -Martin Fowler
así que mi enfoque sería encontrar a esa persona y volarle la cabeza para que no propague este virus.