Разница между фреймворком, библиотекой, IDE, API, SDK и инструментами? [закрыто]


144

Я хочу несколько примеров. Я всегда запутываюсь, поэтому на некоторых примерах я смогу лучше разобраться.

Также: Eclipse - это API или IDE?


1
eclipse - это IDE
Thielicious

Ответы:


297

IDE это интегрированная среда разработки - это suped вверх текстовый редактор с дополнительной поддержкой для разработки (например, форм дизайнеров, редакторов ресурсов и т.д.), компиляции и отладки приложений. например, Eclipse, Visual Studio.

Библиотека представляет собой кусок кода , который вы можете позвонить со своего собственного кода, чтобы помочь вам сделать вещи более быстро / легко. Например, библиотека обработки растровых изображений предоставит средства для загрузки и управления растровыми изображениями, избавляя вас от необходимости писать весь этот код для себя. Обычно библиотека предлагает только одну функциональную область (обработка изображений или работа с zip-файлами).

API (интерфейс прикладного программирования) является термин , означающий функции / методы в библиотеке, вы можете позвонить , чтобы попросить его сделать что - то для вас - интерфейс к библиотеке.

SDK (комплект разработки программного обеспечения) представляет собой библиотеку или группу библиотек (часто с приложениями дополнительный инструмент, файлы данных и примеры кода) , которые помогают вам в разработке кода , который использует конкретной системы (например , код расширения для использования функции операционной системы ( Windows SDK), рисование 3D-графики через определенную систему (DirectX SDK), написание надстроек для расширения других приложений (Office SDK) или написание кода, позволяющего устройству, например Arduino или мобильному телефону, делать то, что вы хотите). SDK, как правило, по-прежнему имеет одну цель.

Инструментарий подобен SDK - это группа инструментов (и часто библиотек коды) , которые вы можете использовать , чтобы облегчить доступ к устройству или системы ... Хотя , возможно , с большим упором на предоставление инструментов и приложений , чем на просто библиотеках коды .

Рамки большая библиотека или группа библиотек , которая предоставляет множество услуг (а не может быть , только один сфокусированная способность , как это делает большинство библиотек / SDKs). Например, .NET предоставляет платформу приложений - она ​​упрощает использование большинства (если не всех) разрозненных служб, которые вам нужны (например, Windows, графика, печать, связь и т. Д.), Для написания широкого спектра приложений - так что одно «библиотека» обеспечивает поддержку практически для всего, что вам нужно. Часто фреймворк предоставляет полную базу, на которой вы строите свой собственный код, а не создаете приложение, которое использует код библиотеки для выполнения части своей работы.

Конечно, есть много примеров, которые не совсем соответствуют этим описаниям.


3
Вы можете сказать, что SDK, библиотека или фреймворк содержат API.
Bastien Vandamme

6
SDK - это реализация для конкретного клиента, которая упрощает использование API, например SDK javascript для API Facebook. Часто вы увидите несколько языков, представленных в разделе SDK документации API, например, twilio API имеет python, ruby, C # и Java sdk для своего API. Чтобы еще больше запутать, они называют это библиотеками API и SDK, и я слышал, что оба этих термина используются как взаимозаменяемые.
Роб

97

Аналогия с автомобилем

введите описание изображения здесь

IDE: Офис программирования MS. Здесь вы вводите свой код, а также некоторые дополнительные функции, которые сделают вас более счастливым программистом. (например, Eclipse, Netbeans ). Кузов автомобиля: это то, к чему вы действительно прикасаетесь, видите и над чем работаете.

Библиотека: библиотека - это набор функций, часто сгруппированных в несколько программных файлов, но упакованных в один архивный файл. Он содержит программы, созданные другими людьми, так что вам не придется изобретать велосипед. (например, junit.jar, log4j.jar ). Библиотека обычно играет ключевую роль, но всю свою работу выполняет за кулисами, у нее нет графического интерфейса. Двигатель автомобиля.

API: документация издателя библиотеки. Вот как вам следует использовать мою библиотеку. (например, log4j API , junit API ). Руководство по эксплуатации автомобиля - да, оно есть и в автомобилях!


Наборы

Что такое комплект? Это набор множества связанных элементов, которые работают вместе для предоставления определенной услуги. Когда кто-то говорит аптечку, вы получаете все необходимое: пластыри, аспирин, марлю, антисептик и т. Д.

введите описание изображения здесь

SDK : McDonald's Happy Meal . У вас есть все, что вам нужно (и не нужно), аккуратно упаковано: основное блюдо, напиток, десерт и бонусная игрушка. SDK - это набор различных программных компонентов, собранных в пакет, так что они «готовы к действию» прямо из коробки. Он часто включает в себя несколько библиотек и может , но не обязательно, включать плагины, документацию по API и даже саму среду IDE. (например, iOS Development Kit ).

