2012-08-02 6 views
11

プログラマーとして、私たちは私たちが書く以上のものを読んでいます。私は、いくつかの「大きな」Pythonパッケージを使用する会社で働き始めました。パッケージまたはKLOCが高いパッケージファミリを選択します。ケース・イン・ポイント:Zope。大きなPythonコードベースをより速くナビゲート

私の問題は、このコードベースをすばやく簡単にナビゲートすることが難しいことです。私の現在の戦略は、私は私が理解/

  • を変更する必要があるモジュールを読み始める

    • である私は、その輸入のためのソースコードがである場合、私は見つける私は
    • の詳細を知る必要がインポートを打ちますインポート後にPythonデバッグ(pdb)ステートメントを置いてモジュールをエコーすると、ソースファイルであることがわかります
    • シェルまたはVimファイルエクスプローラでナビゲートします。
    • また

    「私のプレートに」10KLOCをモジュール自体は複数のモジュールをインポートし、私はそれを知っている前に、私が持っているほとんどの時間:私は私が必要とするメソッド/クラスを参照してください

    • もっと知るには
    • コードベース全体でそのメソッド/クラスの定義を検索します(これは部分的に〜/ .buildout-eggsなので、苦痛になります)
    • 私は、そのメソッドを定義する1つまたは複数のコードを見つける/クラス
    • は私が推測する必要があり、それらの一つは、私が

    を読む必要が一つであるこれは大きなコードベースのために理解している、多くの時間がかかります。しかし、私は大規模で未知のPythonコードベースをナビゲートするのは十分な問題であるという気持ちがあります。

    私はこの問題の技術的なツールや戦略的なソリューションを探しています。 ...

    私はただできません上記の戦略を使用しているハードコアのPythonプログラマを想像してください。

  • +1

    https://github.com/mkomitee/vim-gf-pythonがあなたに興味、以上のこと単純に:http://vim.wikia.com/wiki/Automatically_add_Python_paths_to_Vim_path –

    +0

    彼らが言うように、「第一の世界の問題」... C言語のプロジェクトでこれを行うことができれば(普通のマシンコードあなたの紅茶です)、KLOCはおそらく100Kに近く、Exuberant Ctagsの場合は –

    答えて

    8

    Vimでは、NERDTree(ファイルブラウザ)とタグリストが好きです。VIM(ソースコードブラウザ - >http://www.vim.org/scripts/script.php?script_id=273

    もVimの中に、あなたは定義にジャンプするCTRL-]を使用することができます(:H CTRL-]):

    1. ダウンロードあふれんばかりのctags http://ctags.sourceforge.net/
    2. インストールの指示にしたがって、あなたのPATHのどこかに置いてください。
    3. ソースコードの 'root'ディレクトリから、「ctags -R」
    4. のタグファイルを作成してください(noautochdir、 pwdはrootディレクトリです。fr OMステップ3)
    5. はVimのに入り、いくつかの関数やクラス名の上にカーソルが、タグの複数の一致があるかどう、それはどこでもあなたを示し、それがインポートされた、どこで、デフォルトでCTRL-]

    を打ちますそれは、タグが一つだけのマッチを持っている場合、それはすぐに、あなたは

    (たところから前後に移動するには、Ctrl + OキーとCtrl + Iを使用して...それに

    をジャンプ

    を宣言しました。上記の手順をpartiのソースコードに対して繰り返しますあなたが使用cularライブラリ、私は通常のものを勉強するために開いている別のVimのウィンドウを保つ)

    +2

    +1になります。元の「IDE」は「vi」と「ctags」であり、「vim」は「vi」よりも優れており、Exuberant Ctagsは元の「ctags」よりも優れています。 – steveha

    +0

    'ctags -R'は' -R'オプションなしで 'ctags'のバージョンが付属しているOSXでは動作しないことに注意してください。 http://stackoverflow.com/questions/8996387/am-i-even-using-exuberant-ctagsを参照してください。 – nofinator

    5

    私はipython'sを使用していますか?コマンド

    あなたが探したいものをインポートする方法を理解してから、それを追加するだけです。ソースコードを表示するために、モジュール、クラスまたは関数またはメソッド名の最後に追加します。コマンドの補完は、長い名前も把握するのに役立ちます。

    -1

    は赤い錠剤を試してみてください:https://github.com/klen/python-mode

    +1

    これは悪い答えです。それは、1)リンクだけの回答2)ポスターの自分のプロジェクトに3)死んでいる。 –

    +0

    更新:このリンクは死んでいません。私はpythonモードについて多くの良いことを聞いたことがあります。私は数日間それを使用していて、本当にそれが好きです。 –

    関連する問題