Dyno

CMS とフレームワークをうまく使い分けるには

今回はウェブサイト制作・ウェブアプリケーション開発の道具である「 CMS 」と「ウェブアプリケーションフレームワーク 1 」をどのように使い分けたらよいかというお話をします。

「 CMS とフレームワークの何が違うのかよくわからない」「 CMS を使うつもりが、制作会社にフレームワークをすすめられて迷っている」「フレームワークを使っているが、気になる CMS がある」という方はぜひ参考にしてみてください。

最初に前提として押さえておくべき事実を確認した上で使い分けのポイントについて見ていきましょう。

押さえておくべき事実

CMS とフレームワークの使い分けを考える上で押さえておくべき 2 つの事実があります。

  1. 万能のツールは存在しない
  2. CMS は完成品、フレームワークは工作キット

1. 万能のツールは存在しない

「 CMS とフレームワークの使い分け」に関して最初に押さえておく事実は 「万能の CMS 」も「万能のフレームワーク」も存在しない というものです。 すべての道具がそうであるように、 CMS とフレームワークにも必ず「強み」と「弱み」、「向き」「不向き」があります。 CMS には CMS の、フレームワークにはフレームワークの「使いどころ」があります。

2. CMS は完成品、フレームワークは工作キット

ふたつめに押さえておくべき事実は CMS は特定の用途に特化した「完成品」であり、フレームワークは汎用の「工作キット」である というものです。 一般に、 CMS の場合は必要なソフトウェアを揃えてウェブサーバーに設置すれば、後は設定を少し行うだけでウェブサイトが公開できます。 他方のフレームワークはウェブサーバーに設置しただけではウェブサイトとして機能しません。 フレームワークでサイトを構築・運用するには一定量のプログラミングが必要不可欠です。

たとえるなら、 CMS によるサイト構築は「既製品のコーディネート」で、フレームワークによるサイト構築は計測や裁断も含む「オーダーメイドの衣装作り」といえます。

「万能のツールは存在しない」と「 CMS は完成品、フレームワークは工作キット」――これら 2 つの事実を押さえた上で、 CMS とフレームワークの使い分けのポイントを見ていきましょう。

CMS とフレームワークの使い分けのポイント

CMS とフレームワークは次の 3 つのポイントで使い分けるのがよいと思います。

  1. 守備範囲
  2. 開発規模
  3. 予算

1. 守備範囲

ひとつめのポイントは 守備範囲 です。 上述のとおり「 CMS は完成品でフレームワークは工作キット」なので、完成品である CMS の守備範囲にサイトの要件がちょうど収まる場合は CMS を使うのが効率的です。 逆に、要件をカバーできる CMS が見つからない場合は、既存の CMS をカスタマイズして使うよりもフレームワークを使った方が効率的です。

判断が難しいのはサイトの要件の一部分だけを CMS が満たす場合で、そのようなときには次の 2 つの選択肢で迷うことになります:

  • A) CMS を使う。足りない部分は CMS をカスタマイズして補う。
  • B) フレームワークを使う。 CMS に存在する機能も自作する。

A) B) どちらがよいかは「 CMS の守備範囲」と「サイトの要件」がどの程度重なり合うかによって変わってきます。 重なる部分が大きければ大きいほど CMS の方が、逆に小さければ小さいほどフレームワークの方が費用対効果が高くなります。

また、それぞれの守備範囲はそれを扱う人のスキルによって大きく変わります。 たとえば、 CMS だけを扱う会社には「フレームワークを使う」という選択肢が存在しません。 そのたm,その会社の考える CMS の守備範囲は CMS とフレームワークを併用する会社よりも広くなりがちです。 逆に、フレームワークだけを扱う会社にとっては CMS の守備範囲は存在しません。

2. 開発規模

ポイントの 2 つめは 開発規模 です。 一般に、開発規模が小さいうちは CMS を、大きくなればなるほどフレームワークを使った方が開発効率は高くなります。 「開発規模」というのは、ここでは「サイトのページ数」的な意味の規模ではなく「構築に必要な工数」を意味します。

一般に、 CMS よりもフレームワークの方が機能を効率的に作れる道具が豊富に揃っているため、 CMS とフレームワークで同じ機能を作る場合はフレームワークの方が素早く効率的に作れます。 ほんの小さな機能であれば大きな差は出ませんが、規模が大きくなればその差は開いていきます。 特に、アジャイル型で継続的にサイトの機能を追加・変更していく場合は、フレームワークの方が何かと有利になります。 そのため、必ずしも一概には言えませんが、「最初にすべての機能を開発して後は保守するだけ」であれば CMS を、「サイトを公開した後も継続的に開発を行う」ならフレームワークを選んだ方がよい可能性が高いといえます。

3. 予算

ポイントの 3 つめは 予算 です。 上述のとおり「 CMS は完成品でフレームワークは工作キット」なので、予算が少ない場合は完成品である CMS を使った方がよい可能性が高いです。 「可能性が高い」というよりも、予算が少ないうちは「フレームワークを使う」という選択肢がそもそも存在しないと言ってもよいでしょう。

筆者の感覚では、予算が〜 100 万円以下ぐらいであればフレームワークでできることは非常にかぎられるので、 CMS の枠の中で「どの CMS がよいか?」と検討した方がよいと思います。 さらにその場合は、すべての要件を満たそうとするのではなく「 CMS の守備範囲に合わせて要件を調整する」という進め方が必要になります。

おわりに

ということで、 CMS とフレームワークをうまく使い分けるためには「 CMS の守備範囲」「サイトの開発規模」「会社の予算」といったポイントを見て判断するのがよいですよねというお話でした。

個人的には、世間ではこの CMS とフレームワークの使い分けがあまり適切に行われていない印象を持っています。 たとえば、既存の CMS を使えば数十万〜数百万円で実現できるものをわざわざフレームワークを使って数千万円かけて作り込んでいるケースや、逆に、アジャイル型でサイトを改善していきたいのにそれに不向きな CMS を選んでしまっているケースなどを目にします。

CMS もフレームワークもしょせんは手段でしかないので、ウェブ制作・ウェブ開発において「適材適所」の考え方がもっと広まり、より多くの人が適切なツールを選んで楽をしながらウェブを活用できるようになればと思います。

よりよい CMS ・フレームワーク選びのご参考になれば幸いです。

参考

筆者の別ブログの CMS とフレームワークの違いを説明した記事です。


  1. 以下「フレームワーク」