Какова суть фреймворков и библиотек?

Здравствуйте, ребята. Прошу помочь мне разобраться в следующем вопросе. Дело всё в том, что я никак не могу чётко определить, что такое фреймворки и библиотеки. И мои вопросы примерно следующие...
1) Фреймворк - это инструмент для грамотной разбивки кода. А в чём ещё его суть? ... В чём ещё они отличаются между собой? Есть ли разница между ними по возможностям/задачам? К примеру, один фреймворк лучше помогает разработчикам, которые пишут сайты, где есть необходимость дописывать функции для карты(к примеру google map) и т.д.
2) Можно ли на одном сайте использовать два фреймворка? К примеру, есть js фреймворк (vue), а есть php фрейморк (YII) Если нельзя, то как понять, что выбирать?
3) Правильно ли сравнивать фреймворки и библиотеки, или каждый фреймврорк имеет свою библиотеку?
4) Что посоветуйте использовать, если мне нужно написать свои функции для карты? И какую карту, кроме google map(поскольку она уже платная и достаточно дорогая), вы можете посоветовать взять для дальнейшего написания своих функции?
P.S. Я прекрасно понимаю, что для начала нужно хорошо овладеть js. Нет конечно понимания, какие именно темы(понятное дело, что чем больше тем лучше) , но всё таки) ... Что после чистого js изучать? Надеюсь на вашу помощь!
  • Вопрос задан
  • 1960 просмотров
Пригласить эксперта
Ответы на вопрос 5
Stalker_RED
@Stalker_RED
Библиотека это инструмент или набор каких-то инструментов.
Бибилиотека для скачивания видео с ютуба
Бибилиотека для кропа и ресайза картинок
Бибилиотека для определения города по IP

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

"набор для постройки скворечника"
В комплекте молоток, гвозди, столярный клей, 20 деревянных досточек разных форм и расцветок и инструкция с тремая вариантами скворечника на выбор.

Или вот два фреймворка:
Ezva9I.pngzC6ZHT.png
Можно ли их использовать вместе? (Конечно, никто не запрещает)
Можно ли из этих деталей построить что-то совсем другое, не такое как в инструкции? (Конечно да)
Можно ли с этими фреймворками использовать детали еще и из этого?
lGjE1A.png
(конечно можно, но придется что-то придумать для совместимости деталек. Быть может придется применить клей, изоленту, пластилин или жвачку. Или шуруповерт, или сварочный аппарат. Но ни в один комплект эти дополнительные инструменты не входят, как и скиллы к ним.)

Можете посмотреть еще сюда, этот ответ частично покрывает ваш вопрос:
Для чего нужны фреймворки, а-ля Laravel?
Ответ написан
Комментировать
@stratosmi
1) Фреймворк, как правило, рекомендует (а некоторые и навязывают) определенную организацию структуры кода, да. За это он тебе тоже кое-что дает - берет на себя типовую работу, что повторяется из проекта в проект, зачем ее делать каждый раз заново.

Да, функционал их разный. От минималистичного до всеобъемлющего.

Вполне можно использовать на одном сайте фрейморк CSS для верстки, фреймворк JS для динамики, фреймворк для бекенда. Если фреймворк для CSS и фреймворк для JS еще, возможно, и могут мешать друг другу (но как правило не мешают), то фреймворк для бэкенда функционирует на сервере как вообще независимая от CSS/JS вещь (CSS/JS фунционируют в браузере, а не на сервере).

2) Да. Если они специализированы на разных проблемах (Zurb Foundation для CSS и Vue.js для JS и Yii для PHP, например).

Но если они занимаются сходными вещами (например, React и Vue) то целесообразность такого применения непонятна. Более того - они запросто могут мешать друг другу. Нужно смотреть по ситуации.

3) Библиотеки - весьма конкретно-местный инструмент. Потому более независимы от проекта.
Фреймворки же нацелены на большую автоматизацию решения ваших проблем в какой-то конкретной ситуации, а вас от них более зависимыми (что не плохо, учитывая приносимую фреймворками пользу, просто нужно учитывать).

То что фреймворки используют библиотеки - не позволяет нам делать никаких дополнительных выводов.
Все используют библиотеки, это норма.

4) Штатные API выбранного сервиса карт (Yandex Maps, 2GIS Maps, OpenStreet Maps и пр.). Эти API реализованы в виде библиотек. Фреймворки тут вообще не при делах.

P.S.:
2GIS специализированный сервис:
В 2GIS очень хорошо представлены предприятия\фирмы\организации (в городах, где 2GIS присутствует), лучше прочих. Между городами 2GIS нет в принципе.
Ответ написан
Комментировать
sHinE
@sHinE
веб-разработчик, php/js/mysql и сопутствующее
Про отличие фреймворка и библиотеки видел такую фразу и она мне понравилась:
Библиотеку ты вызываешь из своего кода, а фреймворк наоборот вызывает твой код.
Ответ написан
Комментировать
werevolff
@werevolff
1. Фрэймворк - это каркас приложения. Библиотека - это готовый код. Фрэймворк предоставляет разработчику архитектуру, на которой выстраивается приложение. Библиотека не предоставляет архитектуры. Ты вызываешь её, чтобы получить результат в отдельной части своего приложения.
2. Можно использовать несколько фрэймворков. Каждый фрэймворк отвечает за своё приложение или свою часть проекта. Например, можно сделать админку сайта на Angular.js а клиентскую часть - на React. Можно одну страницу сделать на React.js, вторую - на vue.js. одну и ту же часть проекта на разных фрэймворках делать не получится. Какой выбрать - вопрос опыта. Пока не начнёшь писать - не поймёшь.
3. Некоторые библиотеки могут заменить фрэймворки, имея полный набор абстракций доя решения задачи. Можно ли сравнивать библиотеки и фрэймворки? Это зависит от параметров сравнения. Если можешь обосновать что ты сравниваешь, то не вижу проблем. Но, для обоснования надо иметь опыт работы и решения прикладных задач.
4. Ничего не могу посоветовать: выбор библиотеки или фрэймворка - это ответственность разработчика. Если разработчик с этим вопросом идёт на тостер, то дешевле посоветовать другого разработчика.
P.S. Не стоит зацикливаться на ванильном JS. Стоит выбрать фрэймворк и работать с ним. Понимание придёт с опытом.
Ответ написан
Комментировать
customtema
@customtema
arint.ru
В программировании есть хороший подход, как Dont Repeat Yourself. Бессмысленно каждый раз изобретать велосипеды - имеющиеся модули складывают в библиотеки и используют повторно.

Наборы библиотек называют фреймворками. Фреймворки, как правило, специализированные - каждый под свою задачу. От QT и GTK, до YII2 и ThreeJS.

Набор библиотек, фреймворки, стараются оформлять в едином стиле. Зачастую фреймворк несет определенный Style Guide, рекомендации по окружению, архитектуру и другие решения. Просто что-то готовое, что не надо изобретать, но можно взять и использовать в какой-то момент.

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

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


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

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
18 апр. 2024, в 21:56
2000 руб./за проект
18 апр. 2024, в 21:00
150 руб./за проект