社長BLOG
プラグイン作成時なるべくモデルを作らないようにする
- 2010-07-15 (木)
- 社長BLOG
※技術、設計ネタです
OpenPNE3のプラグインをつくるとき、自分はかたくななまでにモデル(=テーブル)を作らないようにしている。
プラグインごとにわざわざモデルをつくることに、それほど価値があるとは思えないからだ。
OpenPNE3にはmember_config sns_config member_profileなど、SNSに対して1:多、
メンバーに対して1:多の関係でデータを保持できる、汎用のテーブルが存在する。
できる限り、これを使うようにしている。
一見設計上はひどく見えるかもしれないが、モデルを作らないプラグインにもメリットはある
・取り外しが簡単、ポータビリティが高い
・開発や運用が楽
・テーブルがズラッと並ぶというユーザーの心理的負担が少ない
デメリットといえば
・将来的にパフォーマンスの不安がある
・他のプラグインとの名前空間の衝突などで混乱したり、データが破損することがある
などがある。これも本当にデメリットになるのかどうかは、将来になってみないとわからない。
OpenPNE3はインストールが終わった時点で70個ほどのモデルが作成される。これは運営者への心理的負担がかなり大きいと感じた。
一方WordPress先輩はテーブル数が非常に少ない。プラグインを追加してもあんまり増えない。
何でも設定保存用のwp_optionsテーブルに放りこめという文化ができ上がっているのだろう。
これが唯一の成功パターンだとは思わないが、実際に成功している先輩の事例はきっちり勉強して、われわれのソフトウエアの進化につなげていきたい。