[Frameworks] В чем разница между каркасом и библиотекой?



Answers

Библиотека выполняет конкретные, четко определенные операции.

Рамка представляет собой скелет, в котором приложение определяет «мясо» операции, заполняя скелет. У скелета все еще есть код для соединения частей, но самая важная работа выполняется приложением.

Примеры библиотек: Сетевые протоколы, сжатие, манипулирование изображениями, строковые утилиты, оценка регулярных выражений, математика. Операции являются самодостаточными.

Примеры фреймворков: система веб-приложений, диспетчер подключаемых модулей, система GUI. Структура определяет концепцию, но приложение определяет основную функциональность, о которой заботятся конечные пользователи.

Question

В чем разница между каркасом и библиотекой ?

Я всегда думал о библиотеке как о наборе объектов и функций, которые ориентированы на решение конкретной проблемы или вокруг определенной области разработки приложений (т.е. доступ к базе данных); структура, с другой стороны, представляет собой набор библиотек, ориентированных на определенную методологию (т. е. MVC), и охватывает все области разработки приложений.







Я думаю, что библиотека представляет собой набор утилит для достижения цели (например, сокеты, криптография и т. Д.). Framework - это библиотека + RUNTIME EINVIRONNEMENT. Например, ASP.NET является основой: он принимает HTTP-запросы, создает объект страницы, вызывает события lyfe cicle и т. Д. Framework делает все это, вы пишете немного кода, который будет запускаться в определенное время жизненного цикла текущий запрос!

Во всяком случае, очень интересный вопрос!




Библиотека. Любой набор классов или компонентов, которые могут использоваться в качестве клиента, считается подходящим для выполнения определенной задачи.
Framework - дает определенные рекомендации для вас, чтобы «подключить» к чему-то большему, чем вы. Вы просто предоставляете детали, специфичные для вашего приложения / требований, в опубликованном виде, так что «каркас может сделать вашу жизнь легкой»,




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

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




Вы звоните в Библиотеку.

Рамка призывает вас.

図 書館 助 け 足 場 が 痛 い 多 く の 涙




Структура может быть составлена ​​из разных библиотек. Давайте возьмем пример.

Предположим, вы хотите приготовить рыбный карри. Тогда вам нужны ингредиенты, такие как масло , специи и другие утилиты . Вам также нужна рыба, которая является вашей базой для приготовления вашего блюда (это данные вашего приложения). все ингредиенты вместе называются каркасом . Теперь вы будете использовать их один за другим или в сочетании, чтобы сделать ваш карри из рыбы, который является вашим конечным продуктом . Сравните это с веб-каркасом, который сделан из underscore.js , bootstrap.css , bootstrap.js , fontawesome , AngularJS и т. Д. Например, Twitter Bootstrap v.35 .

Теперь, если вы рассматриваете только один ингредиент, например, масло . Вы не можете использовать какое-либо масло, потому что тогда оно разрушит вашу рыбу (данные). Вы можете использовать только оливковое масло . Сравните это с underscore.js . Теперь, какой бренд масла вы хотите использовать, зависит от вас. Некоторое блюдо было сделано с американским оливковым маслом (underscore.js) или индийским оливковым маслом (lodash.js). Это только изменит вкус вашего приложения. Поскольку они обслуживают почти ту же цель, их использование зависит от предпочтений разработчика, и они легко заменяемы.

Framework : коллекция библиотек, которые предоставляют уникальные свойства и поведение вашему приложению. (Все ингредиенты)

Библиотека : четко определенный набор инструкций, которые предоставляют уникальные свойства и поведение вашим данным. (Масло на рыбе)

Плагин : сборка утилиты для библиотеки (ui-router -> AngularJS) или многих библиотек в комбинации (сборщик даты -> bootstrap.css + jQuery), без которой ваш плагин теперь может работать как ожидалось.

PS AngularJS - это структура MVC, но библиотека JavaScript. Потому что я считаю, что библиотека расширяет поведение по умолчанию встроенных технологий (JavaScript в этом случае).




С точки зрения веб-разработчиков:

  1. Библиотека может быть легко заменена другой библиотекой. Но рамки не могут.

    Если вам не нравится библиотека выбора даты jQuery, вы можете заменить ее другим выбором даты, например, выбрать дату или дату.

    Если вам не нравится AngularJS, на котором вы создали свой продукт, вы не можете просто заменить его другими каркасами. Вы должны переписать всю свою базу кода.

  2. В основном библиотека занимает гораздо меньше кривой обучения по сравнению с Framework. Например: underscore.js является библиотекой, Ember.js является основой.




Как я всегда это описывал:

Библиотека - это инструмент.

Рамка - это образ жизни.

Библиотека, в которой вы можете использовать любую крошечную часть, поможет вам. Рамки, над которыми вы должны выполнить весь проект.




Инверсия управления является ключевой частью того, что делает структуру отличной от библиотеки. Библиотека - это, по сути, набор функций, которые вы можете назвать, в наши дни обычно организованы в классы. Каждый вызов выполняет некоторую работу и возвращает управление клиенту.

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






Links