フレームワークとは - Shinichi0713/security_specialist GitHub Wiki
フレームワーク(framework)とは、ソフトウェア開発においてアプリケーションの土台や枠組みを提供するものです。
開発者が一からすべての機能を作るのではなく、よく使われる機能や構造があらかじめ用意されており、その上に自分のアプリケーション固有の処理や機能を追加していくことができます。
フレームワークの特徴
- 土台・枠組み:アプリケーション全体の基本構造や流れを決めている
- 再利用性:よく使う機能(例:データベース接続、画面表示、認証など)が組み込まれている
- 効率化:開発者は独自のロジックや特徴的な部分に集中できる
- ルールや制約:フレームワークが決めた書き方や構造に従う必要がある
例
- Webアプリ開発
- Python: Django、Flask
- JavaScript: React、Vue.js(これらは「ライブラリ」と呼ばれることもありますが、枠組みを提供するものはフレームワーク的です)
- デスクトップアプリ
- Tkinter(PythonのGUIフレームワーク)
- モバイルアプリ
- Flutter、React Native
フレームワークとライブラリの違い
- ライブラリ:特定の機能を「呼び出して使う」もの。自由度が高い。
- フレームワーク:アプリ全体の流れや構造を「決めてくれる」もの。
「フレームワークの流れに自分のコードを組み込む」イメージです(これを「ハリウッド原則(Don't call us, we'll call you)」と呼ぶこともあります)。
まとめ
フレームワークとは、アプリケーション開発のための「土台」や「枠組み」を提供し、開発効率を高めてくれる仕組みです。