フリーランスエンジニアの雄貴です!
WEBサービス開発で良く使用されるフレームワーク
Ruby on RailsやLaravelなど良く使用されているのではないでしょうか?
これらはMVCフレームワークと呼ばれるものです。
今回はこのMVCフレームワークとは何か?についてお話しいたします!
Youtubeではエンジニアの単価が上がる情報発信しています!
毎週木曜日の21時から、ライブ配信やってますので、気軽にお越しください😁
そもそもフレームワークって何?
フレームワークはビジネスなどでも広く使われている用語ですが、ITではソフトウェアフレームワークという呼び方が正式ですね。
意味としてはこちらになります。
ソフトウェアフレームワーク(英: software framework)とは、プログラミングにおいて、アプリケーションプログラム等に必要な一般的な機能が、あらかじめ別に実装されたものである。
引用:ウィキペディア
必要な機能というと、例えばログイン機能や会員登録機能などですね。
これらはどのサービスでも機能としては変わらないので、1からプログラミングして作らなくてもいい機能ではありますよね。。
こういう汎用的に使う機能を既に構築してくれているものを「フレームワーク」と呼んでいます。
MVCフレームワークについて
MVCフレームワークはバックエンド言語のフレームワークで良く利用されるモデルです。
それらは大きく分けて3つの構成でできています。
- Model (モデル)
- View (ビュー)
- Controller (コントローラー)
主にDB(データベース)と連携しデータ処理を行うModel 、ユーザーが入出力を行う画面を生成するView、そして、ViewとModelを制御するControllerの3つの構成です。
これらの頭文字をとって、「MVCモデル」と呼びます。
ルーティング
MVCの各機能を説明する前に、まずはルーティングについて説明いたします。
ルーティングとはブラウザからサーバーへ送られてきたURLを元に、サーバー側でどの部分のどの処理を実施すればいいか判断する機能です。
MVCフレームワークではどのフレークワークでも実装されている機能です。
MVCの場合、URLを元にどのControllerのどのアクションを実施するか?を設定し、それを呼び出して処理を進める流れになっています。
Model (モデル)
Modelはデータ処理や操作を担当する機能です。
データベースとのアクセスや、データベースからデータを取得したり、またはデータベースのデータを登録・更新・削除したりします。
データベースへ処理を実施する際にはSQLという言語を用いるのですが、このSQLもModelにて記述してデータベースへ命令することができます。
またデータを登録・更新する際のデータの検証(バリデーション)などの細かいビジネスロジックを実施するのもModelの役割です。
View (ビュー)
ViewはContorollerやModelで処理したデータをHTMLとして出力するための機能です。
いわば最終出力結果ですね。
例えば検索一覧結果をHTMLに表示させるために、データをHTMLに入れ込む作業を実施することができます。
こういう作業を実施できるものを「テンプレートエンジン」と呼び、様々なフレームワークで独自のテンプレートエンジンが機能として存在します。
Controller (コントローラー)
ControllerはModelとViewを繋ぐ役割を持つ機能です。
例えば何かしらのデータを検索し、一覧結果を画面に出したいとします。
その際、Contorollerがユーザーから受け取った検索条件をModelに渡し、Modelにてデータ検索処理を実施します。
Modelは取得したデータをControllerに渡し、ContorollerはそのデータをView(テンプレートエンジン)に渡して画面作成の処理を実施します。
その後、Viewで生成されたHTMLファイルをブラウザに返し、検索結果が画面に表示されます。
あくまで、自分自身はロジックや画面表示を実施せずに、役割に応じてModelやViewを呼び出し制御する機能です。
Controllerには複雑な処理を記載せずに、値をModelやViewに渡して制御するように設計することが大事です。
MVCフレームワークのメリット
MVCフレームワークを使用するメリットをみてみましょう。
機能の分割ができて、修正に強い
データベース処理の修正が必要になった時、MVCの分割がなかった時を考えてみましょう。
その際、まずどこで処理を実施しているか一目で分かりにくいので調査するだけで時間がかかります。
MVCだとModelに記載する構成なので、すぐに対象ファイルを見つけることができますね!
またMVCではない場合だと、1つのファイルに様々な機能を盛り込んで実装してしまう危険性があります。
こうなると一部の修正で他の機能に影響を及ぼす可能性が高く、またどこまで影響があるかを確認するにも時間がかかってしまいます。
MVCだとModelの機能を修正すれば完了ですので、他機能の影響も及ぼしにくいので仕様変更に強い側面があります。
MVCフレームワークはどのフレームワークに使われているの?
言語によって様々なフレームワークに使用されています。
PHPならLaravel、CakePHP、FuelPHPなど
Rubyなら有名なRuby on Rails
JavaであればSpring Frameworkで使用されていますね。
どれか1つでもMVCフレームワークを経験すれば、上記の他のフレームワークも大まかな構成は同じなので、すぐに習得することができます!
RubyやPHP、Javaは広く使われている言語で、そのMVCフレームワークも良く利用されています。
どれか1つ経験すれば、未経験の言語、フレームワークでも案件に採用されることも良くあるので、自分のやりたいフレームワークを選定して身に付けると良いですね!
最後に
以上、MVCフレームワークの説明でした。
現状、ほとんどのWEBサービスではこのMVCフレームワークを用いているので、これらのフレームワークの経験があれば仕事に困ることはありません。
ぜひ習得してみてください!
Youtubeではエンジニアの単価が上がる情報発信しています!
毎週木曜日の21時から、ライブ配信やってますので、気軽にお越しください😁
コメント