0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

個人的な備忘録:フレームワークとライブラリの違いを理解するために、記事としてアウトプットしてみた

Last updated at Posted at 2025-01-19

はじめに

フレームワークとライブラリは、どちらもプログラミングを効率化するための便利なツールですが、主な違いは「制御の主導権」にあると考えています。

これらについて考える中で、フレームワークとライブラリが「便利な道具」という大まかな理解に留まり、自分の言葉でしっかりと言語化できていないことに気づきました。

本記事の内容は、個人的な備忘録レベルですので、ご了承ください。この記事が少しでも参考になれば幸いです。

書こうと思ったきっかけ

普段からフレームワークやライブラリを活用してプログラムコードを作成していますが、いつも決まった形で使うことが多いです。

その中で、自分自身が本当に理解して使っているのかと考えると、「なんとなく使っている」と感じる場面もあります。

まず、表形式で整理した内容は以下の通りです。参考にしていただければ幸いです。

主な違い

まず表形式でまとめると以下のような形になります。参考にしてみてください。

項目 フレームワーク ライブラリ
主導権 フレームワークが持つ 開発者が持つ
役割 アプリケーション全体を管理する構造を提供 特定の機能や処理を提供
自由度 フレームワークのルールに従う必要がある 開発者の自由に利用可能
Django、React、Spring NumPy、Pandas、Requests

フレームワーク

  • 定義: アプリケーション全体の構造や動作を規定し、その中で開発者がコードを書いていく仕組み。
  • 主導権: フレームワークがアプリケーションの流れを制御し、必要に応じて開発者が提供したコードを呼び出します(フレームワークが主導権を持つ)。
  • 特徴:
    • 開発者はフレームワークのルールや構造に従う必要がある。
    • プロジェクト全体を効率的に構築するのに向いている。
    • 一般的に、プラグインやモジュールを追加して拡張可能。
  • :
    • Web開発: Django(Python)、Ruby on Rails(Ruby)
    • フロントエンド: React、Angular(JavaScript)

ライブラリ

  • 定義: 特定の機能を実現するための再利用可能なコードの集まり。
  • 主導権: 開発者がライブラリを必要なときに呼び出して利用します(開発者が主導権を持つ)。
  • 特徴:
    • どのように使うかは開発者の自由。
    • 特定の機能を補うために使用される。
    • フレームワークほど全体の構造には影響しない。
  • :
    • Python標準ライブラリ(math、randomなど)
    • NumPy(科学計算)、Requests(HTTPリクエスト)

具体的なイメージ

  • フレームワーク: 「家具付きの賃貸物件」。用意された家具や設備を使いながら、自分の生活を始めるスタイル。基本のルールや構造はすでに決まっている。
  • ライブラリ: 「DIY家具」。必要なパーツを自分で選んで組み立てることで、自由に自分好みのインテリアを作れる。

このように、フレームワークは効率的で統一感がある一方、ライブラリは自由度が高くカスタマイズしやすい特性があります。

状況に応じて最適な選択をすることが重要です!

まとめ

ここまでお読みいただき、ありがとうございました。今回は、基本的なフレームワークとライブラリの違いについてまとめてみましたが、自分自身にとっても非常に勉強になる機会となりました。

これからも、自分にとって曖昧な知識については、積極的に記事を通じてアウトプットしていきたいと思います。

この記事が少しでも皆さんのお役に立てれば幸いです。

0
1
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?