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

  • TOP
  •   
  • コラム
  •   
  • プログラミングにおけるフレームワーク

プログラミングにおけるフレームワークについて

フレームワークとは?

プログラミングにおけるフレームワークとは、プログラムを開発する際に必要な機能の骨組みといったところです。フレームワークには各プログラミング言語によってそれに合うものがあります。そういったものをプログラミングの現場で使い分けていくことで、開発の効率化を図ることができるものがフレームワークというものです。
さて今回はこのフレームワークを理由する上でのメリットデメリットそしてJavaとRubyでよく利用されるフレームワークをご紹介していきます。

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

フレームワークにはいくつかメリットがありますがここでは大きく二つに分けて説明をしていきます。
1つめは開発効率の向上です。
プログラミングにおいてフレームワークを使う1つめのメリットは開発効率の向上です。フレームワークは開発において最低限必要な機能やライブラリのようなもので構成されているため、それを1から開発する必要がなく、またコーディングをする時間が短くなり開発期間を短縮することができます。
2つめはコードの可読性を高めバグを減らすことができることです。
プログラミングの開発現場では開発の規模によって複数のチームでコーディングを行うことになります。コードの書き方はエンジニアごとに様々で異なりますが、フレームワークを使うことでエンジニアのコードの書き方を統一することができ、結果的に可読性が上がってバグの発生を抑えることができます。

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

フレームワークは様々な利点がありますがもちろんデメリットも複数あります。こちらも主に2点を説明していきます。
1つめは学習コストがかかることです。
フレームワークはデータベースへのアクセス方法や機能の呼び出しなどがそれぞれのフレームワークによって違うため、別のフレームワークを使う際にはその都度学習をしなければいけません。
2つめは脆弱性を避けられないことです。
フレームワークは脆弱性を狙い個人情報の漏洩が報告されることがあります。便利な反面、その便利さゆえに狙われることもあるためセキュリティ面での対応が重要になってきます。

Javaのフレームワーク

人気の高いプログラミング言語といえばJavaを思い浮かべる人も多いのではないでしょうか。Javaのフレームワークは沢山あり、中には機能が豊富なものから軽量化したものまで様々なものがあります。その中でも有名なフレームワークとしてspringフレームワークを紹介します。

springフレームワーク

いまJavaのフレームワークで最も人気の高いものであるのがspringフレームワークです。特徴は主に大きく分けて2つあります。それはDIとAOPです。

DIとは

DIとは依存性注入という意味です。
それは依存しているものを外から注入するということです。例えば複数のプログラムを組み合わせて実行させるプログラムがあったとします。このときに一方のプログラムが出来ていても、もう一方のプログラムが出来ていないと動かないプログラムは依存性が高いと言えます。それを排除したのがDIです。これによってコードが見やすくなったり、テストがしやすくなったりという利点があります。

AOPとは

AOPとはアスペクト指向プログラミングのことです。
Javaではオブジェクトを基礎単位として、メソッドなどを複数のクラスにまたがって定義する場合が多くありますが、そうするとプログラムが複雑になり修正が難しくなります。そこでAOPでは共通の処理を行う部分を抜き出して必要な時に使うことができるようにできます。こうすることで基本的な部分とオプション的機能を分離することができ、分かりやすくすることが可能になります。

Rubyのフレームワーク

Rubyは1995年にまつもとゆきひろ氏によって作られた日本ではじめてのプログラミング言語です。Rubyでの開発を行う際にセットと言われるぐらいポピュラーなフレームワークとしてRuby on Railsというものがあります。

Ruby on Rails

Ruby on RailsはRubyのフレームワークとして有名です。特徴としてはMVCモデルを採用しています。MVCモデルとはM(モデル),V(ビュー),C(コントローラー)の略です。簡単に言うとモデルの呼び出し、画面の出力、メインの処理をそれぞれ分けておこなうことです。このようなコーディングをすることでコードの可読性を高めるとともにメンテナンスのしやすさ再利用が可能といった利点があります。

最後に

ここまでお話しをしてきました通り、世の中にはプログラミング言語によっても様々な特徴を持ったフレームワークがあります。もちろんそれぞれに色々な使い方やメリットデメリットがありました。デメリットもありますがそれ以上にメリットが多いため、これからもフレームワークを使ってプログラムが作られていくことでしょう。