Como programadores leemos más de lo que escribimos. Empecé a trabajar en una empresa que usa un par de paquetes "grandes" de Python; paquetes o familias de paquetes que tienen un alto KLOC. Caso en cuestión: Zope.Navegar por una gran base de código Python más rápido
Mi problema es que tengo problemas para navegar esta base de código rápida/fácilmente. Mi estrategia actual es
- empiezo a leer un módulo que necesito cambiar/entender
- llegué a una importación, que necesito saber más de
- que saber dónde está el código fuente para que la importación la hace colocar una instrucción de depuración de Python (pdb) después de las importaciones y hacer eco del módulo, que me dice que es el archivo de origen
- Navego hacia él, en shell o en el explorador de archivos Vim.
- mayor parte del tiempo el propio módulo importa más módulos y antes Sé que tengo 10 KLOC "en mi plato"
alternativa:
- veo un método/clase que necesito a saber más de
- hago una búsqueda (ACK-grep) para la definición de ese método/clase en toda la base de código (que puede ser un dolor debido a que el código base está en parte en ~/.buildout-huevos)
- Encuentro una o más piezas de código que definen ese método/Clase
- tengo que deducir cuál de ellos es el que necesito para leer
Esto cuesta mucho tiempo, lo cual es comprensible para una gran base de código. Pero tengo la sensación de que navegando por una base de código de Python grande y desconocida es un problema bastante común.
Así que estoy buscando herramientas técnicas o soluciones estratégicas para este problema. ...
acabo No puedo imaginar los programadores de Python incondicionales utilizando las estrategias descritas anteriormente.
https://github.com/mkomitee/vim-gf-python le interese, o más simplemente: http://vim.wikia.com/wiki/Automatically_add_Python_paths_to_Vim_path –
Jaja, como dicen, "primeros problemas mundiales" ... si pudiéramos hacer esto con proyectos en C (que normalmente no podemos a menos que el código de máquina en bruto) es su taza de té) el KLOC probablemente estaría más cerca de 100K; p –