大分から発信!とあるエンジニアの独り言

自社サイト構築にあたり調査した内容などをメモする。主にPHP、MYSQL、Linux、IDEなど

フレームワークとはなんだ??

このくらいのことは知っている人がほとんどかもしれません。
実際私も使用したことがあり分かってはいるのですが、なんとなくしか理解できていなかった点などもあるかもしれないので再度勉強してみたいと思います。

フレームワークとは?

Webアプリを作成するための枠組みやライブラリーなどをまとめたものであり
使用することによって開発工数を減らすことができコード規約に則ったコーディングを行うため癖の少ない見やすいコードになることが多い。

フレームワークとライブラリーの違い


素のPHPを使う場合HTMLの中にPHPコードを書いてMySQLを呼び出し加工して表示させる。
また、何度も使用するコードはライブラリーとしてまとめ頻繁に呼び出しを行ったりします。
フレームワークではよく使うライブラリーを標準機能としてもっており(例えばページャーやログイン管理などを行うAuth)自分でライブラリーを作らなくてもある程度のことはできます。
またフレームワークを通して呼び出しを行うため処理を分散させることができ(MVCモデル)見通しのよいプログラムとなりメンテナンス性が上がります。

フレームワークとは簡単に言うとよく使うライブラリーの集合体であり、フレームワーク独自の作法や決まり事を守ると簡単にプログラミングできますよ!ってことです。

ちょっとまとめましょう。

フレームワークを使用するメリット

  • コード量の減少

使用頻度の高いライブラリーの集合体であるため。
また作業の自動化などを行う(Ruby on Railsなど)フレームワークもある。

  • 共同作業の促進

ファイルの置き場が決まっていたり必ずアクションメソッドはaction_から始まるメソッド名にするなど規約に則ってコーディングを行うため

  • 最新の技術や優れた実践技法への対応

過去の経験から導き出されたノウハウが凝縮されている。
FuelPHPはCodeIgniterとKohanaのいいとこ取りの様なフレームワーク


フレームワークを使用するデメリット

  • 学習コスト

命名規則やファルダー指定などがあるためどうしても学習コストはそれぞれのフレームワークごとにかかります。フレームワークといっても思想の違うものも多く使用したことのあるフレームワークの思想を受け継いでいるものであれば学習コストは大幅に減少することになります。

  • 開発環境の依存性

フレームワークによってはPHP5.3以上など指定があるためサーバのPHPバージョンを上げなければならなかったりします。古いプログラムをそのままの場合はなかなか難しいですよね。

  • ライセンス問題

主にCodeIgniterでですがライセンス問題はつきまといます。
いつ開発が終わりサポートも終わりライセンスが切り替わるかはオープンソースの場合はわかりません。頻繁に起こるものではないので大丈夫だと思いますが、、、