社長BLOG

プラグイン作成時なるべくモデルを作らないようにする

※技術、設計ネタです

OpenPNE3のプラグインをつくるとき、自分はかたくななまでにモデル(=テーブル)を作らないようにしている。

プラグインごとにわざわざモデルをつくることに、それほど価値があるとは思えないからだ。
OpenPNE3にはmember_config sns_config member_profileなど、SNSに対して1:多、
メンバーに対して1:多の関係でデータを保持できる、汎用のテーブルが存在する。

できる限り、これを使うようにしている。

一見設計上はひどく見えるかもしれないが、モデルを作らないプラグインにもメリットはある
・取り外しが簡単、ポータビリティが高い
・開発や運用が楽
・テーブルがズラッと並ぶというユーザーの心理的負担が少ない

デメリットといえば
・将来的にパフォーマンスの不安がある
・他のプラグインとの名前空間の衝突などで混乱したり、データが破損することがある

などがある。これも本当にデメリットになるのかどうかは、将来になってみないとわからない。

OpenPNE3はインストールが終わった時点で70個ほどのモデルが作成される。これは運営者への心理的負担がかなり大きいと感じた。

一方WordPress先輩はテーブル数が非常に少ない。プラグインを追加してもあんまり増えない。
何でも設定保存用のwp_optionsテーブルに放りこめという文化ができ上がっているのだろう。
これが唯一の成功パターンだとは思わないが、実際に成功している先輩の事例はきっちり勉強して、われわれのソフトウエアの進化につなげていきたい。

OpenPNE�~�蓈���񋟃T�[�r�X�̂��m�点

  • ��K�̓z�X�e�B���O
  • �Z�p�T�|�[�g
  • �J�X�^�}�C�Y
  • OpenPNE Manager
  • ���q���܃T�|�[�g

ページの先頭に戻る