かとのぼのマイコード・マイライフ

ウェブサービス開発者のブログ

フレームワークとは?【入門者向けプログラミングフレームワークの基礎知識】

framework

この記事では、プログラミングのフレームワークについて説明します。

プログラミングのフレームワークとは?

プログラミングを学習して、「フレームワーク」という言葉は聞いたことがあるかもしれません。また、もしかしたら初心者の方はフレームワークだということを知らずに使っている場合もあります。今回は、プログラミングのフレームワークとは一体何か、そして有名なフレームワークを紹介します。

フレームワークの概要

フレームワークは日本語では「枠組み」と訳されます。

プログラミングのフレームワークは、その枠組みに沿ってコードを書くことで開発をしやすくために存在します。

これだけだとまだ少しイメージしづらいと思います。そこで、少し身近なものに例えてフレームワークを表現したいと思います。

私のプログラミングのフレームワークのイメージは、ズバリ「IKEA(イケア)の家具」です。

IKEAの家具はパーツと説明書を読んで最後は自分で組み立てる

みなさん、IKEAはご存知でしょうか?

IKEAは、スウェーデン発祥の家具の量販店です。日本にも出店をしています。

値段がリーズナブルで、日本人にも人気な欧州家具が手に入ります。

IKEAの家具がなぜ私のプログラミングのフレームワークのイメージなのか?それは、IKEAの家具の多くは、家具を自分で組み立てなくてはいけないからです。

IKEAで家具を購入した人は経験があると思いますが、本棚とかを買うと、本棚のパーツが入っていて、それを自分で組み立てることで完成させます。

 

çµã¿ç«ã¦åã®5ã¹ããã

(IKEAのサイトから)

 

パーツはIKEAが作ってくれており、それを購入しますが、組み立てて本棚を完成させるのは私たちがやる必要があるのです。

つまり、この部品を用意してくれるのがプログラミングのフレームワークです。ウェブサービスの開発で使うであろう機能はフレームワークが用意してくれるので、私たちはその部品を利用して、自分が作りたいサイトを家具のように組み立てるのです。

また、IKEAの家具には取り扱いの説明書があります。家具を組み立てるときにはその説明書を読んで組み立てますよね?

プログラミングのフレームワークも同じで、フレームワークにはフレームワーク独特のルール(説明書)があります。つまり、フレームワークを使うということは、そのルールを理解し覚えて利用する必要があるのです。

そして、フレームワークを学習するというのは、そのフレームワークにどんな部品があるのかの理解と組み立て方のルール(コード)を覚えることになります。

フレームワーク開発とスクラッチ開発

初心者の方はフレームワークはすごい便利だからすぐにでも使った方がいいと思うはずです。ただし、一つ落とし穴があります。それは、初心者の方が、そもそものプログラミング言語そのもののルールを覚えないでいきなりフレームワークを最初に覚えようとしても挫折する可能性があるということです。

先ほどIKEAの家具でフレームワークの説明をしました。みなさんは、本棚がどんなものかの知識をもうお持ちです。ですから、いきなり本棚のもとになる部品を見てもなんとなくどう使うのかイメージがつくのです。これがもし本棚に関する知識がゼロだった場合はどうでしょうか?

全体像が見えていない中で本棚を組み立てるのは相当苦労するのではないでしょうか?

つまり、プログラミングでも、まずは全体像と部品の材料を知っておく必要があります。いきなり部品の知識とその部品の組み立て方のルールを覚えても全体像が見えてなくてはうまくフレームワークを使いこなせないのです。

フレームワークなどに頼らずにイチからコードを書いて組み立てていく開発を「スクラッチ開発」と呼びます。

framework-scratch

私は、プログラミング初心者の方は、まずはスクラッチ開発をしてそのプログラミング言語の全体像をつかむことをオススメしたいと思います。サービスを作るという作業において、一見遠回りにも思えますが、結果的には最短距離になると思います。

有名なフレームワーク

これでプログラミングのフレームワークの概念は理解していただけたと思います。あとはもうご自身で学習をスタートさせることができると思います。これ以上の説明は必要ありません。

最後に有名なフレームワークのいくつか紹介をして終わります。

PHPフレームワーク「Laravel」

Laravel」はPHPのフレームワークです。PHPのフレームワークでも人気が高いです。

人気が高い理由として、学習コストが低いと言われています。また、日本語での情報も充実しています。

私もLaravelでの開発をしたことがありますが、確かに使うまでの学習コストは低いと感じました。ただし、フレームワークのわりには開発のルールがかなりの自由度が高いので、「使えるまでが早いけど、使いこなくすとなると大変」といった印象でした。

Laravel - ウェブ職人のためのPHPフレームワーク 

Rubyフレームワーク「Ruby on Rails」

日本のプログラミング初心者に大人気のフレームワーク「Ruby on Rails」です。

Rubyが日本の開発者の方が作ったプログラミング言語のこともあり、日本語での情報が大変豊富です。

「Rails(レール)」というくらいですから、このフレームワークのルールに従えって開発すると驚くほどに簡単にウェブサービスを公開できます。

プログラミングスクールやプログラミングサイトでもこの「Ruby on Rails」を使ったウェブサイト開発のコースが多くあります。

Ruby on Rails | A web-application framework that includes everything needed to create database-backed web applications according to the Model-View-Controller (MVC) pattern.

フロントエンドフレームワーク「Vue.js」

JavaScriptのフレームワークです。JavaScriptのフレームワークは他にもたくさんありますが、この「Vue.js」は最近かなり人気があります。

日本語での情報が豊富で、特に「日本語ドキュメント」が充実しています。

Vue.js

CSSフレームワーク「Bootstrap」

こちらは、CSSのフレームワークです。つまり、サイトの見栄えをよくする時に使うフレームワークです。

CSSでレイアウトを作成するのは大変ですが、フレームワークを使えばあらかじめ用意された、統一感を持ったレイアウトにすることができます。

Bootstrap · The most popular HTML, CSS, and JS library in the world.

まとめ

フレームワークを利用すれば、自分でいちいち機能をゼロから作る必要がなくなり、開発の速度を上げることができます。また、最近のフレームワークは、ある程度セキュリティの対策もしてくれる機能があったりしますので、ぜひ学習してみて欲しいと思います。ただし、プログラミング初心者はまずはフレームワークの元となる言語の学習をしてからにしましょう。

 

関連記事: