フレームワークのデメリットについて


前回はフレームワークを導入するメリットを記載したが、メリットばかりでなくデメリットにも目を向け、導入したけど失敗したということのないようによく検討したい。

デメリット 1.機能がフレームワークに依存してしまう

フレームワークにない機能は自分で実装することになるが、フレームワークを利用しつつ新機能を開発するというのは、単にフレームワークの機能を利用するだけの時と比べ、一般的に遥かに難易度が高く、そのフレームワークに対する深い理解が必要になる。また、最悪の場合は、そのフレームワークを使用していると実現できないということもありうるため、フレームワークにない機能が実現できるか、事前によく検討しておく必要がある。

デメリット 2. 学習コスト

新たにフレームワークを導入する場合、今までのやり方を変えて、自分はもちろん他のメンバーにもフレームワークを学習してもらう必要がある。簡単なフレームワークなら問題ないが、結構な学習コストになる場合が多い。
しかしこれは、今のメンバーがこれまでのやり方に慣れているというだけで、例えば新人が入ってきた場合に、自社で開発した場合、新人にその自社のやり方に慣れてもらう必要があるし、求人の際にフレームワークを使える人、という枠で募集することもできるので、状況によっては問題にならないこともある。

デメリット 3.フレームワークのバージョンアップ、アップデートの問題

フレームワークによってはバージョンアップが頻繁に行われることがある。機能が増えたり、安定性が増すことは良いことなのだが、新しいバージョンでは、これまでのやり方が通用しなかったり、旧バージョンのサポートが切れてしまったりすることもある。
システムの完成後に、フレームワーク自体のバージョンアップを行う場合、全面的にコードの書き換えが必要になったりすることは稀だが、少なくともテストし直す必要はあるため、気軽に行えるものではない。
継続して開発を続けていくシステムであれば、バージョンアップも検討できるが、システムが完成して納品検修となり、その後新機能等の開発はなく保守フェーズに入るようなシステムの場合は、保守範囲内でバージョンアップをするのか、事前によく確認しておく必要がある。
bootstrap のような css のフレームワークを部分的に使っているだけならバージョンアップする必要はないが、システムの根幹となるフレームワークの場合、セキュリティ上の問題が見つかり、その対策を施したアップデートが行われた場合は、やはり対応する必要があるだろう。

デメリットのその 3.フレームワークの流行り廃り

フレームワークにも流行があり、前はよく使われていたのに現在ではあまり使われなくなっている、という状況は起こりうる。
プログラミング言語にも同じことが言えるが、人気のなくなったフレームワークでは開発やサポートが終了してしまう可能性もあり、せっかく苦労して使いこなせるようになっても、次の開発では使用できないということになりかねない。
逆に人気のあるフレームワークでは、使用している人が多いため、何か困った事があった場合に、同じような状況になった人が、その解決策を記載してくれている場合もあり、参考にできるサイトやドキュメントも充実していることが多い。
やはりある程度、利用者の多いフレームワークを使用しておくのが無難であるといえる。

総括

フレームワークを導入した際のデメリットをいくつか挙げたが、導入する際にはこのようなデメリットが問題にならないか、よく検討するようにしたい。


Programming Blog