私は日常業務の中で、ほとんどの時間を Python/Django と Objective-C/CocoaTouch と js/jQuery に費やしています。
私が選んだエディターはvim
、Python/Django と js/jQueryxcode
用、および Objective-C/CocoaTouch 用です。
私の開発速度のボトルネックの 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"
そして、私のプロジェクトの 1 つで試してみてください。さらに重要なことに、舞台裏で何が起こっているのか興味があるので、ソースコードを掘り下げます -
# 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
TemplateView
ここから、django/views/generic/base.py ファイルまでさかのぼってトレースし、クラスが何をするかを正確に調べます。
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)
そして、これはclass がandクラスTemplateView
から継承されていることを示しています...さらに掘り下げ続けます...など...TemplateResponseMixin
View
問題は、これが非常に非効率的で遅いプロセスであることです (手動でクラス階層を「たどり」、途中で各ファイルを開くため)。
問題は、特定のプロジェクトの Python コードを解析し、読みたい特定のクラスを「クリック」することで簡単に検査できるクラス階層を視覚化する簡単な方法/UI ツール (またはその他の視覚的ソリューション) があるかどうかです。約?
私は IPython シェルを認識していますが、視覚的な表示ツールほどユーザーフレンドリーではないようです。
たとえば、F-Script
Objective-C/iOS/Mac プログラミングの世界では、シェル (Python や IPython シェルとよく似ています) を提供するだけでなく、開発者がクラス階層を内省するための視覚的な方法を提供します。
参照スクリーンショット:-
それで、クラス階層の視覚化ツールはありますか(具体的にはPython用ですが、汎用的でさまざまな言語に使用できる場合はさらに優れています)??? オープンソースのソースコードを効率的に読む方法は何ですか???
更新しました
ctags
以下のアドバイスに従って、vim プラグインを試してみたところ、次のように vim でサイド バッファを開くtaglist
ために使用できました。:TlistOpen
:TlistOpen
現在開いているバッファで使用できるすべてのクラスと関数が基本的に表示されるので、これは非常にクールに見えます。
Ctrl]私の問題は、カーソルがオンのときに実行しようとするとTemplateView
、次のエラーが発生することです:-
私は何を間違っていますか?私のdjangoソースコードがにあるからvirtualenv
ですか? ctags
または、djangoソースコードを作成/ taglist
「認識する」ために私がしなければならない特定のことがありますか?