В качестве программистов мы читаем больше, чем пишем. Я начал работать в компании, которая использует пару "больших" пакетов Python; пакеты или семейства пакетов, которые имеют высокий уровень KLOC. Пример: Zope.
Моя проблема в том, что у меня проблемы с быстрой и быстрой переходом на эту кодовую базу. Моя текущая стратегия
- Я начинаю читать модуль, который мне нужно изменить/понять
- Я попал в импорт, который мне нужно знать больше
- Я узнаю, где исходный код для этого импорта, поместив инструкцию python debug (pdb) после импорта и повторив модуль, который сообщает мне исходный файл
- Я перехожу к нему, в оболочку или в проводник файла Vim.
- большую часть времени сам модуль импортирует больше модулей, и, прежде чем я это узнаю, у меня есть 10KLOC "на моей тарелке".
В качестве альтернативы:
- Я вижу метод/класс, мне нужно знать больше
- Я выполняю поиск (ack-grep) для определения этого метода/класса во всей кодовой базе (что может быть больно, потому что база кода частично находится в ~/.buildout-eggs)
- Я нахожу одну или несколько частей кода, которые определяют этот метод/класс
- Я должен определить, какой из них мне нужен, чтобы читать
Это стоит много времени, что понятно для большой кодовой базы. Но я чувствую, что перемещение большой и неизвестной кодовой базы Python является довольно распространенной проблемой.
Поэтому я ищу технические инструменты или стратегические решения для этой проблемы. ...
Я просто не могу представить себе хардкорных программистов на Python, используя стратегии, описанные выше.