私は毎日の仕事の中でPython/DjangoとObjective-C/CocoaTouchとjs/jQueryにほとんど時間を費やしています。開発者がクラス階層をより速く読むのに役立つツール
私の選択したエディタは、Python/Djangoとjs/jQueryの場合はvim
、Objective-C/CocoaTouchの場合はxcode
です。
私の開発スピードのボトルネックの1つは、既存のコード、特に私が使用するオープンソースライブラリを読むペースです。
たとえば、Python/Djangoでは、django開発者が導入したいくつかの新機能に遭遇したときに私は興味があり、手動でコードベースを調べ始めます。たとえば、クラスベースのビューは以降のDjango 1.3から導入されたとき、参照 - - https://docs.djangoproject.com/en/dev/topics/class-based-views/私は、コード例に示すチェックアウトします:
from django.views.generic import TemplateView
class AboutView(TemplateView):
template_name = "about.html"
をそして、私のプロジェクトのひとつでそれを試してみてください。さらに重要なことは、私は舞台裏で何が起こるのかについての好奇心、私はソースコードに掘るだろう -
# django/views/generic/__init__.py file
from django.views.generic.base import View, TemplateView, RedirectView
from django.views.generic.dates import (ArchiveIndexView, YearArchiveView, MonthArchiveView,
WeekArchiveView, DayArchiveView, TodayArchiveView,
DateDetailView)
from django.views.generic.detail import DetailView
from django.views.generic.edit import FormView, CreateView, UpdateView, DeleteView
from django.views.generic.list import ListView
class GenericViewError(Exception):
"""A problem in a generic view."""
pass
ここから、私はbase.py /ジャンゴ/ビュー/一般的なファイルに後方にそれをトレースしますそしてTemplateView
クラスはまったく同じものを見つける: -
class TemplateView(TemplateResponseMixin, View):
"""
A view that renders a template.
"""
def get_context_data(self, **kwargs):
return {
'params': kwargs
}
def get(self, request, *args, **kwargs):
context = self.get_context_data(**kwargs)
return self.render_to_response(context)
そして、ここではそれが
...ようにTemplateView
クラスは
TemplateResponseMixin
と
View
クラスから継承...と私はさらに掘り続け...とすることを示しているのです
問題は、これは非常に効率が悪く、処理が遅い(クラス階層を手動で "追跡して、各ファイルを途中で開く")ことです。
したがって、特定のプロジェクトでPythonコードを解析し、特定のクラスを「クリック」することで簡単に検査できるクラス階層を視覚化する、簡単な方法/ UIツール(または他の視覚的ソリューション)私は読むことに興味がありますか?
ノート私はIPythonシェルを認識していますが、それは視覚的な表示ツールとしてユーザーフレンドリーではないようです。
例えば、Objective-C/iOS/Macプログラミングの世界ではF-Script
があります。これは、シェル(PythonやIPythonシェルに似ています)を提供するだけでなく、開発者がクラス階層をイントロスペクトするための視覚的な方法を提供します。
リファレンススクリーンショット: -
だから、クラス階層の可視化ツール(Python用には具体的には、それは一般的なだと異なる言語のために使用することができる場合であっても良い)があり???オープンソースのソースコードを読むときに効率的に起きるあなたの方法は何ですか?以下のアドバイスパー
を更新し
、私はctags
とvimのプラグインtaglist
を試してみたし、私はこのようなvimの中でサイドバッファを開く:TlistOpen
を使用することができた: -
:TlistOpen
は、現在開いているバッファで利用できるすべてのクラスと関数を基本的に示しているので、これは本当にクールです。私のカーソルがTemplateView
上にある間
私の問題は、今私はCtrlキー]を行うにしようとしたときということですが、私は次のエラーを取得する: -
私が間違って何をしているのですか?私のdjangoのソースコードがvirtualenv
にあるからですか?または、私が行う必要のある具体的なものがありますctags
/taglist
"ジャンク"のソースコードを "認識"していますか?
スタックオーバーフローのためには構築的ではありませんが、http://programmers.stackexchange.comの話題はかなりあります。 –
Ok。どのように移行するのですか? –
(私は@Kay Zhuの推薦するように)奇妙なctagsを試して、あなたの現在のenv/virtualenvのソースからタグを生成するコマンド/スクリプトがあると思います。 – cerberos