Come programmatori leggiamo più di quanto scriviamo. Ho iniziato a lavorare in un'azienda che utilizza un paio di pacchetti Python "grandi"; pacchetti o famiglie di pacchetti con un KLOC elevato. Caso in questione: Zope.Navigazione rapida di una grande base di codici Python
Il mio problema è che ho problemi a navigare in questo codice base velocemente/facilmente. La mia strategia attuale è
- inizio a leggere un modulo ho bisogno di cambiare/capire
- ho colpito uno di importazione, che ho bisogno di sapere di più di
- ho scoprire dove il codice sorgente per che l'importazione è di ponendo un'istruzione debug di Python (pdb) dopo le importazioni e facendo eco al modulo, che mi dice che è il file sorgente
- Ci si avvicina ad esso, nella shell o nel file explorer di Vim.
- la maggior parte delle volte il modulo stesso importa più moduli e prima che io so che devo 10KLOC "sul mio piatto"
alternativa:
- vedo un metodo/classe ho bisogno per saperne di più di
- faccio una ricerca (ACK-grep) per la definizione di tale metodo/classe su tutta la base di codice (che può essere un dolore, perché la base di codice è in parte in ~/.buildout-uova)
- Trovo uno o più pezzi di codice che definiscono quel metodo/Classe
- devo dedurre che uno di loro è quello che ho bisogno di leggere
Questo costa un sacco di tempo, il che è comprensibile per una grande base di codice. Ma ho l'impressione che lo che navighi su un codice Python numeroso e sconosciuto sia un problema abbastanza comune.
Quindi sto cercando strumenti tecnici o soluzioni strategiche per questo problema. ...
I just non può immaginare programmatori Python hardcore utilizzando le strategie descritte sopra.
https://github.com/mkomitee/vim-gf-python potrebbe interessarti, o più semplicemente: http://vim.wikia.com/wiki/Automatically_add_Python_paths_to_Vim_path –
Haha, come si suol dire, "problemi del primo mondo" ... se potessimo farlo con i progetti in C (che di solito non possiamo a meno che codice macchina non elaborato è la tua tazza di tè) il KLOC sarebbe probabilmente più vicino a 100K; p –