支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡

  • TOP
  •   
  • コラム
  •   
  • フレームワークの種類(言語別でのお勧

フレームワークとは

フレームワークは「枠組み」という意味で、開発を行う際に、頻繁に必要とされる基礎的な機能をまとめて提供してくれます。フレームワーク(枠組み)を利用してプログラミング(作業)を行う=レシピを参照して料理を作るとイメージして頂くと分かりやすいかと思います。つまり、そのルールに則って使用することで、高度な技術や知識が無くても上手くいくように作られたツールということです。フレームワークには開発に用いる言語別に種類があり、それぞれ適したフレームワークを使用します。

ライブラリとフレームワーク

フレームワークに近い考え方に「ライブラリ」があります。ライブラリとは、よく使う機能や自分で実装することが面倒なモノをパッケージ化して使用する部品です。
Webアプリケーションは、毎回ゼロから組み上げていくのではなく、このようなパッケージ化された部品を組み合わせて使うのがほとんどです。
例えば、「画像のスライドを作るライブラリ」、「Facebookログイン機能を付けるライブラリ」等、様々なモノが存在します。
いくつかのライブラリは、フレームワークにあらかじめ実装されています。

プログラミング言語とフレームワーク

プログラミング言語は、人間が命令するための言葉をコンピュータに分かるようにした言語です。私達人間にも、日本語や英語等の複数の言語があるように、プログラミング言語にもJavaやPHP等、複数あります。
フレームワークは、プログラミング言語を用いて何かを開発したい時、それを手伝ってくれるツールの1つです。
例えば、就職活動でお世話になっていた履歴書は、あらかじめ記入欄や記載項目が割り当てられていますが、あの仕様も一種のフレームワークです。
フレームワーク無しで開発を行うということは、履歴書を真っ白な紙から枠線を引く事から始めるということと同じです。
これはとても効率が悪く面倒だと分かる事から、フレームワークの利便性が実感出来ます。

フレームワークのメリット

フレームワークを使用するとアプリケーションやシステム開発の作業性を格段にあげてくれます。具体的なメリットとしては以下の通りです。
●必要な機能が実装されている為、開発期間を短縮出来る
●運用管理の工数やコストを削減出来る
●コードの書き方が統一されるので、個人による表現の違いを減らせる
チームでアプリケーション開発等を行う際、個々でコードの書き方が異なると機能追加や改修に大幅な手間を必要としますので、フレームワークを使用して開発するのが一般的です。

フレームワークのデメリット

逆に、フレームワークを使用することで発生するデメリットは以下の通りです。
●フレームワークを使用したコードの書き方を覚えるのに時間が必要
●規約などのルールが設定されている為、自由にコードを書くことは出来ない
●仕組みが分からなくても機能を使える為、プログラミング言語のスキル上達が難しい

Webフレームワーク

Webフレームワークとは、前述した「ライブラリ」をまとめて提供し、Webアプリケーションを開発するために必要な機能を詰め合わせたパッケージのようなモノです。
近年、「ライブラリ」と「Webフレームワーク」の境界が曖昧になっていますが、以下の点が異なります。
「ライブラリ」自分で書くコードがアプリケーション動作の主軸となるモノ
「Webフレームワーク」雛形が出来ていて、自分のコードでカスタマイズするモノ

言語別お勧めWebフレームワーク

Webフレームワークの種類はプログラミング言語ごとに存在し、特徴も様々あります。今回は、その中で有名なモノを5つ程紹介します。

1.Rubyのフレームワーク

Rubyのフレームワークは、Rubyを使用してSNSなど小規模なモノから大規模なWebアプリケーションやシステム開発に使用されています。
●「Ruby on rails」多くのプログラマーが素早く簡単に開発が出来るように、2つの大原則が設定されているのが特徴です。
1つ目は、「Don't Repeat Yourself(DRY)」と呼ばれる決まりで、同じコードや似たようなコードを何度も書くことを止めて、作業の効率化を図ります。
2つ目は、「Convention Over Configuration(COC)」と呼ばれる決まりで、規約を優先するルールを課すことで、プログラマーが個々思い思いでコードを書くことを抑制します。
このように、徹底的に規約に重きを置くことで、Webアプリケーションの最速開発を目指しています。

2.PHPのフレームワーク

PHPは、Rubyと並んでWebアプリやシステム開発に使用されるプログラム言語です。
●「Laravel」数あるPHPのフレームワークで、最も若いモノであり(2011年登場)、PHPを利用するエンジニアの中で人気が急騰しています。
理由としては、「Love beautiful code? We do too」の理念通り、初心者であっても綺麗なコードを書ける点です。
加えて、日本語のドキュメントやライブラリが多くありますので、Webアプリやシステム開発が更に行いやすくなるのも利点です。

3.Javaのフレームワーク

JavaはOSに依存せず、どのような環境でもソフトを動かすことが出来る為、最も人気のあるプログラミング言語です。現在ではAndroidアプリの開発にも利用されています。
●「Spring Framework」Javaで開発が行われる際に広く利用されています。このフレームワークは、様々な機能を担当するパーツの集合体であり、部分的に利用する場合もあれば、大部分のシステムをコレで構築する場合もあります。実際に、大規模なシステム開発でよく利用されているそうです。

4.Javascriptのフレームワーク

Javascriptは、Webサイト上における画像や文字の動き、アニメーション操作や更新されたコンテンツの定期表示など、動的なWebサイト作製に欠かせないプログラミング言語です。
●「React」Facebookが中心となり、作られたフレームワークです。「React Native」という、同じソースコードでiOS/Androidアプリの両方を動作させることが可能であることから、モバイルアプリ開発に適しています。

5.CSS/JSのフレームワーク

Webサイトの体裁を整えるCSSにもフレームワークはあります。
●「Bootstrap」CSS/JS(Javascript)で構成されていて、Twitter社から提供されるフレームワークです。Twitterのような、フラットなデザインを簡単に作製することが出来ます。
また、「レスポンシブデザイン」という様々な画面サイズ(パソコン、スマートフォン、タブレット)に対応したフレームワークになる為、綺麗で見やすいサイトを誰でも簡単に作製出来ます。

まとめ

フレームワークは今回紹介したモノ以外にも、いくつも種類が存在します。なので、使用するプログラミング言語や目的によって、フレームワークを選ぶことが効率性・コスト的に理に叶っています。ただ、小規模なシステムを作る場合や独創的な処理を求めるのであれば、フレームワークを使うと逆に不便なので、状況によって使う・使わないを判断することが良いでしょう。