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

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

 

2. - Картинка - библиотека

 

Что такое «Библиотека»

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

Это программы, которые находятся под контролем программиста. Например, примерами подобных библиотек могут служить:

  • JQuery (JavaScript);
  • Curl (PHP);
  • Redux.

Код из набора другого «кодера» берут и используют в любом виде. Например, есть библиотека Util Java, а в этом наборе метод «reverse». Он помогает обратиться к любой строке в коде. Программисту не нужно объявлять переменные, запустить цикл для обращения строки. Достаточно прописать «sb.reverse()».

Преимущества:

  • Библиотеки находятся под контролем программиста на 100 процентов.
  • Для маленьких приложений не нужно использовать несколько наборов решений, достаточно только одной библиотеки.
  • Расширяет кругозор технических инструментов, прокачивает уровень знаний программиста, если использовать большое количество наборов решений.

Недостатки:

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

Поэтому опытный программист выбирает фреймворки.

 

4. - Картинка - фреймворк

 

Что такое фреймворки 

Фреймворк – это площадка для программы. Они облегчают разработку и объединение разных элементов кода одного большого проекта. Теперь программисту не нужно сидеть и прописывать код, сравнивать, подойдет он или нет. 

Самые популярные фреймы: 

  • Node.js; 

  • Angular.JS. 

По сути, это скелет для набора кодов, на который программист наращивает «мясо». Фреймворк самостоятельно решает проблемы. В этом и заключается проблема: он говорит программисту, что нужно, исключается свобода творчества. 

Преимущества: 

  • легче обучить товарищей, если работа над проектом идет в команде. Так как изучать приходится только один компонент, а не несколько; 

  • не нужно сравнивать различные объекты. Фрейм подскажет программисту, который нужен именно для этого скелета; 

  • не нужно сосредотачиваться на составлении кода, путь для развития проекта освобождается. 

Недостатки: 

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

  • нельзя создать простые приложения. Масштабируемая архитектура решает многие проблемы, но слишком сложная инфраструктура только усложняет задачу маленького проекта; 

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

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

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

Готовы сотрудничать?