Языки программирования и фреймворки

Начинающим программистам: что такое фреймворки и библиотеки

Когда чело­век начи­на­ет про­грам­ми­ро­вать, он узна­ёт про фрейм­вор­ки и биб­лио­те­ки. Попро­бу­ем на доступ­ных при­ме­рах объ­яс­нить, что это такое и чем они полез­ны. Будем исполь­зо­вать ана­ло­гию с построй­кой дома. Это несколь­ко упро­ща­ет реаль­ное поло­же­ние вещей, зато помо­га­ет понять разницу.

Фреймворки

Пред­ставь­те: вам нуж­но постро­ить дом. Мож­но выбрать гото­вый типо­вой про­ект и немно­го поиг­рать с пла­ни­ров­кой, пока архи­тек­тор не про­тив и вы не тро­га­е­те капи­таль­ные сте­ны. А мож­но нари­со­вать план само­му и полу­чить имен­но тот дом, кото­рый хоти­те — даже если вы хоти­те цилин­дри­че­ский дом со вхо­дом на вто­ром этаже.

Раз­ни­ца в том, что в типо­вом про­ек­те уже всё про­ду­ма­но: опти­маль­ное рас­по­ло­же­ние ком­му­ни­ка­ций, теп­ло­изо­ля­ция стен, спо­со­бы залив­ки фун­да­мен­та, и еще мил­ли­он вещей, кото­рые со сто­ро­ны не вид­ны. Вы полу­ча­е­те тёп­лый и уют­ный дом, но в рам­ках гото­во­го проекта.

Так же рабо­та­ет фрейм­ворк. Вы исполь­зу­е­те гото­вый шаб­лон и напол­ня­е­те его сво­им кодом. Вы теря­е­те в гиб­ко­сти, зато про­грам­ма рабо­та­ет ста­биль­но: всё основ­ное фрейм­ворк берёт на себя. Под капо­том фрейм­вор­ка мил­ли­он нюан­сов: напри­мер, рабо­та с фай­ло­вой систе­мой и база­ми дан­ных, обра­бот­ка оши­бок, защи­та паролем.

Без фрейм­вор­ка вам нуж­но будет обо всём думать само­сто­я­тель­но. Это даёт боль­ше сво­бо­ды, но и боль­ше ответ­ствен­но­сти. Если кри­во реа­ли­зо­ва­на авто­ри­за­ция в базу дан­ных, через эту кри­виз­ну код смо­гут взло­мать. Если не напи­са­ли обра­бот­ку оши­бок, про­грам­ма может не рабо­тать. На язы­ке стро­и­тель­ства это экви­ва­лент дома без кана­ли­за­ции или когда в сте­нах не преду­смот­ре­ли дыр­ки под розетки.

Вывод: фрейм­ворк даёт ста­биль­ность и удоб­ство раз­ра­бот­ки, но огра­ни­чи­ва­ет про­грам­ми­ста сво­ей архитектурой.

Библиотеки

Про­дол­жа­ем стро­и­тель­ную ана­ло­гию. Допу­стим, с домом вы опре­де­ли­лись, но в нём теперь нуж­но сде­лать ремонт и про­ве­сти элек­три­ку. Это мож­но сде­лать с помо­щью молот­ка, отвёрт­ки, руч­ной дре­ли и зуби­ла, а мож­но взять спе­ци­аль­ные инстру­мен­ты — бол­гар­ку, пер­фо­ра­тор и шуру­по­вёрт. Спе­цин­стру­мен­ты — это и есть биб­лио­те­ки. С ними зада­ча реша­ет­ся быст­рее, но что­бы ими поль­зо­вать­ся, нуж­но уме­ние. Если зада­ча про­стая и с ней дей­стви­тель­но мож­но спра­вить­ся толь­ко с молот­ком и отвёрт­кой — отлич­но, тогда нам не нуж­ны биб­лио­те­ки и доста­точ­но встро­ен­ных средств язы­ка программирования.

Если рас­ши­рить при­мер, то с помо­щью спе­цин­стру­мен­та мож­но даже постро­ить дом: бето­но­ме­шал­ка вме­сто вед­ра с лопа­той, кран вме­сто руч­ной раз­груз­ки и так далее. Полу­ча­ет­ся, что напи­сать про­грам­му мож­но с помо­щью фрейм­вор­ка, а мож­но с помо­щью биб­лио­те­ки. Биб­лио­те­ка тоже сле­дит за тем, что­бы вы сде­ла­ли как мож­но мень­ше оши­бок, но нуж­но чёт­ко знать все коман­ды и пра­ви­ла. В ито­ге вы пол­но­стью кон­тро­ли­ру­е­те про­цесс, но упро­ща­е­те себе жизнь, исполь­зуя уже гото­вые библиотеки.

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

Мы сами реша­ем, как и когда вызы­вать биб­лио­теч­ные функ­ции и что с ними делать. Биб­лио­те­ка — это про­сто набор зара­нее опре­де­лён­ных функ­ций, из кото­рых, как из кир­пи­чи­ков, мож­но скла­ды­вать то, что нам нуж­но. Ещё одно инте­рес­ное свой­ство: внут­ри фрейм­вор­ка мож­но исполь­зо­вать дру­гие биб­лио­те­ки. Напри­мер, если вам нужен адап­тив­ный сайт и удоб­ная рабо­та с фор­ма­ми — исполь­зуй­те Bootstrap для адап­ти­ва как фрейм­ворк и под­клю­чи­те к нему биб­лио­те­ку jQuery.

