Redmineのアーキテクチャ
Redmineのアーキテクチャを知るための方法を公開していた記事をメモ。
これは素晴らしい。
【元ネタ】
Redmine の ERD を描いてみました - kiwamu日記
MOONGIFT : Railsを見える化「RailRoad」 オープンソース・ソフトウェア/フリーウェアを毎日紹介
ruby-graphviz を使う - Loud Minority
GraphvizをRubyから使う | Jottin, Jotting!
Railsを見える化するツールRailRoadを使えば、コントローラやモデル一覧を自動生成できる。
真似てやってみた。
gem install ruby-graphviz
gem install railroad
railroad -o controller.dot -C
railroad -o model.dot -M
neato -Tpng controller.dot > controller.png
neato -Tpng model.dot > model.png
但し、ER図はDBDesignerなど他のツールでリバースする。
関係は自分で引かないといけないが、一覧できるのはスゴクいい。
Rubyはメタプログラミングが強いから、ソースコードからアーキテクチャを再現するためのリバースエンジニアリングの手法が充実しているのだろうと想像する。
redmineのテーブルは47個ぐらいで、そんなに多くない。
だからER図を一度きちんと書いてみたいな~と思っていたが、Redmineの構造を知る上でこのツールは良い。
ER図の関連さえ分かれば、モデルやコントローラーはテーブル間の関係(relation)や業務ロジックを実装しているに過ぎないから。
興味を惹いたのは、ワークフローを管理するテーブル。
trackers テーブルとworkflows テーブルが用意されているので、新規のトラッカーを追加したり、ワークフローを新規追加するのが可能になっていて、すごく柔軟な作りになってる。
きちんと見ていないけど、テーブルの構造はかなり正規化されているので、機能追加やプラグインによる機能拡張がやりやすい構造になっているのだろう。
Redmineのプラグインを作りたい人は、上記のツールを使って、ER図やアプリケーションの構造に目を通しておいた方が、良いアプリケーションを作れるようになるだろう。
できれば次回の本のネタにしておきたい(笑)
| 固定リンク
「Redmine」カテゴリの記事
- Redmineのブロッキング機能で工程単位Redmine運用とトレーサビリティを解決するアイデア(2026.09.21)
- 第23回Redmine大阪の感想~AIの暴走はチケット駆動で制御する!AI時代に人間が担うべき真の役割は何なのか? #redmineosaka(2026.09.06)
- Redmineのブロッキング機能はどこで使うのか?~FF関係で使うべきだ!(2026.08.10)
- AIエージェントのハルシネーションは「チケット駆動」で防ぐ~次世代アジャイル開発の実践論(2026.08.04)
- 製造業でアジャイルが定着しない理由~スプリント不在とチケット二重管理の壁 #Redmine(2026.07.18)
「Ruby」カテゴリの記事
- 「コーディングを支える技術」は良い本だ(2022.05.26)
- 知識は経験よりも大切か、経験は知識よりも勝るのか、SECIモデルは相互作用を語る(2022.04.26)
- 「RubyやRailsは終わった」という記事のリンク(2022.01.09)
- ITの技術や知識はツールの習得と表裏一体である(2021.03.26)
- JRubyの終焉(2020.06.09)


コメント