FrameWork

フレームワークとは、アプリケーションを開発するときの枠組みとなります。
無償で使えるオープンソースのものがいろいろと存在します。
ここではPHPのフレームワークを例にして記述します。

フレームワークを使うことは長所もありますが、短所もあります。
そのアプリケーショの特性や寿命、そして開発体制などを考慮して、
フレームワークを使うか、また使うとしたらどのフレームワークを使うのか、
を決める必要があります。

PHPフレームワークの種類

2017年現在では、以下のフレームワークに人気があるようです。
1.Laravel
2.Symfony
それ以前には以下のようなフレームワークも良く使われていたようです。
CakePHP、Zend、CodeIgniter、Yii
現在でもそれらで作られたアプリケーションは多く使われているでしょう。

長所1 一定レベルの品質

フレームワークを使う長所として、アーキテクチャレベルにおいて、
一定の品質を担保できると言えるでしょう。
開発生産性、セキュリティ、実行性能など、フレームワークに従って
開発をすれば、それなりの品質を確保できると言えます。
ただし、特に性能面においてはフレームワーク構造によるチューニングの
限界があることは気をつける必要があります。

長所2 開発者の確保

メジャーなフレームワークを使えば、その経験者を確保することは
それほど難しくありません。同じフレームワークの経験者であれば、
アプリケーションをメンテナンスするときに全体構造を理解することも
容易にできます。
ただ、この長所は両刃の剣でもあり、使ったフレームワークの人気が
すたれてしまうと、逆に経験者を確保することが難しくなってしまいます。

短所1 寿命

常にスクラップ&ビルドで、3~5年で新たに新たに作り直すような
サービスアプリケーション等の場合は、フレームワークを利用するの
には適していますが、社内業務アプリケーションのように10年スパンで
細かなメンテナンスをしながら使い続けるシステムにはフレームワークを
用いることがかえってリスクになったり足かせになります。

短所2 セキュリティとコスト

フレームワークの長所であった品質が、時を経るに従って逆に問題と
なっていきます。
フレームワークのバージョンアップには手間とコストがかかりますし、
さらには、フレームワークの保守が終了してしまうとセキュリティ面の
大きな問題が発生する可能性があります。

使い分け

多くの人数を集めて、寿命3年程度のシステムを短期間に開発する時は、
世の中で人気のあるフレームワークを使用する。
長年在籍する少数の開発者で、寿命10年以上のシステムを開発する
場合は、独自のフレームワーク(開発ルール)を作って開発する。
使う部品もできるだけバージョアップが不要なもので構成する。
ことをおすすめします。