フレームワークvsライブラリvs IDE vs API vs SDK vsツールキットの違いは?[閉まっている]


144

いくつかの例が欲しい。私はいつも混乱するので、いくつかの例を挙げれば、それをよりよく理解できるかもしれません。

また、EclipseはAPIまたはIDEですか?


1
日食はIDEです
Thielicious

回答:


294

アンIDEは(そのような型の設計者、リソースエディタ、などなど)の開発のための追加サポートとsupedアップテキストエディタ、アプリケーションのコンパイルとデバッグ-統合開発環境です。例:Eclipse、Visual Studio。

A ライブラリは、あなたがより迅速/簡単に物事を行う支援するために、独自のコードから呼び出すことができ、コードの塊です。たとえば、ビットマップ処理ライブラリは、ビットマップ画像を読み込んで操作するための機能を提供し、すべてのコードを自分で書く手間を省きます。通常、ライブラリは1つの機能領域のみを提供します(画像の処理またはzipファイルの操作)。

APIライブラリへのインターフェース- (アプリケーション・プログラミング・インターフェース)は、あなたがあなたのために物事を行うためにそれを尋ねるために呼び出すことができ、ライブラリ内の関数/メソッドを意味する用語です。

アンSDK(ソフトウェア開発キット)ライブラリのライブラリーまたはグループである(多くの場合、余分なツールのアプリケーション、データファイル、およびサンプルコード付き)が支援します特定のシステム(オペレーティングシステムの機能を使用するための例えば拡張コードを(使用するコードを開発中Windows SDK)、特定のシステムを介して3Dグラフィックスを描画する(DirectX SDK)、他のアプリケーションを拡張するアドインを作成する(Office SDK)、またはArduinoや携帯電話などのデバイスに必要な処理を実行させるコードを作成する)。通常、SDKには単一の焦点があります。

このツールキットは、 SDKのようなものです-それはあなたがそれが簡単にデバイスやシステムにアクセスするために行うために使用できるというツール(多くの場合、コードライブラリ)のグループです...けれども、おそらくちょうどコードライブラリに比べツールやアプリケーションを提供する上で、より焦点を当てました。

フレームワークは、大きなライブラリやライブラリのグループの多くのサービスを提供しています(というよりほとんどの図書館/ SDKのがそうであるように、おそらく唯一の集束能力)です。たとえば、.NETはアプリケーションフレームワークを提供します。これにより、必要なさまざまなサービス(Windows、グラフィック、印刷、通信など)のほとんど(すべてではないにしても)を使用して、さまざまなアプリケーションを簡単に作成できます。 「ライブラリ」は、あなたがする必要があるほとんどすべてのサポートを提供します。多くの場合、フレームワークは、ライブラリコードを使用して作業の一部を行うアプリケーションを構築するのではなく、独自のコードを構築するための完全なベースを提供します。

もちろん、実際にはこれらの説明と完全には一致しない多くの例があります。


3
SDK、ライブラリ、フレームワークにはAPIが含まれていると言えます。
Bastien Vandamme 2015

6
SDKは、APIの使用を容易にするためのクライアント固有の実装です(Facebook APIのJavaScript SDKなど)。多くの場合、APIドキュメントのSDKセクションに複数の言語が表示されます。たとえば、twilio APIには、APIにpython、ruby、C#、Java sdkがあります。少し混乱させるために、APIライブラリとSDKと呼んでいますが、これらの用語はどちらも同じ意味で使用されていると聞きました。
ロブ

97

車のアナロジー

ここに画像の説明を入力してください

IDE: MS Office of Programming。ここにコードを入力し、さらに便利なプログラマーになるためのいくつかの追加機能を入力します。(例:Eclipse、Netbeans)。車体:これは、実際に触れて、見て、作業するものです。

ライブラリ:ライブラリは関数のコレクションであり、多くの場合、複数のプログラムファイルにグループ化されますが、単一のアーカイブファイルにパッケージ化されます。これには他の人が作成したプログラムが含まれているので、ホイールを作り直す必要はありません。(例:junit.jar、log4j.jar)。ライブラリは一般に重要な役割を果たしますが、そのすべての作業をバックグラウンドで実行します。GUIはありません。車のエンジン。

API:ライブラリ発行元のドキュメント。これが私のライブラリの使い方です。log4j APIjunit APIなど)。車のユーザーマニュアル-はい、車にも付属しています。


キット

キットとは?これは、連携して特定のサービスを提供する多くの関連アイテムのコレクションです。誰かが薬のキットを言うとき、あなたは緊急事態に必要なすべてを手に入れます:石膏、アスピリン、ガーゼ、防腐剤など。

ここに画像の説明を入力してください

SDKマクドナルドのハッピーミール。必要なもの(必要ないもの)はすべて、きちんと箱に収められています。メインコース、飲み物、デザート、ボーナスグッズです。SDKは、パッケージに組み込まれたさまざまなソフトウェアコンポーネントの集まりであり、箱から出してすぐに「すぐに使える」状態になります。それは多くの場合、複数のライブラリと含まれて缶を、必ずしもプラグイン、APIドキュメント、でもIDE自体を含まなくてもよいです。(例:iOS開発キット)。

