フレームワークとCMS

プログラムのわからない人に、「フレームワークって何?CMSって何?」と聞かれた。
別になんにも役に立つ気がしないけど解説してみます。

とりあえずWikipediaさんに聞いてみる。

Webアプリケーションフレームワーク

Web アプリケーションフレームワーク(ウェブアプリケーションフレームワーク、英: Web Application Framework)は、動的な ウェブサイト、Webアプリケーション、Webサービスの開発をサポートするために設計されたアプリケーションフレームワークである。 フレームワークの目的は、Web開発で用いられる共通した作業に伴う労力を軽減することである。たとえば、多数のフレームワークがデータベースへのアクセスのためのライブラリや、テンプレートエンジン(→Webテンプレート)、セッション管理を提供し、コードの再利用を促進させるものもある。

コンテンツ管理システム(CMS)

コンテンツ管理システム(英: content management system, CMS)は、ウェブコンテンツを構成するテキストや画像などのデジタルコンテンツを統合・体系的に管理し、配信など必要な処理を行うシステムの総称。2005年頃より一般的に普及したといわれる。コンテンツマネージメントシステムとも呼ばれる。

使ってりゃそりゃわかるけど、プログラム未経験者には伝わらんわなぁ。。

もうちょっと噛み砕いて考えて
【サイトを作ること】=【料理を作る事】だと例えてみます。

その上で考えると、
フレームワークは食材の下拵えができた状態で、
CMSは料理そのものであると思います。

フレームワークであるCakePHPLaravelは設置しただけじゃ何も機能もありません。
ログイン機能もなければ、ページ更新の機能もありません。
それは開発者が自分で作らなければなりません。
ただその機能を作る際に必要になってくるDBの接続やテンプレートの機能を提供してくれます。
料理でいうと、食材が既にテーブルに置いてありしかも下処理が完了している状態という所でしょうか。
機能が無いので開発者の技量が問われますが、
その分自由に制作が可能です。
ブログでも、ECサイトでも掲示板でもなんでもござれです。

逆にCMSは、設置できればその機能をすぐに使うことができます。
この記事はWordPressというCMSで出来ていますが、これは設置・インストールすればそれだけでブログシステムを使用可能になるわけです。

これは料理でいうと、牛丼、かなぁ??
この例えは微妙な気もしますが、まぁすぐ食えるって事を言いたかった。

ただ既に出来上がっているシステムなので大幅な機能の改変には向きません。
WordPressではプラグインやテーマでカスタマイズが可能ですが、これは要はトッピングですね。
牛丼はそれにイメージがピッタリです。
大根おろしやキムチを載せようが自由ですが、それは牛丼である事には変わりありません。

まとめると、フレームワークはプログラマーが開発しやすいように設計されたライブラリ群
コードが書けない人にはなんの役にも立ちませんが、プログラマーにとっては無くてはならないもの。
CMSは既に出来上がっているシステム、インストールすれば使えるが、
カスタマイズはある程度までしか行えず、痒い所に手が届かない場合も多々ありまっせ。
という所かな、、後半飽きて適当です。