Что такое фреймворк простыми словами

Что такое фреймворк простыми словами

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

Фреймворки

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

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

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

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

  • Bootstrap — созда­ние сай­тов с адап­тив­ной вёрст­кой. Мож­но рисо­вать кра­си­вые кноп­ки, вер­стать текст во мно­го коло­нок, включать-выключать бло­ки в зави­си­мо­сти от шири­ны экра­на, делать выпа­да­ю­щие меню и мно­гое дру­гое
  • Vue.js — обес­пе­чи­ва­ет еди­но­об­ра­зие ком­по­нен­тов и модуль­ный под­ход к раз­ра­бот­ке. Мож­но созда­вать соб­ствен­ные стро­и­тель­ные бло­ки для стра­ни­цы, делать шаб­ло­ны
  • Angular.JS — JavaScript фрейм­ворк от Google для дина­ми­че­ских веб-приложений, похож на Vue
  • django — фрейм­ворк для Python, наце­лен­ный на ско­рость: гото­вые ком­по­нен­ты для баз дан­ных, рисо­ва­ния стра­ниц, адми­нок, окон вхо­да на сайт, шаб­ло­нов и мно­же­ства дру­гих вещей
  • Ruby on Rails — тоже силь­но уско­ря­ет раз­ра­бот­ку сай­тов

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

Библиотеки

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

Читайте также:  Кухонные ножи трамонтина отзывы

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

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

  • TensorFlow для Python, кото­рая погру­жа­ет вас в мир иску­ствен­но­го интел­лек­та
  • Almanac Converter — для про­стой рабо­ты с дата­ми и вре­ме­нем
  • WebKit — попу­ляр­ней­шая биб­лио­те­ка для рабо­ты с веб-страницами
  • Scribe Java — про­стая биб­лио­те­ка для авто­ри­за­ции поль­зо­ва­те­лей

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

Что теперь

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

На самом деле все намного проще, чем могло многим показаться, но для порядку я начну по порядку…. Фреймворк это программная платформа облегчающая разработку и объединяющая разные компоненты большого программного проекта. Ну а если более понятным языком, это набор шаблонов, инструментов, которые в разы повышают скорость разработки за счет заранее подготовленного и проверенного кода. Фреймворков огромное количество, но как всегда есть определенные лидеры, так же вы сами можете написать свой фреймворк. Как вы уже догадались они бывают разные не только в плане того кто их написал, а конкретно в плане языка, например существуют фреймворки по языкам html/css и отдельно фреймворки на php и на многих других языках.

Давайте разберем на примере их пременения, предположим вы решили сделать сайт, первым делом вы начинаете делать верстку сайта, вы можете прописать модульную сетку сами вручную, а можете взять уже готовую под свой проект из фреймворка, это значительно сократит ваше время ведь, по сути, каждый раз делая новый сайт, вы делаете одну и ту же работу, ну а если вы занимаетесь этим постоянно, то 99 из 100 что у вас есть уже заготовленные вами же шаблоны или вы уже используете фреймворк. Я думаю тут наглядно раскрыта суть, то же самое если вы пишите движок сайта и компоненты, которые вы постоянно используете вы можете взять из фреймворка на php.

Читайте также:  Лучший процессор со встроенной графикой

В чем же основные достоинства?

Их много и я опишу лишь основные. В первую очередь это скорость выполнения проекта, она в разы вырастает, когда вы пользуетесь уже готовым решением. Стандартизация это очень важный момент, все качественные фремворки выполнены по всем современным стандартам и соответственно валидность кода, в случае с версткой кроссбраузерность, и т.д., это все заложено и вы на выходе получаете качественный профессиональный и проверенный код, которому можно доверять, это очень важно особенно в фрейворках на сложных языках программирования, за счет этого создается структура благодаря которой любой программист сможет быстро разобраться в чужом коде не тратя кучу времени впустую, для примера на языке php программирования это паттерн MVC, и все качественные фреймворки его придерживаются.

