¿Cómo comenzar a corregir errores en el software de código abierto?

8

Soy un estudiante con buenos conocimientos en programación en C y me gusta contribuir con cualquier proyecto de código abierto que se desarrolle en C. Busqué en SourceForge y seleccioné 7-Zip porque es ampliamente utilizado y desarrollado usando C.

Pensé comenzar primero arreglando errores (lo cual fue sugerido por muchas personas en sus sitios web) y revisé algunos errores, pero no podía entender cómo responder a ellos y cómo comenzar a corregirlos. No entendi nada.

¿Podría explicar cómo abordar esto? Incluso he revisado algunos archivos en el código fuente que descargué pero no entendí nada.

suryak
fuente
2
Deberías escribirle al
encargado de
+1: Te has planteado un excelente desafío. Fuera de la escuela, mucha programación implica trabajar en código que otras personas escribieron para agregar funciones o corregir errores. Además, puedes aprender mucho al ver cómo otros programadores hicieron las cosas.
Bob Murphy
@suryak: en el código fuente 7-Zip, solo los algoritmos de compresión del núcleo están escritos en C. Todo lo demás está escrito en C ++.
rwong

Respuestas:

9

Aquí hay una sugerencia:
Solicitudes de funciones: use "mover" en lugar de "copiar" de la carpeta temporal - ID: 1615140

¿Se puede cambiar el comportamiento de 7-zip para usar "mover" en lugar de "copiar" cuando 7-zip descomprime los archivos? El problema es con sistemas HDD únicos y archivos grandes, esto acelerará las cosas significativamente. WinRAR lo hace ahora.

Y explicaré por qué escojo este error como ejemplo.

Antes de decidir elegir este proyecto ...

  • ¿Te sientes cómodo con el código fuente de este proyecto?
    • ¿Puedes entender tanto el código C (principalmente los algoritmos de compresión del núcleo)?
    • ¿Y también el código C ++ (la mayoría de la "aplicación", la GUI y la línea de comando, y también todas las interacciones con los sistemas operativos)?
    • ¿Y también el estilo de codificación (típico de la programación Win32; sin usar MFC / ATL)?
  • ¿Invertirá su tiempo y esfuerzo en este sistema operativo?

Primer paso: ¿puedes reproducir el error?

  • Para elegir un error en el que trabajar, uno debe poder reproducir el problema en un entorno informático similar.
    • Este error requerirá que pruebe en una computadora que (1) la tempcarpeta tiene poco espacio libre (1-2 GB), (2) el destino de extracción está en la misma unidad que la tempcarpeta.
  • ¿Cuánto tiempo se necesita para "configurar" el entorno para reproducirlo?
    • Elija errores que sean fáciles de reproducir y fáciles de corregir.
  • ¿Es el error realmente un error?
    • Siempre trata de reproducirlo tú mismo. No confíes solo en las palabras de otros.
    • Como ingeniero / programador de software, vea si puede explicar el comportamiento del error en términos de su comprensión. A veces, los usuarios tienen expectativas poco realistas de cómo funcionan los sistemas de software / hardware y hacen solicitudes de funciones imposibles.
  • ¿Cómo confirmo mi comprensión? ¿Cómo sé si está copiando o moviendo el archivo?
    • Necesitará herramientas de diagnóstico, como Process Monitor . También puede ajustar la configuración de su máquina de prueba para probar diferentes escenarios.

Segundo paso: ¿Puedes localizar el código responsable de este comportamiento?

  • Se necesita una comprensión general aproximada del proyecto, según la respuesta de Larry Coleman .
  • Es mejor si tiene Visual Studio (un entorno de desarrollo integrado y depurador) para que pueda establecer puntos de interrupción y comprender el flujo del programa.

Tercer paso: hacer modificaciones y ver cómo afecta el comportamiento del programa.

Cuarto paso: presente sus cambios a sus compañeros de trabajo / desarrolladores pares y obtenga comentarios.

revs rwong
fuente
3

La corrección de errores puede no ser lo más fácil. Es más fácil que agregar nuevas características, por supuesto. Pero aún más fácil es actualizar la documentación o probar una nueva versión. Ambos le permitirán familiarizarse más con el código para que pueda saber lo suficiente como para corregir un error. También le da al aprendizaje sobre el código un sentido de propósito que ayuda a otros.

Jeanne Boyarsky
fuente
3

En mi opinión, una cosa muy importante que muchas personas que tienen la ambición de contribuir a las personas de código abierto pasan por alto, es la comunicación con los otros desarrolladores en el proyecto de código abierto.

Si desea contribuir a un proyecto de código abierto, lo primero que debe hacer es seguir lo que sucede en el proyecto. Si hay una lista de correo, un foro, un grupo de Google u otra forma en que los desarrolladores se comunican, únase allí. Descubra qué contribuciones son más necesarias. Haga preguntas sobre cómo funciona el software, etc.

Si solo descargas el código fuente, trata de entenderlo todo por ti mismo y te costará mucho más tiempo. Si arregla algo o agrega una nueva característica y luego la presenta de repente, es menos probable que sea aceptada.

Entonces, hable con los otros desarrolladores, descubra cuáles son los errores de mayor prioridad o las características faltantes, etc.

Jesper
fuente
2

Incluso he revisado algunos archivos en el código fuente que descargué pero no entendí nada.

Este es el primer error que debes corregir. Debe comprender la base del código antes de comenzar a corregir errores. De lo contrario, ¿cómo sabrá si sus soluciones romperán algo más?

Existen diferentes métodos para familiarizarse con el código en un proyecto al que se está uniendo. Mi método favorito es leer todo el código una vez, luego regresar y mirar las secciones con más detalle.

Larry Coleman
fuente