プログラミング学習をする中で「フレームワーク」という言葉を耳にすることがあると思います。ただ、調べてみても難解な言葉ばかりで初心者にはなかなか理解できないことも少なくないはず….…。
今回は、そんな初心者の方でも理解できるように「Webフレームワーク」の
- 基礎知識の理解
- 代表的なフレームワークの紹介
についてお話しします!
フレームワークは言語ごとにたくさんの種類がありますが、ここでは本当におすすめできるフレームワークを紹介していきます。
そもそもフレームワークとは
「フレームワーク」という言葉には元来、「枠組み」という意味があります。開発を行う際に、頻繁に必要とされる基礎的な機能をまとめて提供してくれるものです。そのため、枠組みを使って作業(プログラミング)をするのがフレームワークになります。
例えば、「人に何かを訴える文章を書くコツ」として「起承転結」という考え方があります。これも一種のフレームワークと言えるでしょう。「人に何かを訴える文章」を書いたことがない! という人でも、「起承転結」になぞらえて書けば、分かりやすい文章を書くことができます。
このようにフレームワークとは、「そのルールに沿って使用することで高度な知識や技術がなくても、うまくいくように考えられた道具」ということです。
ここまで説明して察しの良い方は、プログラミングにおいてもこの枠にはめるという考え方が適用できそうだとお気づきになることでしょう。
プログラミング言語とは違うの?
プログラミング言語は、例えばコンピュータに「”おはようございます。”と表示しなさい」と、人間が命令するために使う文字や言葉と同じものです。日本語や英語など普段使用する言語に種類があるように、CやJavaなどコンピュータ言語もさまざまな種類があります。
対してフレームワークは、コンピュータ言語を使用して何か開発したいと考えたとき、その手助けをしてくれるツールの1つです。例えば、履歴書を作成するとき、市販されているような枠組みや記載項目が初めからあるものと、真っ白な紙に枠組みから書いていくのでは、作業量は全く違います。
フレームワークは「このように制作してください」と予めルール化されているので、利用することで開発するまでの作業量はグッと楽になります。無論、Rubyのフレームワークならば、フレームワーク自体がRubyの言語で制作されている箇所もあるので、全く関連性がないとは言えません。
ライブラリとの違いは?
Webフレームワークの説明に入る前に、Webフレームワークに近い考え方として「ライブラリ」というものもあるので抑えておきましょう。
ライブラリとは、よく使う機能や自分で実装することが面倒なものを「パッケージ化」して使用する「部品」のことです。
Webアプリケーションは毎回ゼロから組み上げていくのではなく、このようなパッケージ化された「部品」を組み合わせて使うことがほとんどです。例えば「画像のスライドを作るライブラリ」、「Facebookログイン機能を付けるライブラリ」など、さまざまなものが存在します。
ライブラリを上手く使いこなしていくことで、一定以上の質を保った機能を素早く開発することができます。いくつかのライブラリは、フレームワークに予め実装されています。
Webフレームワークとは
Webフレームワークとは、前述した「ライブラリ」をまとめて提供してくれるものであり、Webアプリケーションを開発するために必要な機能を詰め合わせたパッケージのようなものです。
近年「ライブラリ」という表現と「Webフレームワーク」という表現の境目は曖昧になりつつあります。
- 自分で書くコードがアプリケーションの動作の主軸となるものが「ライブラリ」
- 雛形ができていて自分のコードでカスタマイズするのが「Webフレームワーク」
という捉え方をすると分かりやすいでしょう。
つまり、「Webフレームワーク」はWebアプリケーションの土台となりえるものです。
アプリ開発の作業性UP
フレームワークの使用は、アプリやシステム開発の作業性を各段に上げてくれます。
メリットとしては、
- 必要な機能が実装されているため開発を短縮できる
- 運用管理の工数やコストを削減できる
- コードの書き方が統一されるので個々人による違いを減らせる
とくに企業で、数人によるチームでアプリ開発をする場合は、個々人でコードの書き方が違うと機能追加や改修に大幅な手間を生じるので、フレームワークを使用して開発するのが一般的です。
逆にデメリットとしては、
- フレームワークを使用したコードの書き方の勉強に時間がかかる
- 規約などのルールが設定されているので自由にコードを書くことができない
- 仕組みが分からなくても機能を使えるためプログラミング言語の技術が成長しない
とくにプログラミング言語の技術が成長しないのはエンジニアとして致命的なため、フレームワークを使用しないコードの書き方は身に付けておく必要があります。
おすすめのWebフレームワーク
Webフレームワークはプログラミング言語ごとにそれぞれ存在し、特徴などもさまざまです。ここではその中でも特に有名なおすすめのものを紹介します。
Rubyのフレームワーク おすすめ3選
Rubyのフレームワークは、Rubyと呼ばれる言語を使用して、SNSなど小規模から大規模なWebアプリケーションやシステム開発に使用されています。
Webサービス開発をする場合、「Ruby」=「Ruby on Railsを使った開発」を指すことがほとんどです。ベンチャー界隈で最も採用されているWebフレームワークといっても過言ではないほど有名ですが、そんなRuby on Railsも含めて、主なRubyのフレームワークについて解説します。
Ruby on Rails
公式サイト <https://rubyonrails.org/>
「Rubyのフレームワークは?」と聞けば、ほとんど返ってくる答えが「Ruby on Rails」と言われるほど有名です。正直に言ってしまえば、Rubyでアプリ、システム開発を行いたいなら、Ruby on Railsを選択すれば間違いありません。
それは多くのプログラマーが素早くかんたんに開発するために、2つの大原則を設定しているのが特徴です。
一つめは、Don’t Repeat Yourself(DRY)と呼ばれる決まりで、同じようなコードや似たコードを何度も書くことをやめて、作業の効率化を図っています。
二つめは、Convention Over Configuration(COC)と呼ばれる決まりで、「規約を優先する」というルールを課すことで、プログラマー個々人がこのようにコードを書きたいという意思を抑制しています。
このように徹底的に規約という「レール」に乗ることで、Webアプリの最速開発を目指します。詳細は以下のURLを参考してください。
Sinatra
公式サイト <http://sinatrarb.com/intro-ja.html>
Rubyで記述されているオープンソースのフレームワークになります。フレームワークの中では、最も少ないコードでWebアプリなどの開発が可能です。
そのため学習コストが少なくて済み、最も手軽にフレームワークを使用した開発を始めることができます。
数ファイルの作成で済む単純で小規模な開発には向いていますが、複雑で大規模な開発は向いていません。遊びでフレームワークを使ってみたいという人にはおすすめです。
詳細は以下のURLを参考してください。
公式サイト <http://sinatrarb.com/intro-ja.html>
Padrino
公式サイト <http://padrinorb.com/>
上で説明したSinatraをベースに設計されたフレームワークになります。Sinatraにはなかった機能群があり、かつRuby on Railsよりも少ないコードでWebアプリ開発ができるので、初心者だけど、少々複雑なものを開発したい人向けです。
正直なところ、Ruby on Railsで開発したほうが良いと思いますが、軽量なフレームワークでまずは開発したいと考えた場合、導入を検討してみてはいかがでしょうか。
詳細は以下のURLを参考してください。
公式サイト <http://padrinorb.com/>
PHPのフレームワーク おすすめ3選
PHPはRubyと並んでWebアプリやシステム開発に使用されるなど、有名なプログラミング言語です。PHPにも優秀なフレームワークがたくさん存在しますので、いくつか紹介します。
Laravel
公式サイト <https://laravel.com/>
数あるPHPのフレームワークで、Laravelは2011年に登場した最も若いフレームワークです。PHPエンジニアの中で人気が急騰しており、2020年以降も最も注目されているフレームワークになります。
人気の理由は、「Love beautiful code? We do too」という理念どおり、初心者であっても美しいコードを書ける点です。コードが書きやすく、すぐに書き始めることができるので、PHPを習得した人が真っ先に使用できます。
また日本語のドキュメントやライブラリがたくさんありますので、Webアプリやシステム開発がはかどります。詳細は以下のURLを参考してください。

