Rails, GraphvizとRailRoadで設計確認

いつも最初にきちんと設計するんですが、あれこれと仕様変更でどんどんコードが変わっていく・・

しかもRspecでテスト書いているので仕様変更にも柔軟に対応できてしまう。

そうなると、後でこれってどうなってたっけ?みたいなことになる。

そんなときに簡単に設計をチェックできる、いわゆるリバースエンジニアリングに近いことができます。

http://www.graphviz.org/

http://railroad.rubyforge.org/

# sudo port install graphviz
# sudo gem install railroad

RAILS_ROOTに移動して、コマンド実行。

# railroad -C -o doc/controllers.dot
# railroad -M -o doc/models.dot
# neato -Tpng doc/controllers.dot > doc/controllers.png
# neato -Tpng doc/models.dot

簡単なクラス図を生成してくれます。

いちいちコマンドが面倒なのでrakeタスクにしちゃいます。

namespace :doc do
  namespace :railroad do
    task :models do
      sh "railroad -i -l -a -m -M -o doc/models.dot"
      sh "neato -Tpng doc/models.dot > doc/models.png"
    end

    task :controllers do
      sh "railroad -i -l -C -o doc/controllers.dot"
      sh "neato -Tpng doc/controllers.dot > doc/controllers.png"
    end
  end
  task :railroad => %w(railroad:models railroad:controllers)
end

私はコントローラーのアクションとか確認するのによく使います。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中