Несмотря на многообразие и распространенность в каждой области есть свои безусловные лидеры, и они не зря заслуживают свое внимание, если конкретно разговаривать о создании сайтов, то я отдал свой приоритет фреймворкам Bootstrap и Yii2, первый для front-end разработки на html, CSS, JS, а второй php фреймворк, я не утверждаю что они лучшие, но по моему скромному мнению они именно то, что надо.

Кому нужны фреймворки?

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

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

Дата публикации:2018-03-28

Буду очень признателен, если вы поделитесь ссылкой на страницу со своими друзьями в социальных сетях.
Если у вас возникнут вопросы по теме пишите, надеюсь у вас все получиться, удачи вам и всего наилучшего!

Для улучшения этой статьи желательно ? :

  • Найти и оформить в виде сносок ссылки на авторитетные источники, подтверждающие написанное.

ColdSpring • Fusebox • Mach-II • Model-Glue

Apache (Cocoon • Struts • Velocity • WebWork 2) • AppFuse • Aranea • Eclipse • Facelets • Flexive • FreeMarker • Google Web Toolkit • Grails • Hamlets • ItsNat • JavaServer Faces • Jspx • JBoss Seam • jZeno • Makumba • OpenLaszlo • OpenXava • Reasonable Server Faces (RSF) • Restlet • RichFaces • RIFE • Shale • SmartClient • Spring • Stripes • Tapestry • ThinWire • Vaadin • WebMacro • WebWork • WebObjects • Wicket • ZK

Читайте также:  Чем отличается игровой монитор от неигрового

Catalyst • Interchange • Titanium • Maypole • HTML:Mason

Acode • Akelos • BlueShoes • CakePHP • Canvas • CodeIgniter • DIY • Drupal • Fuse • Horde • Kohana • LiveStreet • PHP For Applications • PHPOpenbiz • PRADO • Qcodo • Seagull • Solar • Symfony • W3Core • Yii • Zend • Zoop • Joomla

Camping • Nitro • IOWA • Ramaze • Cerise • Merb • Ruby on Rails • Sinatra • Padrino

Прочие
языки

Wikimedia Foundation . 2010 .

Смотреть что такое "Фреймворк" в других словарях:

Ext (фреймворк) — Ext JS Тип JavaScript библиотека Разработчик Jack Slocum, Brian Moeskau, Aaron Conran, Rich Waters Версия 3.1.0 (16 декабря, 2009 г.) Лицензия GPLv3 и коммерческая … Википедия

Мультимедийный фреймворк — (англ. multimedia framework) фреймворк для работы с аудио и видеоданными. Обычно, состоит из системы плагинов (кодеков, фильтров, (де)мультиплексаторов, вывода на экран, работы с файлами и т.п.), которые можно соединить в граф для… … Википедия

Prototype (фреймворк) — У этого термина существуют и другие значения, см. Прототип. Prototype JavaScript Framework Тип JavaScript библиотека Разработчик Prototype Core Team Операционная система … Википедия

Lift (фреймворк) — У этого термина существуют и другие значения, см. Lift. Lift Тип Фреймворк для разработки веб приложений Разработчик Группа под руководством Дэвида Полака Написана на Scala … Википедия

CSS-фреймворк — CSS Framework фреймворк, созданный для упрощения работы верстальщика, быстроты разработки и исключения максимально возможного числа ошибок вёрстки (проблемы совместимости различных версий браузеров и т. д.). Как и библиотеки… … Википедия

Spring Framework — У этого термина существуют и другие значения, см. Spring. Spring Framework Тип Application framework Разработчик SpringSource Написана на … Википедия

CodeIgniter — Тип Программный каркас для создания веб приложений Разработчик EllisLab, Inc. Операционная система Кроссплатформенный Последняя версия 2.1.3 (8 октября … Википедия

Apache Felix — Apache Felix … Википедия

Content Management Framework — (CMF) это каркас (фреймворк программной системы) для проектирования систем управления контентом. На их основе создаются системы управления содержимым (CMS), а также веб приложения. Содержание 1 Преимущества 2 Архитектура … Википедия

JavaScript — Не следует путать с Java. JavaScript Класс языка: мультипарадигменный … Википедия

Ссылка на основную публикацию
Adblock detector