1. 序章

開発者は通常、「ライブラリ」と「フレームワーク」という用語を同じ意味で使用します。 このチュートリアルでは、それらの違いを学び、それぞれのさまざまな側面を探ります。 ライブラリは特定の機能を実装していると言えます。人気のあるライブラリの例としては、ReactJQueryがあります。 フレームワークは、特定の方法論を実装するライブラリのコレクションとして定義できます。 より一般的に知られているフレームワークのいくつかは Angular、 Vue モデルビューコントローラー 、 とモデルビュープレゼンター

2. 制御の反転

制御の反転によるフレームワークとライブラリの技術的な違いを考えてみましょう。上の図は、アプリケーションコードがライブラリを使用する場合、コードを作成する開発者がアプリケーションフローを担当することを示しています。 これは、開発者がいつライブラリを呼び出すかを決定することを意味します。 ただし、フレームワークを使用する場合、フレームワークがライブラリを呼び出すタイミングを決定します。 ライブラリの呼び出しをアプリケーションコードからフレームワークに制御するこのシフトは、制御の反転です。

3. フレームワークはどのように機能しますか?

フレームワークにより、低レベルのライブラリを含むコーディング環境で従来のコーディングの問題に対処できます。 フレームワークの目的は、アプリケーションの開発を迅速化することです。これには、ベストプラクティスに基づくテンプレートなど、大規模なアプリケーションを構築するために必要なすべてのものが含まれます。 フレームワークの内部動作について考えてみましょう。 グラフィカルユーザーインターフェイス(GUI)フレームワークを使用している場合は、イベントハンドラーを介してコードを呼び出します。 Webフレームワークを使用している場合は、要求/応答モデルを介してコードを呼び出します。 Webアプリケーションの場合、JavaScriptフレームワークはスケルトンを提供します 高速開発用のツールを備えています。内部的に、このようなフレームワークには、開発者に組み込みの機能を提供するライブラリの大規模なコレクションが含まれています。コーディングに関する幅広い知識がなくてもアプリケーションを開発できます。

3.1. フレームワークの利点

フレームワークを一般的に使用することには、デバッグのしやすさ、コーディングの改善、コードの再利用のしやすさ、開発の加速など、いくつかの利点があります。 Web開発フレームワークの利点について説明しましょう。

  • アプリケーションの一部を変更しても、アプリケーション全体には影響しません。
  • ネットワークトラフィックのキャッシュと最適化されたプロセスを提供します
  • より少ないコードでより高速なWeb開発方法を可能にします
  • クロスプラットフォームのアプリケーション開発をサポートします
  • リッチでダイナミックなコンテンツを作成することにより、優れたユーザーエクスペリエンスを提供します
  • Angularなどの一部のJavaScriptフレームワークはMVCに基づいているため、データバインディングを使用します。

3.2. フレームワークの制限

一般的なフレームワークに関連する問題のいくつかは次のとおりです。

  • フレームワークのすぐに使用できる機能により、プログラマーはプログラミング言語を深く理解することができません。
  • 機能を微調整するオプションは限られています。
  • フレームワークを使用したアプリケーション開発は複雑な場合があります。
  • アプリケーションの規模に適したフレームワークを選択する必要があります。そうしないと、パフォーマンスとユーザーエクスペリエンスに悪影響が及ぶ可能性があります。
  • MVCのプレゼンテーション層からビジネスロジックを明確に分離するのは難しい場合があります。
  •  すべてのバージョンの新機能/非推奨機能を最新の状態にする必要があります。

上記に加えて、Web開発フレームワークに関連する問題は次のとおりです。

  • ブラウザのバージョンの依存関係
  • JavaScriptフレームワークは、JavaScript対応のブラウジング環境でのみ実行できます。
  • 開発中に所定のフレームワークガイドラインに従わなかった場合のセキュリティ違反の可能性

3.3. フレームワークの使用

フレームワークは広義の用語ですが、その主な用途は次のとおりです。

  • Web開発–これは、PHP(CodeIgniter、Laravel)、Python(Django)、JavaScript( Angular )などのさまざまな言語を使用します。
  • 人工知能–人気のあるフレームワークには、 Apache Spark 、PyTorch、Tensorflowが含まれます。
  • モバイルアプリ開発–人気のあるフレームワークには、 Native Script React Native Flutterがあります。 Flutterは、ネイティブにコンパイルされた美しいアプリケーションを構築するためのGoogleのUIツールキットです。

4. ライブラリはどのように機能しますか?

ライブラリは、再利用可能で、コンパイルされ、テストされたコードのコレクションであり、アプリケーション機能の自動化または拡張を容易にします。 これは、ビルドプロセスおよびアプリケーションの実行中にコード開発者とコードコンパイラの両方をサポートするように設計されています。 ライブラリは、多くの関数、変数、およびパラメーターを実装します

4.1. ライブラリの利点

ライブラリの利点のいくつかについて説明しましょう。

  • プログラムのパフォーマンスを向上させます 実行時にコンパイラがライブラリを選択的に含めることによって
  • 再利用可能な機能を提供します 明示的に定義せずにコード内で参照できる
  • 複雑な関数のコードを書く必要がなくなります
  • 同じ問題を何度も解決するためにコードを書く必要がなくなります
  • HTTPやルーティングなどのグローバルな状態管理を気にせずに、ライブラリが実装する機能のみに焦点を当てます
  • 私たちに 欲しい図書館を選ぶ機会
  • アプリケーション開発コストを削減します
  • プログラマーが構成可能で再利用可能なライブラリー開発に集中することを奨励します
  • 複数の環境とユースケース向けに事前にテストされたコードを提供します

4.2. ライブラリの制限

次に、ライブラリの制限のいくつかを見てみましょう。

  • ライブラリを使用するということは、コードがそのライブラリに関連付けられていることを意味します。
  • ライブラリを変更するには、新しいライブラリを使用するためにコードを変更する必要がある場合があります。
  • サポートされていない環境でライブラリを使用するにはラッパーが必要であり、アプリケーションのパフォーマンスに影響を与えます。
  • ライブラリの開発者によるサポートの欠如は、アプリケーションの新しいバージョンとの非互換性の問題を引き起こす可能性があります。
  • 複数のライブラリを使用すると、依存関係の競合が原因でアプリケーションのパフォーマンスに悪影響を与える可能性があります。
  • ライブラリは悪意のある攻撃に対して脆弱な場合があります。

4.3. ライブラリの使用

私たちは図書館に何をすべきかを教えるので、彼らは広大な用途を持っています。 複雑な機能を含むソフトウェア開発が始まって以来、再利用可能なライブラリの必要性が高まりました。 JQueryは、イベント処理、アニメーション、および Ajax を単純化し、多数のブラウザーで機能するため、そのような例の1つです。

5. フレームワーク対。 としょうかん

フレームワークとライブラリの間にはいくつかの違いがあります。 いくつかの重要なものを見てみましょう:

6. 結論

この記事では、フレームワークとライブラリの背後にある概念を学びました。 フレームワークは、アプリケーションを迅速に構築およびデプロイするために使用されます。 フレームワークを使用すると、リソースを使用して開発を迅速化し、ユーザーエクスペリエンスを向上させることができます。ライブラリは、アプリケーションの機能を強化するために使用されます。 独自のライブラリを開発すれば、多くのアプリケーションで関数を使用できます