web-dev-qa-db-ja.com

フレームワークvsライブラリvs IDE vs API vs SDK vs Toolkitの違いは?

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

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

136
Manoj hans

IDEは統合開発環境です。開発(フォームデザイナー、リソースエディターなど)、アプリケーションのコンパイルとデバッグをサポートする追加のテキストエディターです。例:Eclipse、Visual Studio。

Libraryは、より速く/簡単に物事を行うために、独自のコードから呼び出すことができるコードの塊です。たとえば、ビットマップ処理ライブラリは、ビットマップ画像をロードおよび操作するための機能を提供するため、すべてのコードを自分で作成する必要がなくなります。通常、ライブラリは1つの機能領域のみを提供します(画像の処理またはZipファイルの操作)。

API(アプリケーションプログラミングインターフェース)は、ライブラリ内の関数/メソッドを意味する用語であり、呼び出すことでライブラリのインターフェースになります。

SDK(ソフトウェア開発キット)は、特定のシステム(拡張機能など)を使用するコードの開発を支援するライブラリまたはライブラリのグループ(多くの場合、追加のツールアプリケーション、データファイル、サンプルコードを含む)です。オペレーティングシステムの機能を使用するコード(Windows SDK)、特定のシステムを介して3Dグラフィックを描画する(DirectX SDK)、他のアプリケーションを拡張するアドインを作成する(Office SDK)、またはArduinoや携帯電話はあなたが望むものを行います)。通常、SDKには単一のフォーカスがあります。

toolkitはSDKのようなものです。これは、デバイスまたはシステムへのアクセスを容易にするために使用できるツールのグループ(および多くの場合、コードライブラリ)です。コードライブラリだけではなくアプリケーション。

frameworkは、多くのサービスを提供する大きなライブラリーまたはライブラリーのグループです(ほとんどのライブラリー/ SDKのように、おそらく1つの焦点を絞った機能ではありません)。たとえば、.NETはアプリケーションフレームワークを提供します-必要な異種サービス(Windows、グラフィック、印刷、通信など)のほとんど(すべてではないにしても)を使用して、広範なアプリケーションを作成することが容易になります。 「ライブラリ」は、必要なほぼすべてのサポートを提供します。多くの場合、フレームワークは、ライブラリコードを使用して作業の一部を実行するアプリケーションを構築するのではなく、独自のコードを構築するための完全なベースを提供します。

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

278
Jason Williams

車のアナロジー

enter image description here

IDE:MS Office of Programming。コードを入力する場所に加えて、より幸せなプログラマを作成するための追加機能もあります。 (例:Eclipse、Netbeans)。 車体:それはあなたが本当に触れ、見て、取り組むものです。

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

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


キット

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

enter image description here

SDKマクドナルドのハッピーミール。メインコース、ドリンク、デザート、ボーナスグッズなど、必要なもの(必要ないもの)がすべて揃っています。 SDKは、パッケージに組み込まれたさまざまなソフトウェアコンポーネントの集まりであり、すぐに使用できる「すぐに使える」ものです。多くの場合、複数のライブラリとcanが含まれますが、プラグイン、APIドキュメント、さらにはIDE自体が含まれているとは限りません。 (例 iOS開発キット )。

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

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

92
Jops

Android開発を検討してください:

IDE:Eclipseなど。

ライブラリ:Android.app.Activityライブラリ(すべてのコードを含むクラス)

API:基本的にすべての機能を、私たちが呼び出す魔女とインターフェースします

SDK:Android SDKは、Androidのアプリのビルド、テスト、デバッグに必要なAPIライブラリと開発者ツールを提供します(---- tools-DDMS、Emulator ----プラットフォーム-Android OSバージョン、----プラットフォームツール-ADB、---- APIドキュメント)

ToolKit:ADTバンドルの可能性

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

5
ashishpinninti

言い換えると...

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

ライブラリすぐに使用できるように関数/メソッドを簡素化する一連のコード。

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

SDKエキストラおよび/または開発/テスト用。

ToolKitすぐに使用できる小さなアプリ、多くの場合GUI。

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

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

MVC巨大なアプリケーションのモデル、ビュー、コントローラーで分離されたデザインパターン。それらは互いに依存しておらず、他のコードを気にせずに変更/改善/置換することができます。

例:

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


カメラ(表示)
オブジェクト(車)を見ることができるもの。
ITの例:フォームを使用してWebサイトをレンダリングするブラウザー。


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

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

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

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

2
Thielicious

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

2
Haitham