プログラマーとして、私たちは書くことよりも読むことの方が多いです。私は、いくつかの「大きな」Python パッケージを使用する会社で働き始めました。KLOC が高いパッケージまたはパッケージファミリ。適切な例: Zope。
私の問題は、このコードベースをすばやく簡単にナビゲートできないことです。私の現在の戦略は、
- 変更/理解する必要があるモジュールを読み始めます
- 詳細を知る必要があるインポートにヒットしました
- インポートの後に Python デバッグ (pdb) ステートメントを配置し、モジュールをエコーすることで、そのインポートのソース コードがどこにあるかを調べます。これにより、それがソース ファイルであることがわかります。
- シェルまたは Vim ファイル エクスプローラーで、そこに移動します。
- ほとんどの場合、モジュール自体がさらに多くのモジュールをインポートし、それを知る前に、「プレート上に」10KLOC を持っています。
または:
- もっと知りたいメソッド/クラスがある
- コードベース全体でそのメソッド/クラスの定義を検索 (ack-grep) します (コードベースの一部が ~/.buildout-eggs にあるため、これは面倒な場合があります)。
- そのメソッド/クラスを定義する 1 つ以上のコードを見つけました
- 私はそれらのどれが私が読む必要があるものであるかを推測しなければなりません
これには多くの時間がかかりますが、これは大きなコードベースでは理解できます。しかし、大規模で未知の Python コードベースをナビゲートすることは、十分に一般的な問題であると感じています。
そこで、この問題に対する技術的なツールや戦略的な解決策を探しています。...
筋金入りの Python プログラマーが上で概説した戦略を使用しているとは想像できません。