Инструментарий : графический интерфейс. GUI. GUI. Когда вы слышите слово «инструментарий» в контексте программирования, это часто относится к набору библиотек, предназначенных для разработки графического интерфейса. Поскольку наборы инструментов ориентированы на пользовательский интерфейс, они часто поставляются с плагинами (или автономными IDE), которые предоставляют утилиты для рисования экрана. (например, GWT )

Фреймворк : Хотя фреймворк не является распространенным понятием, его можно рассматривать как комплект. Он также имеет библиотеку (или набор библиотек, которые работают вместе), которая обеспечивает определенную структуру и шаблон кодирования (отсюда и слово « фреймворк» ). (например, Spring Framework)


42
API - это не просто документация. На самом деле это вообще не документация. Я понимаю вашу аналогию, но документация или документация API - это руководство по вашему автомобилю, а API - это скорее доска и кнопки вашего автомобиля.
Bastien Vandamme

1
Вы можете сделать разницу между GUI и API. GUI (графический интерфейс пользователя) - это интерфейс для конечного непрофессионального пользователя. API (интерфейс прикладного программирования) - это интерфейс для других программ. При разработке и применении вы можете создать графический интерфейс, API или и то, и другое. Вы также можете создать другие типы интерфейсов.
Bastien Vandamme

За графическим интерфейсом всегда стоит API. Графические интерфейсы только упрощают использование. В ИТ это больше по непрофессиональным причинам, вроде графических интерфейсов, а не кода. Еще о вашей автомобильной логике: возможно, вы не сможете управлять автомобилем самостоятельно, вам нужно научиться и уметь водить (считайте уроки вождения как учебное пособие или документацию). Если вы не хотите этого достичь, вы можете вместо этого сесть в автобус или такси, поскольку навыки вождения не требуются (в данном случае здесь нет навыков программирования) - поэтому я бы рассмотрел общественные транспортные средства как графические интерфейсы пользователя. Звучит смешно, но чертовски правдиво.
Thielicious

Я не согласен с тем, что «[библиотека] не имеет графического интерфейса». В мире JavaScript библиотеки очень часто содержат графический интерфейс.
user1505520

5

Рассмотрим разработку под Android:

IDE: Eclipse и т. Д.

Библиотека: android.app.Activity library (класс со всем кодом)

API: Интерфейс практически всех функций, с которыми мы вызываем

SDK: Android SDK предоставляет вам библиотеки API и инструменты разработчика, необходимые для создания, тестирования и отладки приложений для Android (---- инструменты - DDMS, эмулятор ---- платформы - версии ОС Android, ---- платформа- инструменты - ADB, ---- API docs)

ToolKit: может быть пакет ADT

Фреймворк: большая библиотека, но больше ориентированная на архитектуру


3

Другими словами...

IDE Даже ваш блокнот - это IDE. Каждое программное обеспечение, с помощью которого вы пишете / компилируете код, является IDE.

Библиотека Набор кода, который упрощает функции / методы для быстрого использования.

API Интерфейс программирования для функций / конфигурации, с которыми вы работаете, его использование часто документируется.

SDK Extras и / или для целей разработки / тестирования.

ToolKit Крошечные приложения для быстрого использования, часто с графическим интерфейсом.

Приложения с графическим интерфейсом пользователя с графическим интерфейсом, в отличие от API, не требуют знаний программирования.

Framework Набор API / огромная библиотека / фрагменты, завернутые в пространство имен / или инкапсулированные из внешней области для компактной обработки без конфликтов с другим кодом.

MVC Шаблон проектирования, разделенный на модели, представления и контроллеры для огромных приложений. Они не зависят друг от друга и могут быть изменены / улучшены / заменены без необходимости заботиться о другом коде.

Пример:

Автомобиль (Модель)
Представляемый объект.
Пример в ИТ: HTML-форма.


Камера (вид)
Что-то, что может видеть объект (автомобиль).
Пример в ИТ: браузер, отображающий веб-сайт с формой.


Водитель (Контроллер)
Тот, кто водит эту машину.
Пример в ИТ: функции, которые обрабатывают отправляемые данные формы.

Фрагменты Небольшие коды, состоящие всего из нескольких строк, могут быть даже неполными, но их стоит быстро поделиться.

Плагины Эксклюзивные функции только для указанных фреймворков / API / библиотек.

Надстройки Дополнительные модули или службы для определенных графических интерфейсов.


2

SDK представляет собой комплект для разработки программного обеспечения, а IDE представляет собой интегрированную среду разработки. IDE - это программное обеспечение или программа, используемая для записи, компиляции, запуска и отладки, например Xcode. SDK - это базовый механизм IDE, включающий все библиотеки платформы, к которым приложение должно получить доступ. Он более простой, чем IDE, поскольку обычно не имеет графических инструментов.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.