CakePHP
公式サイト <https://cakephp.org/jp>
PHPの中でも有名なフレームワークです。「ケーキを焼くように簡単に開発」を理念として開発されており、Ruby onRailsの影響も強く受けています。
特徴的なのは、MVC(モデル・ビュー・コントローラ)と呼ばれる実装デザインに関する先駆けになったことです。ライブラリも数多くあります。
PHPエンジニアには長らく使われてきたフレームワークですが、近年はLaravelにその座を取って代わられるようになりました。
詳細は以下のURLを参考してください。
FuelPHP
公式サイト <http://fuelphp.jp/>
FuelPHPもLaravelと同じように、比較的最近登場したフレームワークです。そのため、ほかのPHPフレームワークの良いところ吸収しているので、使いやすいフレームワークです。
特徴としては、動作が軽量でフレームワークの規約が少ないため、自由にコードを記述できます。ただ、先に説明したLaravelやCakePHPほどの人気はありません。
詳細は以下のURLを参考してください。

Javaのフレームワーク おすすめ3選
JavaはOSに依存せず、どんな環境でもソフトを動かすことができるため、プログラミング言語の中でも最も人気があります。現在だと、Andoroidアプリの開発にも使用されています。
そんな人気のJavaフレームワークについて解説していきます。
Spring Framework
公式サイト <https://spring.io/>
Spring FrameworkはJavaで開発を行う際に広く利用されているWebフレームワークです。Spring Frameworkはさまざまな機能を担当するパーツの集合体であり、部分的に利用することもあれば、大部分のシステムをSpring Frameworkで構築する場合もあります。
Javaで大規模なシステム開発を行う際によく利用されます。詳細は以下のURLを参考してください。
Play Framework
公式サイト <https://www.playframework.com/documentation/ja/2.4.x/Home>
Play Frameworkの1番の特徴は、CPUやメモリの使用量が少なく、軽量ゆえに生産性が高いことが挙げられます。また、Ruby on Railsに影響を受けています。
詳細は以下のURLを参考してください。
JSF(JavaServer Faces)
公式サイト <https://pleiades.io/help/idea/javaserver-faces-jsf.html>
2004年に開発されたJavaのフレームワークです。MVCモデルを採用しており、コンポーネントフレームワークや、XML方式のHTML表示であることが特徴です。HTMLの場合はブラウザで表示できるので、デザインの確認がしやすくなっています。
詳細は以下のURLを参考してください。
公式サイト <https://pleiades.io/help/idea/javaserver-faces-jsf.html>
JavaScriptのフレームワーク おすすめ3選
JavaScriptは、Webサイト上における画像や文字の動き、アニメーション操作や更新されたコンテンツの定期表示など、動的なWebサイト作成には欠かせないプログラミング言語です。
そんなJavaScriptのフレームワークについて解説していきます。
AngularJS
公式サイト <https://angularjs.org/>
AngularJSはJavaScriptでできたWebフレームワークです。見た目の動きをきれいに作るために使用されます。
例えばSPA(Single-page application)と呼ばれる、「ページを移動しなくてもなめらかにページ内のコンテンツが現れるような1ページで完結するアプリケーション」の開発を行う時などに採用されます。
AngularJSはRuby on Railsのように比較的多機能で大きなフレームワークなのですが、データの管理(サーバーサイドの動き)をRuby on Railsで行い、見た目(フロントサイドの動き)に関するものをAngularJSで作りこむという複数のフレームワークの共存という使い方も存在します。
詳細は以下のURLを参考してください。
Vue.js
公式サイト <https://jp.vuejs.org/index.html>
Vue.jsはAngularJSよりも後に開発されいます。そのため、他のフレームワークの良いところを組み込んだ設計になっています。
AngularJSよりも規約が少ないため、比較的自由にコードを記述できるので、個人開発においておすすめできます。また学習コストも低いので、JavaScriptを学習した初心者の方が手をだすのに最適です。
詳細は以下のURLを参考してください。
React
公式サイト <https://ja.reactjs.org/tutorial/tutorial.html>
あの有名な「Facebook」が中心となって開発したフレームワークです。React Nativeと呼ばれる、全く同じソースコードでiOSとAndoroidアプリ両方を動作させることが可能なため、モバイルアプリ開発に適しています。
詳細は以下のURLを参考してください。
CSS/JSのフレームワーク おすすめ3選
Webサイトの体裁を整えるCSSにもフレームワークは存在します。素晴らしいデザインの制作を手助けしてくれるフレームワークが用意されています。
Bootstrap
公式サイト <https://getbootstrap.com/>
Bootstrapは「Webデザインフレームワーク」と呼ばれ、CSS/JavaScriptから構成されています。Twitter社より提供されるフレームワークになるため、Twitterのようなフラットなデザインを簡単に作成することができます。
また「レスポンシブデザイン」という様々な画面サイズ(PC・タブレット・スマホ)に対応したフレームワークになるため、デザインが苦手だというエンジニアでも綺麗なサイトを簡単に作成できるという点でも重宝されています。
テンプレートも無料のものから有料のものまで存在するため、色合いや字体などを入れ替え、イメージに合わせて作成することも可能です。
詳細は以下のURLを参考してください。
Foundation
公式サイト <https://get.foundation/>
Bootstrapと並んで、人気の高いCSSフレームワークです。Bootstrapと同じ感覚で利用できるうえ、カスタマイズ性がより高いので、凝り性の人が使用するイメージもあります。
ただ全ての機能を利用しようとすると膨大なデータ量が必要となるので、カスタムダウンロードで必要な機能のみ選択するという点に、注意が必要です。
詳細は以下のURLを参考してください。
公式サイト <https://get.foundation/>
UIkit
公式サイト <https://getuikit.com/>
軽量かつ、綺麗なデザインのWebサイトを制作したい人に人気の高いフレームワークです。ユーザーにとって視覚的にも使いやすく、jQueryなどプラグインを導入しても速度が遅くならないという特徴があります。
Bootstrapに触れたことがある人なら、カスタマイズも簡単にできます。また初心者の方にも手が出しやすいのでおすすめです。
詳細は以下のURLを参考してください。
フレームワークを習得して仕事に繋げたい人は……
まずは独学で身につけよう
フレームワークの独学にはさまざまな方法があります。本での学習もいいですが、以下の有料プログラミング学習サイトもおすすめです。
Paiza
公式サイト<https://paiza.jp/>
1ヶ月600円で主要なプログラミング言語の学習ができる有名なサイトです。動画を見ながら手を動かしていきますが、煩わしい環境構築をする必要が無く、すぐに学習を始めることができるのでとてもお手軽です。
RubyやPHPなどのフレームワーク学習項目もあり、掲示板の作成、会員登録、ログイン機能の実装を学べるため、初めてフレームワークを学習する人向けです。
ドットインストール
公式サイト <https://dotinstall.com/>
こちらもプログラミング言語学習サイトとして有名です。上記のPaizaと違うのは、環境構築が必要なため手間は掛かりますが、プログラミングで開発する一連の流れを習得できます。
また取り扱っている学習用のフレームワークはPaizaより多くあるため、どのフレームワークを学習しようか悩んでいる方に選択肢が用意されています。
おすすめスクール紹介
メンターが付いて、二人三脚で学習していきたいという人には、プログラミングスクールに通って学習を進めることをおすすめします。
フレームワークは初心者の方にはとっつきにくく、非常に奥の深いものなので、習得しようと思ったら案外大変です。仕事などに繋げることを考えると、独学だけでなくプロの力を借りた方が確実なのです。
例えば弊社「侍エンジニア」では、現役エンジニアがあなただけのオリジナルカリキュラムを作成し、完全なマンツーマンで指導しています。また、転職サポートはもちろん、独立支援もしているので、フリーランスとして仕事を獲得したいという人にも最適です。
もちろん、いきなり入会するのは不安もあるかと思うので、まずは無料カウンセリングを活用してみてください。弊社随一のコンサルタントがあなたの学習における不安や悩みを解消し、学習プランなどを提案します。
対面(渋谷)での無料体験はもちろん、オンラインでも受け付けているので遠方の方でも利用できます。下記URLから予約が可能となっているので、まずは気軽に相談してください!
侍エンジニア無料カウンセリングを受ける
まとめ
短期間で質の高いWebアプリケーション開発ができるようになるための方法として、Webフレームワークをご紹介しました。
インターネットの普及によって学習コストが少なくなった現代では、誰でも手軽にプログラミングを学習できる時代になりました。そのため、以前に比べて格段に早くサービスを展開することができることでしょう。