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」カテゴリの記事
- JTCの壁を壊す「Redmine参謀本部」という戦略~現場の職人気質を活かす組織論(2026.05.19)
- 第30回東京Redmine勉強会の感想 #redminet ~古いチケット管理基盤にAIという新しい衣を被った未来(2026.05.16)
- 製造業がRedmine導入で必ず聞く3つの質問~MS Project派がRedmine導入で悩むこと(2026.05.03)
- RedmineのAI支援機能はチケット管理システムにとって重要な要件だ(2026.04.29)
- マイクロマネジメントに陥ったチケット駆動開発の罠と再生戦略 #redminet(2026.04.26)
「Ruby」カテゴリの記事
- 「コーディングを支える技術」は良い本だ(2022.05.26)
- 知識は経験よりも大切か、経験は知識よりも勝るのか、SECIモデルは相互作用を語る(2022.04.26)
- 「RubyやRailsは終わった」という記事のリンク(2022.01.09)
- ITの技術や知識はツールの習得と表裏一体である(2021.03.26)
- JRubyの終焉(2020.06.09)


コメント