0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

フロントエンドとバックエンドについて調べてからというものの、フレームワークとライブラリの違いが「?」になってしまいました。そこで今回は調べていく中で「家」のたとえ話にあったので自分なりにアウトプットしていきたいと思います。

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

概要 特徴
フレームワーク ・アプリケーション全体の構造や設計を提供
・開発の土台
・開発者に特定の設計パターンや規約を課し、その上でアプリケーションを構築する
・一貫した構造
・規約に従うことが求められる
・開発プロセスをガイドする
ライブラリ ・特定の機能を実装するための再利用可能なコードの集まり
・開発者が必要なときに呼び出して使用
・特定のタスクを簡単に実行するためのツールセットを提供する
・アプリケーション全体の構造には干渉しない
・特定の機能を実装
・必要に応じて使用
・開発者がコントロールする

フレームワークとライブラリの具体例

  • フレームワークの例
    Ruby on Rails:ウェブアプリケーション全体の構築をサポートするフレームワーク。MVCアーキテクチャに基づき、データベース、ビジネスロジック、ユーザーインターフェースの統合を容易にする

  • ライブラリの例
    Lodash:JavaScriptでデータ操作を容易にするユーティリティライブラリ。
    Axios:HTTPリクエストを簡単に行うためのJavaScriptライブラリ。
    React Google Maps:Google MapsをReactアプリケーションに統合するためのライブラリ。

「家」というアプリケーションを作ると仮定した場合

building_house1.png

フレームワーク ライブラリ
・設計図と建築基準
・基礎工事、骨組み、屋根の設計
・電気配線キット
・配管キット
・窓取り付けキット
家全体の基礎、壁、屋根の構造を定義 家を作るための特定の道具や素材に相当

プロジェクトにおけるフレームワークとライブラリにどんなものがあるか

フレームワーク

  1. Ruby on Rails
    言語: Ruby
    特徴: 高い生産性、デフォルトで設定された多くの機能、活発なコミュニティ
  2. Django
    言語: Python
    特徴: 簡潔な構文、強力な管理ツール、セキュリティ機能
  3. Spring
    言語: Java
    特徴: 大規模なエンタープライズアプリケーションに適し、豊富な機能と拡張性
  4. Laravel
    言語: PHP
    特徴: モダンなPHPフレームワーク、簡潔なAPI設計、豊富なライブラリ
  5. Express
    言語: JavaScript (Node.js)
    特徴: シンプルで柔軟な設計、ミドルウェアの利用が容易
  6. Flask
    言語: Python
    特徴: 軽量でミニマリストな設計、柔軟な拡張性
  7. ASP.NET Core
    言語: C#
    特徴: 高パフォーマンス、クロスプラットフォームのサポート、豊富な機能
  8. Vue.js (Nuxt.js)
    言語: JavaScript
    特徴: シンプルなAPI、豊富なエコシステム、静的サイトの生成が容易
  9. Angular
    言語: TypeScript
    特徴: 強力なフレームワーク、双方向データバインディング、豊富な機能
  10. Symfony
    言語: PHP
    特徴: 再利用可能なコンポーネント、堅牢なフレームワーク、モジュール設計

ライブラリ

  1. React
    言語: JavaScript
    特徴: コンポーネントベースの設計、仮想DOM、高速なレンダリング
  2. jQuery
    言語: JavaScript
    特徴: DOM操作が簡単、クロスブラウザ互換性、アニメーション
  3. Lodash
    言語: JavaScript
    特徴: データ操作が簡単、豊富なユーティリティ関数
  4. Axios
    言語: JavaScript
    特徴: HTTPリクエストが簡単、PromiseベースのAPI
  5. D3.js
    言語: JavaScript
    特徴: データビジュアライゼーションが強力、インタラクティブなグラフ作成
  6. Moment.js
    言語: JavaScript
    特徴: 日付と時間の操作が簡単、フォーマットやパースが容易
    Bootstrap
    言語: CSS/JavaScript
    特徴: モバイルファースト、レスポンシブデザイン、豊富なコンポーネント
  7. TensorFlow
    言語: Python/JavaScript
    特徴: 機械学習ライブラリ、深層学習モデルの構築
  8. Chart.js
    言語: JavaScript
    特徴: 簡単にチャートを作成、レスポンシブデザイン、豊富なグラフ種類
  9. RxJS
    言語: JavaScript
    特徴: リアクティブプログラミング、非同期データストリームの管理

さいごに

フレームワークとライブラリについてちょっとまとめてみました。
家に例えてみると少しわかりやすいのではないのかと思います。
にしてもフレームワークもライブラリも種類がこれ以上あると思うと…すごい:sweat_smile:

0
0
0

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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?