先日、フレームワークを使うメリット、デメリットについて質問された際に、うまく言語化できなかったので、今回はフレームワークについてまとめてみました。
フレームワークとは
Webアプリケーションを作成する際に用いられる枠組みのこと。フレームワークでアプリケーションの雛形を作成し、必要なファイルをカスタマイズしていくとWebアプリケーションが作成できる。
- フレームワークの種類(一例)
- Ruby → Ruby on Rails(ルビーオンレイルズ)、Sinatra(シナトラ)
- PHP → Laravel(ララベル)、CakePHP(ケイクピーエイチピー)
- Java → Spring Framework(スプリングフレームワーク)、Java EE(ジャバイーイー)
フレームワークを使うメリット
- 速く作れる
- 必要なファイルやデータの流れを既に一つのセットとして用意してくれているフレームワークを用いることで、比較的容易に素早く、Webアプリケーションを開発することができます。
- コードの書き方を統一させることができる
- これは、プログラミングに限った話ではないですが、どんな仕事をするにも、個々人のやり方があると思います。個人のやり方があることは良いことですが、チームで仕事をする際はやり方を統一させた方が効率が良いこともあります。フレームワークを使えばコードの書き方が統一されるため、個々人による違いを大幅に減らせます。また機能追加や改修もし易くなり、バグが発生するリスクを減らすことにもつながるので、運用管理の工数やコストを減らすことにも効果があります。
フレームワークを使うデメリット
- 学習コストがかかる
- フレームワークはとても便利なのですが、フレームワーク特有のコードが書けなければいけません。つまり、プログラミング言語の書き方だけでなく、フレームワーク特有の書き方についても勉強が必要となってきます。特に使用人口が少ないフレームワークは、情報も少ないので覚えるのに時間・労力がかかってしまいます。
- 仕組みを理解していなくてもコードを書けてしまう
- 先ほども書きましたが、 必要なファイルやデータの流れを既に一つのセットとして用意してくれているので、コードを書く量は少なくなるのですが、その反面
仕組みを理解していなくても作れてしまうのです。
プログラミングの技術を上げたいのなら、フレームワークを使わない場合の書き方についても学んでおくと良いと思います。
まとめ
エンジニアとして働く上で、フレームワークは開発経験があり言語の知識がある方はいいですが、初学者の方はまず言語の知識を身に付けることを優先した方が良いと思ったのと、恐らくなんとなく動いた
で進めてしまうと、後々応用が効かなくなってしまうので、使用する場合は熟知してから使用した方が良いと思いました。