Чем отличается библиотека от фреймворка?
Чем отличается библиотека от фреймворка в JavaScript?
Gooooogle не помог :C
Простите за глупый вопрос.
- Вопрос задан более трёх лет назад
- 32206 просмотров
Решения вопроса 2
Фреймворк — это набор библиотек и инструментов. Библиотека — это просто программный модуль на определенном языке.
Простите за глупый вопрос.
Не стоит извиняться. Нужно больше глупых вопросов. А самые сложные в мире вопросы — простые.
Ответ написан более трёх лет назад
Нравится 26
Грубо говоря библиотека это набор готовых решений, которы вы можете просто брать и использовать как захочется. Фреймворк же накладывает опреденный стиль программирования, его элементы сильнее связаны между собой.
Ответ написан более трёх лет назад
Нравится 10
Ответы на вопрос 3
President42 @President42
Библиотека просто даёт Вам набор функций, которые Вы можете использовать когда и где хотите.
Фреймворк обычно жёстко контролирует структуру приложения, ограничивает Ваши возможности (в том числе, и выстрелить себе в ногу).
Ответ написан более трёх лет назад
Нравится 7
Дмитрий @EvilsInterrupt
System programming, Reversing Engineering, C++
Чего только не напишут )))
Фреймворк это тоже библиотека, но не простая, а задающая развитие проекта при его использовании.
class CarInterface < public: virtual ~CarInterface() = 0 <>virtual void go() = 0; >; int go(const CarInterface& car);
Смотря на этот кусок мы видим ДВУХ программистов: программист-разработчик и программист-пользователь. Первый это автор фреймворка и он задумал, что его интерфейс автомобиля будет иметь определенные варианты использования и характеристики, но он не может знать какие именно? Поэтому он ОБЯЗЫВАЕТ программиста пользователя реализовать конкретный автомобиль.
Фрейморк это библиотека решающая определенный круг задач и при этом направляющая программиста пользователя в строго определенном направлении при решении задачи!
Другой пример, библиотека Flask: Для того , чтобы обработать HTTP-запрос POST-методом я обязан применять функцию route с аргументом methods в котором указать список содержащий строку ‘POST’. Код:
@app.route('/executables/', methods=['POST']) def get_executables(id): pass
можеть мне удобнее не methods, http_verbs, но автор ЗАСТАВИЛ меня передавать с названием methods.
Фрейморк заставляет не просто так, а с целью получения однообразности кода.
Зачем нужны фреймворки и библиотеки
Работа с библиотеками и фреймворками — базовый навык для девелопера. Хотя оба инструмента помогают строить архитектуру программ, а разработчики часто используют их как синонимы, между ними есть различия.
Объясняем, что выбрать для решения ваших задач.
«Чужой» код
И фреймворки, и библиотеки — это код, который до вас написал другой разработчик. Этот код используют, когда решают однотипные задачи или распространенные проблемы.
Принцип разработки программного обеспечения DRY (Don’t repeat yourself) советует не дублировать код, который используется много раз. Например, вам нужно обрабатывать строки. Для этого вы применили функцию добавления заглавной буквы к каждой новой строке. Записав функцию, вы создали небольшую собственную библиотеку.
Что такое библиотека
Библиотека — это набор функций, которые решают конкретную задачу в программе. Она может применять шаблоны сообщений, ранее скомпилированный код, классы или подпрограммы — и использоваться много раз. В языках программирования есть стандартные библиотеки, но разработчик также может создать свою.
Классы и методы, с которыми работает библиотека, определяют, для чего она используется. Например, математические библиотеки позволяют разработчикам делать вычисления, просто вызвав функцию и не изучая, как работает этот алгоритм в программе. Доступ к библиотекам обычно реализован с помощью API.
Здесь мы рассказываем о Pillow — библиотеке для обработки графики на Python.
статьи по теме:
Какие инструменты разработки используют чаще других.
Разбираем 5 ключевых.
Что такое фреймворк
Фреймворк — это тоже фрагмент кода, но его задача — определить, как структурировать и выполнять программу. Он требует задать архитектуру приложения — например, дизайн программы и интерпретацию кода. Фреймворк — «каркас» вашего приложения. Фреймворки обычно создают профессиональные команды разработчиков в больших корпорациях (вроде Google).
Например, фреймворк AngularJS применяют для создания веб-приложений. Он основан на HTML и JavaScript и задает базовые параметры для проекта: разметку страницы для десктопной и мобильной версии, синхронизацию с данными сервера, синтаксис шаблона и кроссплатформенность страницы (одинаковое отображение на Android и iOS). Чтобы расширить функционал, к сайту на основе Angular можно подключить одну или несколько библиотек. Но подключить Angular к другому фреймворку невозможно, поскольку фреймворк определяет, как запускать код на сайте.
Использование фреймворков и библиотек часто объясняют по аналогии со строительством дома. Фреймворк — это строительная компания, у которой есть несколько готовых проектов домов. А библиотеки — рабочие инструменты (как дрель или лобзик), которые можно применить по своему усмотрению.
Чем фреймворки отличаются от библиотек
Библиотека подключается к вашему коду, а он — к фреймворку. Основное отличие фреймворка от библиотеки в том, кто контролирует процесс разработки. Программист обращается к библиотеке по желанию. В таком случае он отвечает за поток выполнения программы и последовательность выполнения команд. При использовании фреймворка роли меняются. Фреймворк сам вызывает ваш код и предоставляет вам пространство для добавления деталей. Поэтому такое отличие называют инверсией управления.
Упрощенно это можно представить так:
- Библиотека: задайте нам команду, чтобы выполнить работу.
- Фреймворк: не задавайте команду, мы зададим команду вам.
В программировании существует субъективный параметр — «упрямство» библиотек и фреймворков. Это степень свободы разработчика при структурировании кода.
Именно из-за инверсии контроля фреймворки более упрямы и способны больше автоматизировать разработку. Они самостоятельно принимают решения по написанию кода. Например, фреймворк помогает создавать формы авторизации, таблицы или автоматически генерирует верстку. Некоторые фреймворки даже задают расположение или названия файлов.
Такой подход называется convention over configuration (соглашение по конфигурации). В нем разработчику не нужно настраивать большинство параметров программы.
У разных фреймворков — разная степень «упрямства».
Например, фреймворк Ruby on Rails (RoR) языка Ruby называют очень упрямым. Когда вы делаете новый проект на RoR, он сразу создает папки и файлы с большим количеством кода. Например, когда вы создаете модель User, фреймворк ожидает, что она будет привязана к UsersController. Благодаря заранее написанному коду, Rails в фоновом режиме соединяет модели и контроллеры.
Сравним этот подход с использованием Chart.js — библиотеки, которая создает диаграммы в JavaScript. Вы определяете, где и когда вызвать Chart.js, но вам нужно указать тип диаграмм, цвета и границы. Библиотека ответственна только за информацию для диаграмм.
Хорошие фреймворки легко расширить. Они обеспечивают базовый функционал для разработки программы, но остаются открытыми для изменений. Фреймворки генерируют много кода, который разработчик обычно не меняет.
Используя библиотеку, вы должны понимать, что делает каждый из методов. Фреймворки же требуют от разработчика применять конкретную парадигму программирования (функциональную, декларативную, императивную) и понимать логику процессов. Поэтому изучение фреймворков занимает больше времени, но они предоставляют возможность сделать целый проект или его прототип.
Универсального ответа, когда лучше применять фреймворк, а когда — библиотеку, не существует. Но если на проекте вы используете фреймворк, то лучше применять его для решения задач. Библиотека понадобится, если функций фреймворка недостаточно или у вас продвинутые навыки работы с библиотекой и вы хотите решить задачу нестандартным способом.
курсы по теме:
Data Science with Python
Фреймворк и библиотека. Отличия.
Есть 2 понятия библиотека и фреймворк, как они отличаются? Давайте будем разбираться.
На самом деле эти 2 понятия очень похожи. В чем же здесь отличия?
В обоих случаях, мы будем иметь примерно одинаковый состав файлов. Там будут функции, классы и.т.д. которые написаны на языке программирования.
Чтобы понять, в чем здесь разница, нужно разобраться в причине, для чего создавалось каждое из этих определений.
Библиотека в программировании — это дополнительные возможности, которые нужны нашему приложению. Это независимая программа, которую мы можем подключать к нашему приложению как независимый модуль.
Это могут быть возможности: работа с датой, email, прием платежей, работа с базой данных и.т.д.
Готовый дополнительный функционал нашему приложению мы можем добавить через библиотеки. См. подробнее в видео.
Мы могли бы написать функции и классы, которые есть в библиотеке самостоятельно, но т.к. есть уже готовые решения, глупо ими не воспользоваться.
Библиотек в проекте может использоваться много. Мы можем подключать разные независимые библиотеки, каждая из которых будет давать нам возможности.
Понятие фреймворка связано с понятием библиотеки. Но, нужно понимать, что фреймворк для нашего проекта будет являться одним.
Что такое фреймворк? С англ. языка это «основа», «каркас», «конструкция».
Фреймворк, как и библиотека предлагает нам набор готовых функций и возможностей, которые помогают нам разрабатывать приложение. Главное отличие в том, что фреймворк — это «скелет», граница или каркас, на котором строится веб-приложение. Это базовый набор функций и приложений, на которых мы будем строить приложение.
Фреймворк дает набор функций, чтобы легче строить наше приложение.
Фреймворк создает архитектуру проекта, на основе которой мы будем его развивать.
Библиотек может быть много, а фреймворк один.
Для каждого языка программирования (технологии) написаны много разных фреймворков, которые мы можем использовать.
Подробные примеры см. в видео.
Дмитрий Ченгаев
Занимаюсь заказной веб-разработкой. Подписывайтесь на телеграм канал https://t.me/dchengaev 😉
2020-12-06
Чтобы оставить сообщение, зарегистрируйтесь/войдите на сайт через:
Что такое framework и библиотека в программировании
Статья написана программистами для самых обычных людей. Возможно, некоторые вещи будут упущены для четких разграничений терминов и лучшего усвоения материала.
Начнем с простого…
Что такое Библиотека
Библиотека – это набор функций или даже всего одна функция, которая помогает программисту решить поставленную задачу за короткое время и может быть легко интегрирована в любую программу.
Давайте учиться на примерах….
Допустим, у нас стоит цель написать функцию, которая будет получать данные с другого сайта и что-то с ними делать. Наша цель написать отказоустойчивую функцию, которая в случае сбоев на сервере (при долгом ожидании) не развалит наше приложение.
Реализация примерно подобного функционала с помощью классических методов языка программирования JavaScript обойдется нам в 30-40 строк кода:
А если мы воспользуемся готовой библиотекой, которая уже соответствует нашим требованиям (да и многим другим), наш код будет выглядеть как-то так:
Как видите, наш код сократился в 3 раза (потому что мы подключили чужой код через import, который выполняет нашу задачу). В работе программиста очень часто приходится набирать какой-то текст или код в огромном количестве, поэтому использовать 3-4 библиотеки в одном проекте, чтобы освободить время и заняться другими задачами, это нормально.
Использование библиотек это не признак лени. Просто при разработке приложения перед программистом стоит масса задач: сделать интерфейс, разработать серверную часть, разработать модули для взаимодействия интерфейса и сервера и.т.д. Поэтому сокращать написание кода можно и нужно библиотеками, иначе разработка будет идти не 1 месяц, а 2, и интернет-магазин будет стоит не 100.000 рублей, а 300.000 рублей.
Что такое Framework
Framework – это инструмент для быстрой разработки, предлагающий готовую архитектуру, и внутри которого могут быть объединены несколько библиотек.
Архитектура – довольно непонятный термин в данном контексте, да? В нашем случае в этом слове кроется примерно такой смысл: набор готовой логики и алгоритмов. Программисту нужно писать только бизнес-логику. А бизнес-логика – это какие-то конкретные участки программы присущие конкретному бизнесу/программе.
Давайте учиться на примерах….
Есть задача разработать реактивный сайт (если не знаете что это, читайте по ссылке нашу статью), который будет легко масштабироваться и обслуживаться.
Естественно, программировать в “реактивном” стиле очень и очень сложно. Многие программисты за всю жизнь не смогут реализовать самостоятельно сложную и масштабируемую архитектуру с помощью реактивной парадигмы программирования (ссылка на википедию). Поэтому есть смысл использовать готовый framework, вместо того чтобы голову сложить во время обучения данной премудрости.
Поэтому, программист берёт готовую логику (архитектуру) и на ее основе разрабатывает приложение. Программист пишет только бизнес-логику: калькуляцию каких-то данных, запросы на сервер и т.д.
Бизнес логика – это такой код, который присущ конкретному бизнесу (для которого создается сайт). Т.е этот код невозможно перенести из проекта в проект.
Чем отличаются друг от друга Framework и Библиотека
Давайте подведем итог.
Библиотека – это набор кода, который решает какую-либо задачу. Библиотеки можно переносить из проекта в проект (как плагины), и они будут отлично работать в других проектах. Когда мы запускаем наш код, он вызывает библиотеки. Т.е библиотека это некое дополнение к нашему коду.
Framework – это некий инструмент, для быстрой разработки чего либо, который в себе содержит (а может и не содержать) набор библиотек и какую-то логику с алгоритмами. Фреймворк принуждает разработчика работать в определенном стиле, подчиняясь конкретной логике. Когда мы запускаем программу написанную на каком-либо фреймворке, мы, в первую очередь, запускаем сам фреймворк, который вызывает наш код (бизнес-логику). Т.е наш код это некое дополнение к фреймворку.