Плагины и библиотеки
1. Введение
JavaScript существует уже более 20 лет и это один из тех языков, которые никогда не перестают развиваться. Язык имеет собственную экосистему библиотек, фреймворков, инструментов, менеджеров пакетов и новых языков, которые компилируются в JavaScript.
Термины фреймворк
, библиотека
и инструмент
могут означать разные вещи в зависимости от контекста. Грань между ними довольно смутная. Фреймворк может содержать в себе библиотеку. Библиотека может реализовывать фреймворко-подобные методы. Инструменты могут быть неотъемлемой частью обоих. Дадим общие определения.
2. Библиотека
Библиотека — это структурированный набор полезного функционала: функций, объектов или классов, которые вы можете использовать в своем приложении. Библиотека абстрагирует различные слои, так что вам не нужно беспокоиться об их деталях реализации. Библиотека сокращает время разработки, позволяя вам не беспокоиться о мелочах.
Библиотека может содержать функции для работы со строками, датами, DOM-элементами, событиями, анимацией, HTTP-запросами и многим другим. Каждая функция может возвращать значения вызывающему ее коду, который может в дальнейшем использовать их в зависимости от логики разработчика.
Это можно сравнить с подбором запчастей для автомобиля: вы свободны в выборе любого варианта с которым машина будет работать, но логика целиком на вашей совести.
Отрицательные стороны:
Баг в реализации библиотеки может вызвать сложности в его нахождении и исправлении.
Нет гарантии, что команда разработчиков оперативно выпустит патч.
Патч может изменить API, что повлечет за собой значительные изменения в вашем коде.
3. Фреймворк
Фреймворк — это каркас (скелет) приложения. Он обязывает разработчика строить архитектуру приложения в соответствии с некоторой логикой, а так же предоставляет некоторый интерфейс для взаимодействия с собой. Фреймворк обычно предоставляет функционал вроде событий, хранилищ и связывания данных, шаблониацию и другие.
По аналогии с машиной, фреймворк предоставляет готовые рамы, корпус и двигатель. Вы можете добавлять, удалять или заменять некоторые детали, при этом предполагая, что автомобиль останется в рабочем состоянии.
Фреймворк находится на более высоком уровне абстракции по сравнению с библиотекой и позволит вам без труда выстроить большую часть приложения.
Разница между фреймворком и библиотекой заключается в том, что библиотеку вы используете в своем коде, а в случае с фреймворком, вы пишете свой код в архитектурных конструкциях фреймворка.
Его минусы:
Фреймворк может накладывать ограничения, поэтому могут быть трудности с внедрением функционала.
Большая экосистема пакетов может сбивать с толку и требует времени на изучение.
4. Инструмент
Инструмент — это вспомогательное средство разработки, но он не является неотъемлемой частью проекта. Инструменты включают в себя системы сборки, линтеры, компиляторы, транспайлеры, системы развертывания и другое.
Инструменты призваны облегчать процесс разработки. Например Babel
, который предоставляет возможность преобразования современного, удобного в написании JavaScript в более старый стандарт, который может обработать большинство браузеров.
Last updated