ライブラリ、フレームワーク、APIの違いは何ですか?それらはすべて私には同じように見えます。これについて人々の考えを聞きたいです。
ライブラリ、フレームワーク、APIの違いは何ですか?それらはすべて私には同じように見えます。これについて人々の考えを聞きたいです。
回答:
ライブラリは、特定の目的を果たす関数/オブジェクトのコレクションです。さまざまなプロジェクトでライブラリを使用できます。
フレームワークは、アプリケーションの構築に役立つパターンとライブラリのコレクションです。
APIは、他のプログラムが直接アクセスせずにプログラムと対話するためのインターフェースです。
別の言い方をすれば、ライブラリをアプリケーションのアドオン/ピース、フレームワークをアプリケーションのスケルトン、APIをアプリケーションの外向きの部分と考えてください。
これまでのところ良い答えですが、1つの重要なポイントを見逃しています-フレームワークはIoCを使用しています。コードはフレームワークに囲まれています。それはその中に住んでいます。これとは対照的に、あなたのコードは、単に使用して、ライブラリやAPIを。それは外に住んでいます。IoCは違いです。
ライブラリは、一般的なタスクを実行するために構築されたコードのコレクションです。ライブラリコードは比較的安定しており、バグがない傾向があります。適切なライブラリを使用すると、記述する必要があるコードの量を減らすことができます。アプリケーションのコード行数を減らす傾向があり、機能が提供されるレートが増加します。ほとんどの場合、独自のコードを記述するよりもライブラリルーチンを使用する方が適切です。
API(アプリケーションプログラミングインターフェイス)は、アプリケーションが利用可能な機能にアクセスできるようにするいくつかの機能へのインターフェイスです。APIは、インターフェイスと呼ばれる場合があります。APIは、システム、ライブラリ、フレームワーク、プログラム、およびアプリケーションを含む多くのレベルで存在します。APIは、それらを実装するコードを実装する前に定義する必要があります。
APIは安定している必要がありますが、APIの一部はさまざまな理由で非推奨になります。APIをより広く使用するほど、変更が難しくなります。多くのメソッドが非推奨になっていますが、Java 1.0 APIのすべてではないにしても、ほとんどが利用可能です。
フレームワークは、アプリケーションの構築をより簡単にするために設計されたAPIのコレクションです。フレームワークは、再利用可能なコンポーネントの実装を提供します。良いフレームワークは、アプリケーションに特化する傾向があります。
Java Collections Frameworkは、コレクションの処理に使用できるさまざまなタイプのオブジェクトに対するAPIのコレクションです。APIの階層をさまざまなコレクションに提供します。Java Collections FrameworkのSortedSetインターフェイスはSetインターフェイスを拡張し、SetインターフェイスはCollectionインターフェイスを拡張します。これらのAPIは抽象インターフェースであり、実際の実装には異なる名前が付いています。コレクションフレームワークにより、コレクションの実装が簡単になり、開発中の実装の変更が簡単になります。
J2EE開発を対象としたJava Spring Frameworkに見られるように、フレームワークはより小さなフレームワークで構築できます。Springは12を超えるフレームワークで構成されており、その多くは単独で使用することも、他のフレームワークで置き換えることもできます。
適切なライブラリ、API、およびフレームワークを使用すると、開発を簡素化できます。これらのコンポーネントは一般的な問題を処理し、開発チームがアプリケーション固有の問題に集中できるようにします。
フレームワークは、ライブラリからのステップアップです。ツールボックスがライブラリの場合、ワークショップはフレームワークになります。
ウィキペディアによると
APIは、ソフトウェアシステムのコンポーネントで使用される一連の機能との相互作用のためのインターフェイスを記述する抽象概念です。
APIとユーザーインターフェイスの重要な違いは、APIにより、他のソフトウェア/サービスがプログラムでソリューションと対話できることです。
APIは、アプリケーション(dllまたはプラグインを介して)またはWebサイトとサービス(RESTおよびwebservicesを介して)の両方に対して構築できます。
APIは、ソースから使用できるオブジェクトとメソッドに関して、他の何かの使用方法を定義します。たとえば、TwitterまたはFacebookをサイトに統合するには、TwitterまたはFacebookのAPIを使用して、適切なデータが更新されるようにします。
フレームワークは、時には独自の言語を形成することがあるため、ある意味で少し大きくなる傾向があります。jQueryは、独自の構文を持ち、ある意味でコードに入るという点でもう少し重要なフレームワークの例です。フレームワークは、ある意味でAPIに似たプラットフォームにすることもできます。たとえば、Win32APIまたは.Net Frameworkにはそれぞれ、アプリケーションを構築するための多数のメソッドがあります。
ライブラリは、APIまたはフレームワークを実装するバイナリファイルである傾向があるため、場合によってはAPIまたはフレームワークを使用する必要があるビットです。少なくともそれが、これらの用語とそれらの違いの見方です。
ライブラリは、一般的なタスクを簡素化するために使用されるコードのコレクションです。クラス、関数、または言語やプラットフォームに固有のものであれば何でもかまいません。良い例としては、一般的なタスク(文字列の作成、分割、検索、並べ替えなど)のヘルパーを提供する文字列操作ライブラリがあります。
API(アプリケーションプログラミングインターフェース)は、別のアプリケーション、システム、またはテクノロジーとの連携方法の定義(「インターフェース」)です。基本的に、他のシステムと対話するために使用できる操作を定義します。API はライブラリにすることができます(APIはライブラリまたはクラスのセットにラップされることを意味します)が、APIは常にデータベース、Webサービス、別のアプリケーション、またはオペレーティングシステムなどの外部システムを参照します自体。
フレームワークはより大きな概念であり、通常、一般的なタスクを実行するための多くのライブラリとAPIが含まれます。より高い概念レベルで存在します-それは単なるツールのコレクションではなく、設計パターン、ベストプラクティス、および方法論のコレクションでもあります。ソフトウェアフレームワークは、一般的なフレームワークの拡張です。その意味には、物事の基盤となる基盤、サポートと構造の提供、要件へのガイダンスと定義の提供が含まれます。
アプリケーションは、フレームワークに基づいたライブラリを使用して開発され、APIを介して通信します。
オンライン画像処理アプリケーションと言うアプリを作成する場合、
アプリケーションに電話がかかってきたとき
呼び出し元に
これらが存在する理由: