Ускорение навигации по большой кодовой базе Python

Как программисты, мы больше читаем, чем пишем. Я начал работать в компании, которая использует пару «больших» пакетов Python; пакеты или семейства пакетов -с высоким значением KLOC. Показательный пример :Zope.

Моя проблема в том, что у меня проблемы с быстрой/легкой навигацией по этой кодовой базе. Моя текущая стратегия

  • Я начинаю читать модуль, который мне нужно изменить/понять
  • Я наткнулся на импорт, о котором мне нужно знать больше
  • Я узнаю, где находится исходный код для этого импорта, помещая оператор Python debug (pdb )после импорта и повторяя модуль, который говорит мне, что это исходный файл
  • Я перехожу к нему в оболочке или проводнике файлов Vim.
  • в большинстве случаев сам модуль импортирует больше модулей, и, прежде чем я это узнаю, у меня уже есть 10KLOC «на моей тарелке»

. Альтернативно:

  • Я вижу метод/класс, о котором мне нужно знать больше
  • Я выполняю поиск (ack -grep )для определения этого метода/класса по всей кодовой базе (, что может быть проблемой, потому что кодовая база частично находится в ~/.buildout -яйца)
  • Я нашел один или несколько фрагментов кода, определяющих этот метод/класс
  • Я должен сделать вывод, какой из них мне нужно прочитать

Это требует много времени, что понятно для большой кодовой базы. Но у меня такое чувство, что навигация по большой и неизвестной кодовой базе Python — достаточно распространенная проблема.

Поэтому я ищу технические инструменты или стратегические решения этой проблемы....

Я просто не могу представить хардкорных программистов на Python, использующих описанные выше стратегии.

12
задан Niels Bom 2 August 2012 в 13:07
поделиться