目次
はじめに
プログラミング用語としての「フレームワーク」という言葉、知っていますか?
「フレームワークを使えばサクサク開発ができるよ」とか「Ruby on Railsを使えば簡単にWebサービスを作れる」といった文脈を耳にしたことがあるかもしれませんね。
「なんとなく便利なものというイメージはあるけれど、実際はどんなものなんだろう?」
そんな疑問に答えるべく、この記事では初心者の方にもわかりやすくフレームワークについて解説します。
フレームワークとは?
まず、フレームワークとは「プログラミングでよく使う汎用的な機能をまとめて使いやすくした枠組み」のことです。
この説明だけではピンと来ないと思いますので、詳しく見ていきましょう。
フレームワークは「お手軽料理キット」のようなもの
よくプログラミングは料理に例えられます。とある「ECサイトを作ること」を「酢豚を作ること」と例えてみましょう。
ECサイトには「ログイン機能」「商品一覧表示機能」「決済機能」等が必要です。(本来はもっといろんな機能が必要ですが今は気にしないでください。)
かたや、酢豚をざっくりパーツ化すると「揚げた豚肉」「一口大の野菜」「甘酢あん」となり、これらを炒め合わせて完成となります。
このように設計書(料理ならレシピ)に基づき全体をいくつかのパーツに分けてそれぞれを作り上げ、組み合わせて完成させるというところが似ていますね。
酢豚をイチから作る場合は「揚げた豚肉」ひとつをとっても、豚肉を必要な分買ってきてカットし下味をつけてから粉をまぶし、高温の油でカリッと揚げて…といった多くの作業が必要です。
最近は忙しい現代人のために「お手軽料理キット」(ミールキットとも呼ばれます)というものがあります。これは料理を作るために必要な分の材料がある程度調理された状態で提供され、最後の仕上げをするだけで完成するという代物です。
酢豚ならば「揚げた豚肉」「一口大の野菜」「甘酢あん」が完成した状態でパック化されていて、あとはフライパンでこれらを炒め合わせるだけですぐに食べられます。
フレームワークはまさにこのミールキットのように「ログイン機能」「商品一覧表示機能」「決済機能」といったパーツがすぐに使える形で提供されていて、開発者はこれらを適宜組み立てていくだけでWebサイトを作ることが可能です。
冒頭の繰り返しですが、改めてフレームワーク とは「プログラミングでよく使う汎用的な機能をまとめて使いやすくした枠組み」であるということがなんとなくイメージしやすくなったでしょうか。
ライブラリとの違い
ここで、ライブラリという言葉をご存知の方は「なんだかライブラリと似ているけれど、何が違うんだろう?」と思われたかもしれません。
ライブラリとは「汎用的な機能をまとめたもの」なので、まさにフレームワークの定義と似ていますが、フレームワークと比べて少し規模の小さいものを指します。
そのため、フレームワークはライブラリを集めたものと考えてください。
先ほどの酢豚の例えでいうと、「酢豚の素」くらいのレベル感になります。
ライブラリを使えばイチからプログラミングするよりは楽にできるけれど、フレームワーク(料理キット)よりは自分で手を動かす手間がかかるということです。
フレームワークを使うメリット
大人気のフレームワークですが、メリットもあればデメリットもあります。
まずはメリットを見てみましょう。
開発効率が上がる
これは言わずもがなですが、よく使用される機能が提供されているので開発効率が格段に上がります。
統一感のあるコードが書ける
大きなソフトやシステムを開発する時、複数人でコーディングをすることがあります。
一つのフレームワークに則って開発すれば、バラバラに書いたとしてもコードに統一感が出て、何をやりたい部分なのかが読みやすくなります。
バグが減る
上記の理由からレビューしやすくなるため問題のある箇所を見つけやすくなりますし、予め提供されている機能を使うため凡ミスも減らせてバグの数を軽減できます。
フレームワークを使うデメリット
便利なフレームワークですが、デメリットの方も確認しておきましょう。
フレームワーク自体の学習が必要
フレームワークを使うにはその方法を学ばなければなりません。例えばRuby on Railsというフレームワークを使う場合、そのベースとなっているRuby言語の文法だけを知っていても使えません。
新たにRuby on Rails自体の文法を学ぶ必要があります。
初心者の学習の妨げになることもある
例えばRuby自体をよく知らないままにRuby on Railsから学習を始めてしまうと、楽に開発はできるものの自分が便利に使っている機能の内部ではどういった処理をしているのかわからないままになってしまいます。
初心者にとってはフレームワークからではなく、基礎の言語の方から学ぶことが望ましいです。
開発内容に制約がある
便利な機能がたくさんあり、Webサービスの完成までに必要な枠組みが揃っているということは逆に自由度が下がるということです。
用意された枠組みから外れるような機能は載せられないという制約があります。
人気のフレームワーク
ここで実際に人気のあるフレームワークをおすすめの入門講座とともにいくつか紹介します。
Ruby on Rails
Rubyという言語はWeb開発で非常に人気がありますが、このRubyで書かれたフレームワークとしてRuby on Railsがあります。
MVCモデルという設計思想に基づいていて、メンテナンス性の高いWebサービスを開発するのに有用です。
はじめてのRuby on Rails 7 入門|Proglus(プログラス)
Vue.js
JavaScriptでの開発を加速するフレームワークがVue.js(読み:ビュージェイエス)です。
手軽にリッチなWebサイトを作ることができます。
はじめてのVue.js 3入門|Proglus(プログラス)
Nuxt.js
Nuxt.js(読み:ナクストジェイエス)は先述のVue.jsをさらにまとめたフレームワークです。
サーバーサイドレンダリング(SSR)という機能を持つのが特長で、通常はブラウザ上で実行されるJavaScriptをサーバー側で実行することで表示を高速化することが可能です。
Bootstrap
Webサイトのレイアウトやデザインを整えるための言語であるCSSのフレームワークとしてBootstrap(読み:ブートストラップ)は非常に人気があります。
特に、パソコンやスマホなど様々な画面サイズに対応するレスポンシブデザインのサイトを手軽に制作することが可能です。
Bootstrap5の基本を習得しよう|Proglus(プログラス)
まとめ
フレームワークについて解説しました。
まずは基礎となるプログラミング言語の習得が優先ですが、ある程度基礎的なことがわかったらフレームワークについても学び始めることをおすすめします。
フレームワークを使うと圧倒的に開発スピードが上がるため、導入されていない現場はほぼ無いといえるからです。
この記事で挙げたフレームワークの講座はどれも入門レベルで、基礎の言語を学び始めた初心者の方からも人気の内容となっています。
基礎を学びつつ早い段階から現場力も身につけたい方はぜひチェックしてみてください。
動画でプログラミング入門をしよう
オンライン学習サービスProglus(プログラス)でプログラミングを学び、創れる人になろう!
プレミアムプランを2週間無料体験しよう
今すぐ詳細を確認する