いきなり読み始めてもよいのですが、事前に軽く準備しておくと読みやすくなります。
- 読みたいソースコードをダウンロード
- bundle install --path vendor/bundle
- 検索用のインデックスを貼る
- 読む
bgm.rbを例に説明します。
読みたいソースコードをダウンロード
$ git clone git@github.com:hitode909/bgm.git $ cd bgm
bundle install --path vendor/bundle
$ bundle install --path vendor/bundle . . Installing json 1.8.2 Installing multi_xml 0.5.5 Installing httparty 0.13.3 Installing itunes-search-api 0.1.0 Using bundler 1.7.12 Your bundle is complete! It was installed into ./vendor/bundle Post-install message from httparty: When you HTTParty, you must party hard!
これでvendor/bundle
以下にgemのソースコードがインストールされます。
書き換えやすくするためにgitにもコミットしておきます。人のコードなのでアクセス権も無いはずなので間違えてpushすることもないはず。(身内のコードだとあるかもしれないので注意。その場合はブランチ切りましょう)
$ git add . $ git commit -m "Add vendor/bundle"
検索用のインデックスを貼る
私の場合はMilkodeの検索インデックスとctags(Emacs用)を貼ります
$ milk add . package : bgm github : hitode909/bgm result : 1 packages, 237 records, 237 add. (7.45sec) *milkode* : 24 packages, 9032 records in /Users/ongaeshi/.milkode/db/milkode.db.
タグファイルはmilk update
と一緒に更新されるように設定します。
$ milk config update_with_ctags_e true $ milk update
読む
これで準備完了です。後はそれぞれ好きな方法で。
私は始めにMilkodeのWebアプリを立ち上げます。ざっとブラウザでコードの概要を掴んでからエディタで細部を読んでいきます。関数の間はタグジャンプで移動して、この関数はどこから呼ばれているのか?などはMilkodeで検索して見つけます。
$ milk web
関連データは全てディレクトリ以下にあるのでソースコードに直接日本語のメモも書きます。書き込んだ場所はgit diffで取ることも出来ますしキリのよい所でコミットも出来るので便利です。
まとめ
手順をまとめて書くと以下のようになります。
git clone git@github.com:hitode909/bgm.git cd bgm bundle install --path vendor/bundle git add . git commit -m "Add vendor/bundle" milk add . milk config update_with_ctags_e true milk update
割とスクリプト化出来そうな気がしてきました。次回はbgm.rbを読んでいきます。