ツールキット:GUI。GUI。GUI。プログラミングのコンテキストで「ツールキット」と聞くと、多くの場合、GUI開発を目的とした一連のライブラリを指します。ツールキットはUI中心であるため、多くの場合、画面描画ユーティリティを提供するプラグイン(またはスタンドアロンIDE)が付属しています。(例:GWT

フレームワーク:一般的な概念ではありませんが、フレームワークはキットと見なすことができます。また、特定のコーディング構造とパターン(つまり、フレームワーク)を提供するライブラリ(または一緒に動作するライブラリのコレクション)も備えています。(例:Spring Framework)


41
APIは単なるドキュメントではありません。実際、それはまったくドキュメントではありません。アナロジーはわかりますが、ドキュメントまたはAPIドキュメントは車のマニュアルであり、APIは車のボードとボタンにすぎません。
Bastien Vandamme 2015

1
GUIとAPIの違いを確認できます。GUI(グラフィカルユーザーインターフェイス)は、最終的な非専門家ユーザーのためのインターフェイスです。API(アプリケーションプログラミングインターフェイス)は、他のプログラムのインターフェイスです。アプリケーションを開発するときに、GUIまたはAPI、あるいはその両方を作成できます。他のタイプのインターフェースを作成することもできます。
Bastien Vandamme 2015

GUIの背後には常にAPIがあります。GUIはユースケースを単純化するだけです。ITでは、コードではなくグラフィックインターフェイスのような非専門的な理由によります。それでもあなたの車の論理について:あなたは自分で車を運転することができないかもしれません、あなたは運転する方法を学び、知る必要があります(チュートリアルやドキュメントとして運転レッスンを考えてください)。達成したくない場合は、運転スキルが必要ないため(ここではプログラミングスキルは必要ないため)、代わりにバスまたはタクシーに乗ることをお勧めします。そのため、公共の交通手段をGUIと見なします。面白そうに聞こえるが本当だ。
Thielicious

「[ライブラリ]にはGUIがありません」には同意しません。JavaScriptの世界では、ライブラリにGUIを含めることは非常に一般的です。
user1505520

5

Android開発を検討する:

IDE:Eclipseなど。

ライブラリ:android.app.Activityライブラリ(すべてのコードを持つクラス)

API:基本的に、呼び出すすべての関数とのインターフェース

SDK:Android SDKは、Android用のアプリのビルド、テスト、デバッグに必要なAPIライブラリと開発者ツールを提供します(---- tools-DDMS、エミュレータ---- platforms-Android OSバージョン、---- platform-ツール-ADB、---- API docs)

ToolKit:ADTバンドルである可能性があります

フレームワーク:大きなライブラリですが、アーキテクチャ指向のものです


3

言い換えると...

IDE メモ帳もIDEです。コードを記述/コンパイルするすべてのソフトウェアはIDEです。

ライブラリ 関数/メソッドを簡略化してすばやく使用できるようにするコードの束。

API使用 する機能/構成のプログラミングインターフェースで、その使用法はしばしば文書化されています。

SDK Extrasおよび/または開発/テスト目的。

ToolKit Tinyアプリをすばやく使用でき、多くの場合GUIです。

グラフィカルインターフェイスを備えたGUIアプリは、APIのようにプログラミングの知識を必要としません。

名前空間にラップされた、または外部スコープからカプセル化されたAPI /巨大なライブラリ/スニペットのフレームワークバンドルは、他のコードと競合することなくコンパクトに処理できます。

MVC 巨大なアプリケーション向けにモデル、ビュー、コントローラーに分けられた設計パターン。それらは相互に依存しておらず、他のコードを処理することなく変更/改善/置換できます。

例:

車(モデル)
提示されているオブジェクト。
ITの例:HTMLフォーム。


カメラ(ビュー)
オブジェクト(車)を見ることができる何か。
ITの例:フォームでWebサイトをレンダリングするブラウザー


ドライバー(コントローラー)
その車を運転する人。
ITの例:送信されるフォームデータを処理する関数。

スニペット ほんの数行の小さなコードは、完全ではないかもしれませんが、すぐに共有する価値があります。

プラグイン 指定されたフレームワーク/ API /ライブラリ専用の専用機能。

アドオン 特定のGUI用の追加のモジュールまたはサービス。


2

SDKはソフトウェア開発キットを表し、IDEは統合開発環境を表します。IDEはソフトウェアであるか、プログラムはXcodeなどの書き込み、コンパイル、実行、デバッグに使用されます。SDKはIDEの基盤となるエンジンであり、アプリがアクセスする必要があるすべてのプラットフォームのライブラリが含まれています。IDEには通常グラフィカルツールがないため、IDEよりも基本的です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.