Bueno, la pregunta está en el título: ¿cómo puedo mejorar mis habilidades de lectura de códigos?
El entorno de software / hardware en el que actualmente desarrollo es bastante lento con respecto a los tiempos de compilación y el tiempo que tarda todo el sistema en probar. El sistema es bastante antiguo / complejo y, por lo tanto, dividirlo en varios subproyectos más pequeños y manejables no es factible en un futuro cercano.
Me di cuenta de que lo que realmente dificulta el progreso del desarrollo son mis habilidades de lectura de códigos. ¿Cómo mejoro mis habilidades de lectura de código, para poder detectar la mayoría de los errores y problemas en el código incluso antes de presionar la tecla "compilar", incluso antes de iniciar el depurador?
Respuestas:
Leer más código
Yo, por mi parte, obtuve mis habilidades de lectura de códigos algo decentes al leer las preguntas de certificación, que eran muy difíciles de seguir, porque estaban mal escritas a propósito
Se supone que deben probar su conocimiento del lenguaje (Java en mi caso) después de todo.
Cuanto más código leas, más experiencia acumularás, así de simple
fuente
Mejore su entorno de desarrollo tanto como sea posible para que pueda brindarle comentarios que pueda usar.
Los IDE modernos pueden ayudar MUCHO si puede proporcionarles la información necesaria. Ejemplos son:
También existen programas que pueden identificar errores lógicos en sus programas, que puede usar para obtener aún más información sobre su programa de la que puede aprender.
Además, su IDE puede ayudarlo a navegar su fuente cuando conoce todas estas cosas. Esto le permite buscar cosas fácilmente en lugar de tener que memorizar todo
Le sugiero que edite su pregunta para proporcionar más información sobre el entorno con el que trabaja y los programas que escribe, para obtener mejores sugerencias.
fuente
Además de lo que todos los demás dijeron, necesita paciencia si va a leer el código (especialmente si no es suyo). Sí, leer por línea de código de memoria requiere práctica, pero todo vale la pena, y también aprende los estilos / trucos de codificación de otros. Esto es lo que compruebo en orden:
Estoy acostumbrado a codificar en un editor de texto plano, por lo que Ctrl + F es mi amigo, pero un IDE es muy útil, especialmente cuando estás leyendo desde varios archivos.
Ahora, si usted es quien va a escribir el código, no tenga miedo de poner espacios en blanco y muescas, y comentarios. Honestamente, si no parece agradable a la vista, se convierte en un dolor en la cabeza.
fuente
Incluso si pudiera detectar todos los errores antes de presionar compilar, aún lo comprobaría probando y compilando. Solo confiaría en una prueba positiva y un programa en ejecución.
Creo que las buenas habilidades de lectura de códigos pueden llevarte muy lejos en la hipótesis sobre el código. "¡Probablemente esto saldría mal!", Y prueba eso. Y al encontrar errores "esta podría ser la causa, vamos a probarlo"
La mejor manera de llegar es escribiendo el código usted mismo. La segunda mejor manera es que el código simplemente es realmente bueno y se explica por sí mismo (si es realmente difícil, el código simplemente no es tan bueno)
Si no es su propio código y no está bien escrito, la única forma de mejorar es haciendo, haciendo, haciendo. Lea el código, pruebe cosas diferentes, escriba pruebas contra él, conozca la base del código, refactorice. Las herramientas pueden ayudar, herramientas que pueden encontrar dónde se usan los métodos, dónde se implementan las interfaces, dónde se declaran las variables, etc. Y herramientas que le brindan una visión general de los espacios de nombres, sus relaciones y métricas sobre ellos.
fuente
Tuve un problema similar en el pasado: mi truco consistía en escribir una pequeña prueba, dejar el escritorio por un rato, volver y simular la prueba en papel. De esta manera, puede revisar su código con una nueva apariencia, y tiene un valor específico para verificar (a diferencia de revisar su código y decir "ahh ... ahh ... tiene sentido")
fuente
Posiblemente sería bueno enfocarse en aprender una habilidad de lectura de códigos a la vez, tal como en las revisiones formales de códigos cada revisor tiene una responsabilidad diferente. Tome un cuerpo de código y pase una semana (digamos) buscando solo nombres de variables incorrectos. Golpee el mismo código nuevamente la próxima semana buscando posibles punteros nulos; la próxima semana busque bloques de código duplicados; luego problemas de subprocesos múltiples, etc.
Después de dedicar un tiempo dedicado a perfeccionar diferentes detectores, es posible que ahora pueda leer el código con un par, o tal vez todos, activos, por lo que ahora tiene un sentido más rico del código en una sola lectura.
fuente
Si está hablando de errores de compilación, no va a suceder. La mejor solución para los errores del compilador es asignar a la persona que rompió la compilación para que cuide las compilaciones hasta que alguien más la rompa. Lo rompiste, lo arreglaste.
Los errores lógicos son mucho más difíciles de detectar y de prevenir. Una técnica para prevenir los casos simples es escribir pruebas de unidad / regresión.
fuente
Un consejo que escuché esta mañana (en SE Radio) fue tomar un archivo y reducirlo a 3pt tipo, luego buscar patrones en el texto. No podrá leer el texto, pero aparecerán todo tipo de patrones. Es más bien un buen truco.
Y este es uno de esos lugares donde la línea de comando es su amigo, grep y pipelines pueden hacer muchas cosas útiles.
fuente
Solía ser instructor de programación durante varios años. Durante este período, pasé mucho tiempo leyendo códigos y comentando sobre ellos. Esto implica detectar errores de compilación (no siempre compilamos el código de los estudiantes), errores de lógica y diseño y problemas de estandarización.
Para hacerlo bien, tuvimos que desarrollar un buen ojo para este tipo de errores y poder "ejecutar en seco" el código. Este tipo de actividad también me expuso a muchos estilos de codificación. Hoy mis habilidades de lectura de códigos son bastante buenas gracias a ese período.
Así que mi sugerencia para ti es esta:
¡Buena suerte!
fuente