Что теперь

В одной из буду­щих ста­тей потре­ни­ру­ем­ся на биб­лио­те­ках и фрейм­вор­ках. Не пере­клю­чай­тесь и до скорого!

Источник

Начинающим программистам: что такое фреймворки и библиотеки

Разбираемся в двух ключевых инструментах профессиональных разработчиков: нужны ли они вам и как ими пользоваться

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

Фреймворки

Представьте: вам нужно построить дом. Можно выбрать готовый типовой проект и немного поиграть с планировкой, пока архитектор не против и вы не трогаете капитальные стены. А можно нарисовать план самому и получить именно тот дом, который хотите — даже если вы хотите цилиндрический дом со входом на втором этаже.

Разница в том, что в типовом проекте уже всё продумано: оптимальное расположение коммуникаций, теплоизоляция стен, способы заливки фундамента, и еще миллион вещей, которые со стороны не видны. Вы получаете тёплый и уютный дом, но в рамках готового проекта.

Так же работает фреймворк. Вы используете готовый шаблон и наполняете его своим кодом. Вы теряете в гибкости, зато программа работает стабильно: всё основное фреймворк берёт на себя. Под капотом фреймворка миллион нюансов: например, работа с файловой системой и базами данных, обработка ошибок, защита паролем.

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

Вывод: фреймворк даёт стабильность и удобство разработки, но ограничивает программиста своей архитектурой.

Библиотеки

Продолжаем строительную аналогию. Допустим, с домом вы определились, но в нём теперь нужно сделать ремонт и провести электрику. Это можно сделать с помощью молотка, отвёртки, ручной дрели и зубила, а можно взять специальные инструменты — болгарку, перфоратор и шуруповёрт. Специнструменты — это и есть библиотеки. С ними задача решается быстрее, но чтобы ими пользоваться, нужно умение. Если задача простая и с ней действительно можно справиться только с молотком и отвёрткой — отлично, тогда нам не нужны библиотеки и достаточно встроенных средств языка программирования.

Если расширить пример, то с помощью специнструмента можно даже построить дом: бетономешалка вместо ведра с лопатой, кран вместо ручной разгрузки и так далее. Получается, что написать программу можно с помощью фреймворка, а можно с помощью библиотеки. Библиотека тоже следит за тем, чтобы вы сделали как можно меньше ошибок, но нужно чётко знать все команды и правила. В итоге вы полностью контролируете процесс, но упрощаете себе жизнь, используя уже готовые библиотеки.

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

Мы сами решаем, как и когда вызывать библиотечные функции и что с ними делать. Библиотека — это просто набор заранее определённых функций, из которых, как из кирпичиков, можно складывать то, что нам нужно. Ещё одно интересное свойство: внутри фреймворка можно использовать другие библиотеки. Например, если вам нужен адаптивный сайт и удобная работа с формами — используйте Bootstrap для адаптива как фреймворк и подключите к нему библиотеку jQuery.

Что теперь

В одной из будущих статей потренируемся на библиотеках и фреймворках. Не переключайтесь и до скорого!

Знаете другие удачные аналогии? Делитесь в комментариях!

Источник

Чем язык программирования отличается от фреймворка?

Получается, что дело исключительно в том, что фреймворк более высокоуровневая сущнсть и все?

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

Например взять к примеру Машинный язык, по сути почти все языки программирования в конечном итоге работают с ним. То есть все языки программирования можно назвать фреймворками если мыслить глобально.

JS например является своего рода машинным кодом для браузеров, а jq фреймворком, который строится на базе JS. Но по сути jq полностью может заменить js. Также как и C может заменить Assebler теряя в производительность.

Отсюда можно заключить, что разницей между фреймворком и языком программирования является отсутствием у первого процессов транслирвоания (ну и других процессов, зависит от языка программирования). Как я это понимаю, хотя может понимаю и неверно 🙂

Фреймворк ( англ. «строительные леса», «каркас») относится к языку программирования как архитектура высотного здания относится к железобетону.

Написать фреймворк значит решить задачу следующего характера:

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

У меня преподавательница в университете слово употребляла правильное: «ортогонально».
Представьте себе многомерную ортогональную структуру..
Если строить ПО ортогонально оно станет фреймворком.

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

Библиотека же по сути не является фреймворком. Библиотека – это реализация. А фреймворк — это шаблон, набор интерфейсов, тонкая прослойка, организующих подход к разработке (который может в свою очередь использовать библиотеки)

Но принципиальная идея фреймворка содержится (на мой взгляд) даже в элементарной функции: Не нужно знать как она работает, передал параметры такие – получил результат такой, передал другие парамаетры, и результат поменялся.

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

Источник

Оцените статью
( Пока оценок нет )
Поделиться с друзьями
Uchenik.top - научные работы и подготовка
0 0 голоса
Article Rating
Подписаться
Уведомить о
guest
0 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии