Что такое фреймворк в программировании
Фреймворк — важный инструмент программиста. Обзор HTML/CSS, PHP и Python-фреймворков
Статья посвящена одному из важных инструментов программиста — фреймворкам, которые делают разработку сайта более быстрой. Вы узнаете об особенностях фреймворков, их возможностях, назначении.
Фреймворк: что это?
Рассмотрим слово «фреймворк«, которое является действительно новым неологизмом, не так давно появившимся в нашем языке. Слово начали использовать примерно в первой половине XXI века. Если рассматривать перевод слова с английского — это «конструкция» или «структура».
Суть фреймворка заключается как раз в переводе слова. Это программная среда специального назначения, своеобразный каркас, используемый для того, чтобы существенно облегчить процесс объединения определенных компонентов при создании программ. Это основа, которая позволяет добавлять компоненты в зависимости от потребностей. База, на которой можно сформировать программу любого назначения достаточно быстро и без особых затруднений.
Если сравнивать динамическую библиотеку (DLL), которая отличается весьма ограниченным функционалом, и фреймворк, считающийся основой программ — можно выделить существенное преимущество фреймворков. Именно фреймворк является связующим звеном, которое объединяет все используемые программные компоненты. Также внутри фреймворка зачастую есть необходимые тематические библиотеки.
Классификация фреймворков:
- Фреймворки приложений;
- Фреймворки программных моделей;
- Фреймворки концептуальных моделей.
Наша статья рассмотрит фреймворки, используем ые для разработки современных веб-проектов и принадлежит второму пункту в классификации.
Сравниваем CMS, чистый код и фреймворк
Если у программиста стоит задача создать сайт, ему необходимо сразу же определить дальнейшую стратегию работы. Есть три пути разработки, каждый программист может выбрать тот, который больше всего подходит под его умения.
- Можно написать требуемый исходный код с нуля. Главным преимуществом этого варианта, явл яется его вариативность — практически никаких ограничений, можно реализовать любой задуманный функционал, потребуются лишь определенные умения. Главным минусом можно назвать трудоемкость процесса, временные затраты. Также придется приложить очень много усилий для тщательного тестирования полученного продукта — придется найти все его изъяны, чтобы создать идеальный веб-проект.
Использование фреймворков. Существуют определенные ограничения, если проводить параллели с предыдущим способом. Существует основа, в которую нужно добавить определенное количество требуемых компонентов. Данный вариант является рентабельным только для тех, кто хоть немного разбирается в программировании — без определенного количества знаний выполнить поставленную задачу правильно практически невозможно. Для людей, которые не могут воспользоваться представленными способами, есть альтернативный вариант.
Использование готовой CMS. Данный вариант является идеальным для людей, которые мало понимают в сегменте веб-разработки. Вы сможете оперативно создать сайт, соответствующий вашим требованиям. Есть возможность вносить необходимые коррективы через административную панель. Но данный подход не пользуется особой популярностью — главным минусом является огромное количество ограничений.
Исходя из сравнительных характеристик, можно понять, что именно фреймворк — «золотая середина» между написанием сложного кода и применением ограниченной по функционалу CMS. Вы получаете уже готовый каркас для своего проекта, при этом не теряя гибкости в плане функционала. Фреймворки разделяют по принадлежности к языку программирования, к которому они относятся.
Рассмотрим фреймворки, их типы, особенности, чтобы помочь каждому, кто захочет воспользоваться данным способом для создания сайта.
HTML/CSS-фреймворки: их главные особенности
Bootstrap — этот фреймворк является невероятно популярным и востребованным, его представили еще в начале 2011 года. Адаптивность (адаптивная верстка) — его главное преимущество. Bootstrap позволяет создавать проекты с невероятно отзывчивым, стильным дизайном — проект будет автоматически подстраиваться, учитывая размер экрана компьютера или мобильного устройства пользователя, просматривающего сайт. К преимуществам относится: большое количество стилей, шаблонов, постраничный дизайн — это существенно облегчает создание сайта.
Bootstrap стал столь популярным из-за огромного количества достоинств, в нем практически отсутствуют недостатки. Это не только HTML/CSS-фреймворк, в Bootstrap также включены плагины и готовые стили JS/Jquery. Знание Bootstrap часто является одним из обязательных требований работодателей.
Официальная страница getbootstrap.com
Semantic UI — используется для создания переносимых интерфейсов. Данный фреймворк можно назвать достаточно молодым, однако стоит отметить его постоянное развитие. В нем можно найти огромное количество кнопок и других элементов, необходимых для работы — изображения, иконки, надписи.
Официальная страница semantic-ui.com
Foundation — данный фреймворк является одним из популярных в сегменте front-end-фреймворков. Последние версии отличаются улучшенным функционалом для современных мобильных устройств. Благодаря семантическому подходу, есть возможность использования SCSS, написания более чистого кода в HTML. Данный фреймворк является идеальным для ситуации, когда нужно быстрое прототипирование.
Официальная страница foundation.zurb.com
Pure by Yahoo! — в данном фреймворке есть несколько небольших CSS-модулей, которые хорошо подойдут для любого современного проекта. Название фреймворка, характеризует его основную особенность — ничего лишнего, только необходимый, ничем не утяжеленный программный каркас, который прекрасно подойдет для создания сайта.
Официальная страница purecss.io
Uikit — фреймворк отличается модульной, легкой структурой. Есть несколько особенностей, которые позволяют ему выделяться на фоне современных фреймворков. Это markdown — возможность предварительно просмотреть страницу сайта в режиме реального времени. Также можно отметить синтаксическую подсветку для HTML.
Официальная страница getuikit.com
PHP-фреймворки: основные особенности
Yii — достаточно «возрастной» фреймворк, который продолжает обновляться в наши дни. Отличается удобным функционалом — кэширование, высокая производительность, полная обработка ошибок, возможность переноса (миграции) существующих баз данных, использование jQuery и другое. Фреймворк Yii отличается своей простотой, можно быстро освоить его основы, нет никаких сложностей в работе и использовании основного функционала. Данный PHP-фреймворк часто советуют людям, которые делают первые шаги в понимании PHP-программирования.
Официальная страница yiiframework.com
CodeIgniter — еще один «возрастной» фреймворк, появившийся в начале 2006 года. Именно тогда состоялся его публичный релиз. Среди основных преимуществ этого фреймворка:
— Хорошая документация;
— Небольшой вес и быстрая установка;
— Простота использования.
Многие используют CodeIgniter в качестве базы для обучения — его простота действительно считается наиболее значимым преимуществом. Постоянно появляются новые версии, каждая из которых отличается большим количеством нововведений, исправленных багов.
Официальная страница codeigniter.com
Symfony — невероятно стабильный, мощный фреймворк, который специалисты рекомендуют применять для созданиях крупных проектов. Значительный функционал, гибкость в настройках — популярность этого фреймворка обусловлена его преимуществами. Присутствует огромное количество полезных, многоразовых компонентов, которые можно использовать для создания большого сайта. Сюда можно отнести шаблоны, настройки форм, безопасность.
Официальная страница symfony.com
Laravel — частый лидер разнообразных опросов и рейтингов, посвященных php-фреймворкам. Проект является действительно многообещающим, получил признание достаточно опытных специалистов. Фреймворк просто освоить, является идеальным вариантом для небольших, а также средних по сложности проектов. Подойдет для быстрого, удобного написания требуемого кода.
Официальная страница laravel.com
Phalcon PHP — отличается открытым кодом (языки программирования C, C++, PHP), поддержкой практически всех современных ОС. Производительность этого фреймворка находится на высоком уровне — это подтверждено множеством специализированных тестирований, и, как следствие, его популярностью. Есть возможность использования на собственном сервере.
Официальная страница phalconphp.com
Python-фреймворки: главные особенности
Flask — отличается минимальным количеством базового функционала, но является расширяемым. В любой момент можно добавить необходимый функционал, учитывая особенности конкретного проекта. Благодаря большому количеству расширений, у вас не возникнет проблем с реализацией собственной задумки. Подходит для начинающих программистов в качестве первого знакомства с phyton-фреймворками.
Официальная страница flask.pocoo.org
Web2py — его основой является концепция RAD(rapid application development) – быстрая разработка приложений. Это позволяет программистам оперативно создавать качественные продукты, при этом не придется затрачивать слишком много сил или времени. Разработчики постарались сделать фреймворк максимально простым и эффективным. Полностью открытый код позволяет создавать любые динамические сайты на языке Python. Фреймворк отличается масштабным функционалом и производительностью.
Официальная страница web2py.com
Django — фреймворк является очень популярным в целом, он лидирует в своем сегменте благодаря простоте и функциональности. Во-первых, для старта не нужны глубокие знания языка программирования Python. А благодаря DRY (Don`t repeat yourself)-принципу написание кода упрощается — вам не придется повторно вписывать строки, которые уже использовались, фреймворк самостоятельно это сделает, при этом код будет лаконичным и эффективным. Наследование шаблонов, а также стандартная структура — основные преимущества этого python-фреймворка. Имеется также система администрирования – CMS Django.
Официальная страница djangoproject.com
TurboGears — «долгожитель» своего сегмента, структура этого фреймворка оставлена из WSGI — компонентов (например, Pylons, CherryPy), позволяющих создавать любые современные проекты. Фреймворк является действительно мощным, отличается приличным функционалом. Есть поддержка разных баз данных, возможность масштабирования, недостатков практически нет.
Официальная страница turbogears.org
Tornado — у него есть главная особенность, которая сказывается на популярности — решение проблемы 10 000 соединений. Благодаря особенностям сервера, этот фрейворк может прекрасно справляться с тысячами одновременных подключений.
Официальная страница tornadoweb.org/en/stable
Итак, мы рассмотрели наиболее популярные HTML/CSS, PHP и Python-фреймворки, которые помогут вам при создании сайтов. Какой из них выбрать — зависит от вашего проекта и необходимых для реализации условий и характеристик фреймворка — выбор за вами. И, конечно, каждый фреймворк требует изучения и практики применения, только в умелых руках, он творит настоящие чудеса!
Веб-фреймворки: введение для новичков
- Переводы, 2 июля 2018 в 15:05
Веб-фреймворки сильно изменили мир программирования и стали неотъемлемой частью процесса разработки. Вы можете попробовать поискать информацию о них на сайтах, в статьях и книгах, но найдёте только общую и неоднозначную информацию — ничего, кроме бесконечных определений и сложных терминов, от которых закипает мозг. Пора наконец разобраться, что из себя представляют веб-фреймворки.
Что такое веб-фреймворк
Веб-фреймворк — инструмент, облегчающий процесс написания и запуска веб-приложения. Вам не нужно самостоятельно писать кучу кода и тратить время на поиск потенциальных просчётов и ошибок.
На рассвете эры веб-разработки все приложения писались вручную, и только разработчик приложения мог изменить или развернуть его. Веб-фреймворки позволили выбраться из этой западни. С 1995 года вся морока, связанная с изменением структуры приложения, была приведена в порядок благодаря появлению общего подхода к разработке веб-приложений. В это время появились языки для веба. Сейчас их разнообразие позволяет выбрать подходящий как для статических, так и для динамических страниц. В зависимости от поставленной задачи, вы можете выбрать один фреймворк, покрывающий все нужды, или совместить несколько.
Типы веб-фреймворков
У фреймворков есть две основные функции: работа на серверной стороне (бэкенд) и работа на клиентской стороне (фронтенд).
Фронтенд-фреймворки связаны с внешней частью приложения. Простыми словами, они отвечают за внешний вид приложения. Бэкенд отвечает за внутренне устройство приложения. Рассмотрим оба типа поподробнее.
Серверные фреймворки. Правила и архитектура таких фреймворков не даёт возможности создать веб-приложение с богатым интерфейсом. Они ограничены в своей функциональности, однако вы всё равно можете создавать простые страницы и разные формы. Также они могут формировать выходные данные и отвечать за безопасность в случае атак. Всё это определённо может упростить процесс разработки. Серверные фреймворки в основном отвечают за отдельные, но критически важные части приложения, без которых оно не сможет нормально работать. Вот несколько самых популярных фреймворков и языки, с которыми они работают:
- Django — Python;
- Zend — PHP;
- Express.js — JavaScript;
- Ruby on Rails — Ruby.
Клиентские фреймворки. В отличие от серверных, клиентские фреймворки никак не связаны с логикой приложения. Этот тип фреймворков работает в браузере. С их помощью можно улучшить и внедрить новые пользовательские интерфейсы. Фронтенд-фреймворки позволяют создавать разные анимации и одностраничные приложения. Все клиентские фреймворки отличаются по функциональности и использованию. Вот некоторые из них:
Все эти фреймворки используют JavaScript.
Многофункциональные фреймворки. Meteor известен как фулл-стек веб-фреймворк. Это значит, что он удовлетворяет почти все потребности как со стороны клиента, так и со стороны сервера, что делает Meteor чрезвычайно популярным. Вам не нужно тратить время на то, чтобы наладить взаимодействие между двумя фреймворками через REST API — вы можете просто выбрать Meteor и ускорить процесс разработки. Но это не главная особенность этого фреймворка. Обе стороны — серверная и клиентская — работают на одном языке, поэтому вы можете создавать и использовать для них один и тот же код. Следующая особенность — «режим реального времени» — когда вы что-то меняете в одном интерфейсе, изменения происходят и в остальных. В качестве примера можно взять документ или таблицу с общим доступом. Когда вы добавляете комментарии или как-то изменяете содержимое, другие пользователи тоже это видят.
6 – 17 апреля , онлайн, беcплатно
На этом о разделении на типы можно закончить, однако масштабы тоже важны. Фреймворки также отличаются по размеру. Существуют такие монструозные фреймворки, которые предлагают решения для всех задач.
Более легковесные варианты специализируются на решении конкретных задач — такие фреймворки называются микрофреймворками. Они не предоставляют «из коробки» всё, что нужно, однако иногда лучше разложить функциональность на несколько подоходов (фреймворки, микрофреймворки, библиотеки). Функциональность микрофреймворков можно расширять с помощью сторонних приложений и создавать небольшие проекты на их основе или совместить микрофреймворк с основным «большим» фреймворком.
Например, если ваше приложение основано на Django и вам нужны веб-сокеты, то вы можете воспользоваться микрофреймворком aiohttp.
Другой пример: если ваше приложение не очень большое и вам нужна только простая маршрутизация URL и шаблоны с несложным контекстом, вы можете использовать Flask с Jinja2 (или другим шаблонизатором) вместо Django.
Особенности и архитектура
Несмотря на то, что все фреймворки отличаются друг от друга и выбрать какой-нибудь из них может быть очень сложно, есть несколько вещей, общих для них всех. Речь идёт об архитектуре и особенностях, которые так же важны, как и функции.
Архитектура
Архитектура почти всех фреймворков основана на декомпозиции нескольких отдельных слоёв (приложения, модули и т.д.), что означает, что вы можете расширять функциональность исходя из своих потребностей и использовать изменённую версию вместе с кодом фреймворка или использовать сторонние приложения. Такая гибкость является ещё одним ключевым преимуществом фреймворков. Существует множество open-source сообществ и коммерческих организаций, которые создают приложения или расширения для популярных фреймворков, например, Django REST Framework, ng-bootstrap и т.д.
MVC — Модель, Представление и Контроллер (Model-View-Controller) — три составляющих каждого веб-фреймворка.
Модель содержит все данные и уровни бизнес-логики, её правила и функции.
Представление отвечает за визуальное отображение данных, например, диаграммы, графики и т.д.
Контроллер просто трансформирует данные для команд предыдущих двух составляющих.
Они неотделимы друг от друга, поэтому важно как следует во всём разобраться, чтобы избежать ошибок во время работы приложения.
Особенности
Теперь давайте посмотрим на некоторые общие особенности, которые делают фреймворки многофункциональными и удобными на практике.
Веб-кэширование
Кэширование просто помогает хранить разные документы и позволяет избежать надоедливой перегрузки сервера. Пользователи могут использовать его в разных системах при определённых условиях. Также оно работает на серверной стороне. Например, вы могли заметить кэшированные веб-страницы на странице результатов поисковой выдачи Google.
Скаффолдинг
Это ещё одна технология, поддерживаемая некоторыми MVC-фреймворками, о которой следует знать. Фреймворк может автоматически сгенерировать типичные части приложения или даже всю струкутру проекта (если речь идёт о инициализации). Это позволяет существенно увеличить скорость разработки и стандартизирует кодовую базу.
Система веб-шаблонов
Система веб-шаблонов представляет собой набор разных методологий и программного обеспечения, реализованных для создания и развёртывания веб-страниц. Для обработки веб-шаблонов используются шаблонизаторы. Они являются инструментом фреймворка, отвечающим за веб-публикацию.
Сопоставление URL
Если вы хотите упростить индексацию вашего сайта поисковыми движками, в то же время создавая привлекательное название для сайта, то эта функция фреймворков — то, что вам нужно. Также сопоставление URL может облегчить доступ к страницам вашего сайта.
Приложения
Множество типов веб-приложений поддерживаются веб-фреймворками. В основном они применяются для создания таких приложений, как блоги, форумы, CMS и т.д.
Вся эта функциональность свойственна всем фреймворкам. Однако, как ни парадоксально, с таким широким ассортиментом разработчик теряется и не может ничего выбрать. Поэтому вам нужно придумать критерии, согласно которым можно выбрать лучший инструмент, облегчающий разработку. Например, ваш выбор может зависеть от предпочитаемого языка программирования. Как было упомянуто ранее, фреймворки можно найти на всех языках. Кроме того, нужно обратить внимание на круг возможностей набора инструментов фреймворка. Если он покрывает ваши потребности, то вы на верном пути. Говоря о предпочтениях, стоит отметить, что они могут служить как во благо, так и во вред. Конечно, лучше использовать фреймворки, которые проще изучить, однако порой написанные по правилам старой школы и редко используемые, но подходящие фреймворки, могут привести вас к успеху.
Руководства
Как мы уже убедились, выбор и использование веб-фреймворка может стать тем ещё испытанием. Однако сам процесс не такой уж и сложный, как могло показаться. Есть достаточное количество документов, библиотек и руководств, призванных помочь изучить фреймворк и ответить на все возникающие вопросы. Существуют сайты, которые предоставляют быстрое введение в любой фреймворк.
Например, Tutorialspoint — кладезь разных руководств, покрывающих структуру каждого фрейморка и предоставляющих информацию по разным деталям. Есть руководства по Java-фреймворкам, PHP-фреймворкам и Zend.
Если ваш выбор пал на Ruby on Rails, можете заглянуть в это подробное руководство, которое описывает все «за» и «против» этого фреймворка и учит всему необходимому, начиная с установки.
Безусловно, это далеко не самый полный список. Интернет полон разных источников, из которых можно черпать новые знания. Вы можете посмотреть пошаговые уроки на YouTube и затем выбрать понравившийся фреймворк.
Если у вас появляются какие-то вопросы, то стоит заглянуть на StackOverflow.
Этим сайтом пользуются разработчики по всему миру. Здесь они делятся своим опытом и помогают другим решать их проблемы. Просто задайте вопрос, и вам предложат несколько возможных решений.
Итак, с фреймворками не так сложно разобраться, как кажется. Не тратьте время на панику — посмотрите пару руководств и попробуйте поработать со своим первым фреймворком.
Фреймворк — что это такое простыми словами
Здравствуйте уважаемые читатели блога INFOZET.RU. Фреймворк — что это такое простыми словами? Поймём казалось бы сложные вещи довольно быстро и просто.
Фреймворк (framework) — это программная оболочка, так называемый «каркас» или набор инструментов нацеленный на то, чтобы ускорить ваш сайт.
Фреймворк — что это такое простыми словами?
Фреймворком ещё называют ряд программных библиотек, которые позволяют значительно упростить язык программирования, а так же в следствии этого упрощается и сам сайт (сама структура). И уже после этого соответственно ускоряется работа проекта.
Определение слова Фреймворк
В любом проекте встречаются разные типовые задачи, которые требуют нашего вмешательства. В переводе с английского framework означает каркас (это если переводить буквально). Так и получается, что фреймворк это каркас из определённых программ, и вам уже останется только соорудить «стены» для своего проекта, чтобы всё успешно работало.
Примеры фреймворка
- Первый пример. Самый распространённый пример фреймворка это jQuery. Он является целой библиотекой, целым кладезем для одной из самых популярных программ Javascript.
- Второй пример. Самым новым фреймворком (или модным) для программирования PHP пока что является Yii.
- Третий пример. Так же отличительным примером фреймворка является CMF, и расшифровывается эта аббревиатура как Content Management Framework.
Фреймворк это простыми словами, любая программа из библиотек, которая призвана помочь веб-мастеру или программисту. И как мы поняли, фреймворки бывают разными, и их достаточно много.
Вообще, понятие Framework не много расплывчатое значение. Но как мы поняли, в основном его используют программисты. Но его ещё используют и ряд других специалистов. Термин одинаково достаточно подходит и для объяснения того или иного контекста, и для уточнения.
Можно так же привести пример с Conceptual Framework (что в переводе означает — «концептуальная основа«). Это довольно расплывчатая структура, которая больше напоминает абстрактное значение. Его в основном используют в разработках исследования, чтобы определить существующие способы решения задач.
Другой пример, тоже связанный с данным значением. Но определяется он как Software Framework (что в переводе означает как — «программная платформа»). Его используют для того, чтобы обозначить «каркас» либо всей системы, с которой программист будет работать, либо с частью системы, или подсистемой. К нему будут относиться различные части кода библиотек, разные вспомогательные программы и другие языки сценария. Всё это призвано для того, чтобы облегчить работу той или иной разработки действительно крупного веб-проекта.
Есть ещё очень не малозначительный пример — Application Framework. Переводится как открытая и доступная инфраструктура каркаса, или приложения.
Мы уже достаточно узнали, и ответили на самый главный вопрос, фреймворк что это такое простыми словами. Теперь пойдём «вглубь», и попробуем понять что дало бы это нам на практике.
Фреймворк — важный инструмент программиста
Для того чтобы начинающему программисту понять, нужно объяснить одну простую вещь, фреймворк что это простыми словами. И после того как он поймёт это, он уже решит: нужно ему это, или нет. Данные инструменты необязательны, но по словам самих программистов, довольно необходимы.
Мы можем более глубже понять значение этой процедуры, если обрисуем всё в примерах.
Фреймворк это простыми словами примеры:
Все вышеперечисленные примеры идут рука об руку с пониманием, и с тем, с чем придётся столкнуться программисту, и с чем он сталкивается «в полях».
Существуют классификации фреймворков, которые будут описаны ниже:
- Фреймворк программного модуля.
- Приложение фреймворка.
- И концептуальные модели фреймворков, которые сильно отличаются от программных.
net framework это простыми словами
Иными словами, net framework это программная платформа, которую очень многие используют и любят за её простоту, и за её необходимость.
Платформа была выпущена компанией Microsoft, ещё в далёком 2002 году. С тех времён на платформе произошло масса изменений. Она и по сей день постоянно обновляется, и рекомендуется web-программистам для пользования.
Её основа — Common Language Runtime. Это среда исполнения которая используется на разных языках. Все функции CLR так же используются на разных языках, и потому программисты по всему миру используют именно эту платформу. В основном сильное распространение идёт в Индии, где программистов стало больше, чем пожалуй там существует компьютеров в целом.
На этом в принципе всё! Мы с вами разобрали, фреймворк что это такое простыми словами. Если есть вопросы, задавайте их ниже в комментариях. А вы читали блог INFOZET.RU. До встречи!
Поделитесь с друзьями или просто сохраните себе
Добавить комментарий Отменить ответ
- Как писать SEO статьи для топ: 10 правил
(5,00 из 5)
- Как продвигать партнёрские программы
(5,00 из 5)
- Самый известный человек в мире за всю историю человечества
(5,00 из 5)
- Создание сайта — с чего начать и как сделать:
(5,00 из 5)
- С какими странами граничит Россия?
(5,00 из 5)
Фреймворк или язык программирования?
Программисты сегодня…
…толком и не знают где заканчивается язык программирования и начинается фреймворк.
Что я под этим имею в виду?
Примерно до 1988-ого года большинство программ, которые могли бы использовать люди, были написаны с нуля с помощью программистов (зачастую всего лишь одним) используя 3GL (язык программирования третьего поколения). Ключевое слово с нуля.
Как я объяснял в первой статье этой серии, 3GL — это абстрактная сборка или машинный язык в зарезервированных словах.¹ Язык программирования — это коллекция зарезервированных слов и некоторых правил грамматики, которые ограничивают использование этих слов таким образом, чтобы не путать компилятор (который развёртывает эти слова в серию команд на машинном языке). Всё вместе это называется синтаксис языка.
Как вы видите некоторые языки имеют на удивление мало зарезервированных слов для запоминания. В SmallTalk всего лишь 6!
Вернёмся к программному обеспечению до 1988-ого. Если вы посмотрите на программы написанные до этого времени, то увидите, что единственные слова помимо зарезервированных — это названия переменных и функций, которые создали программисты.
Код для сжатия изображений (который написан на С) использует только два зарезервированных слова: for и double. Два подчёркнутых слова (fabs и printf) — это функции из подключенных библиотек (stdio.h и math.h). Когда библиотека подключена таким образом это называют зависимостью. Все остальные слова в этой программе или переменные, или комментарии написанные программистом.
Простым подсчётом слов получается, что 90% кода написано программистом. Меньше 10% кода уже было написано кем-то. 4% из другого языка и 6% из двух библиотек.
А теперь давайте посмотрим на Java-версию этой функции:
Всё, что выделено жирным — это ключевые слова, а всё подчёркнутое — это слова из импортированных библиотек. 65% этого кода написано программистом, 20% кода из синтаксиса и 15% зависимости от внешних библиотек.
Я не говорю, что это плохая вещь. Я просто указываю на этот факт. Как выясняется, подключение кода из библиотек — это отличный способ увеличить продуктивность. Нет никакого смысла для обычного программиста заново создавать базовые инструменты программирования: зарезервированные слова, библиотечные классы и функции. Таким образом, в современном программирования развивается тенденция всё меньше полагаться на свой код и всё больше на уже написанные чужие решения в виде готовых библиотек. Несмотря на то, что само по себе это неплохо, многие согласятся, что это зашло слишком далеко.
И магия случается…
В начале 2016-ого произошло то, что по ощущениям сломало половину интернета. Один программист удалил из публичного репозитория npm 11-строчную программу left-pad. Оказалось, что некоторые из самых больших и используемых в мире JavaScript-фреймворков чаще включали в себя зависимость от left-pad вместо того, чтобы записать следующие 10 строк кода:
Другой npm-пакет, который назывался isArray имел 18 миллионов скачиваний в феврале 2016-ого года и является зависимостью для 72 других npm-пакетов. 18 миллионов программистов и 72 автора пакетов скорее используют зависимость, чем напишут следующую строчку кода:
return toString.call(arr) == ‘[object Array]’;
Может быть я чего-то не понимаю, но для меня это совершенно ясно показывает, что программисты, которые создали 72 пакета для npm, имеют самое ужасное чувство юмора, которое я только видел. Или же понятия не имеют о том, что было в isArray и как на самом деле работает JavaScript. Я взял это как самый выдающийся пример карго-культного программирования.
Чтобы ещё больше донести мысль, что большинство современных программистов слепо используют библиотеки классов без понимания их содержимого, я отошлю вас к отрезвляющему и удручающему аккаунту Jordan Scales и его личной реакции на фиаско с left-pad.
Что такое фреймворк? Какие фреймворки самые популярные?
Фреймворк — база программной платформы, каркас, на котором удобно строить решение конкретной задачи. Слово — производное от английских frame и work, «рамка» и «работа». Это неологизм, который носители языка переводят как «остов» или «структура».
Фреймворк определяет архитектуру сайта, приложения или программного продукта. Логика его использования простая: вы выбираете каркас, отталкиваясь от сферы применения и особенностей конечного решения, а после этого заполняете его конкретными модулями и функциями.
Преимущества использования фреймворков
Фреймворки удобны, потому что они обеспечивают высокую скорость и гибкость разработки. Вам не нужно создавать с нуля движок сайта или приложения. Бывает, что вручную практически писать не нужно — только навешивай готовые модули на каркас, настраивай их и интегрируй.
Если у заказчика изменились бизнес-требования, можно добавлять и удалять модули, расширять функциональность.
Легко вводить в команду разработки новых людей. Если они уже работали с фреймворком на одном или на нескольких проектах, то и с решением новых задач на нем легко справятся.
Код проекта на базе фреймворка чище. Его почти не нужно рефакторить, проще отлаживать, расширять и поддерживать.
Недостатки фреймворков
Не все фреймворки одинаково безопасны. Большая часть имеет открытый исходный код, и в нем регулярно находят уязвимости.
При смене фреймворка придется переучиваться. Работать в рамках одного фреймворка в целом можно, но тогда ваши возможности не слишком широки.
Осваивать новый фреймворк чаще всего сложно. И это занимает время.
Чем фреймворк отличается от библиотеки
Библиотека — это набор функций из одной области. Они не влияют на архитектуру сайта или приложения, не ограничивают решение и могут сочетаться с другими библиотеками.
Фреймворк же — это каркас, который определяет архитектуру. Он диктует, как решение будет вести себя по умолчанию. Совмещать два фреймворка в одном продукте — дело неблагодарное.
Внутри фреймворка могут находиться самые разные библиотеки. Их функции могут быть очень далеки друг от друга: к примеру, одна работает с выводом изображений, другая — с приемом оплаты.
Наконец, при использовании фреймворка он сам вызывает классы и функции пользовательского кода. Пользовательский код может реализовывать конкретное поведение, которое встраивается в абстрактный код фреймворка. Управление он получает после вызова.
Здесь же отметим: «фреймворк» не равно «CMS» (системы управления контентом вроде WordPress, которые часто используют для создания сайтов).
Популярные фреймворки
Большая часть популярных фреймворков предназначена для создания сайтов и веб-приложений. Разделить их на группы проще всего по языкам, которые используются для разработки под конкретный фреймворк.
HTML/CSS
Bootstrap — фреймворк с адаптивной версткой, который позволяет быстро создавать стильные сайты с отзывчивым интерфейсом. Они легко подстраиваются под различные размеры окон на разных гаджетах. Фреймворк появился в 2011 году, и сегодня для него существует множество готовых стилей, шаблонов и др.
Semantic UI — молодой фреймворк для переносимых интерфейсов. Он активно развивается, и в сети несложно найти большое количество готовых кнопок, изображений, иконок, надписей и других элементов.
Yii — довольно старый фреймворк, но с хорошими возможностями. У него высокая производительность, есть кэширование и полная обработка ошибок, поддерживается использование jQuery и миграция с других баз данных.
Symfony — мощный и стабильный фреймворк,интересный для крупных проектов. Гибко настраивается, включает широкий набор функций, множество полезных компонентов для настройки форм, безопасности и создания шаблонов.
Laravel — один из самых популярных сегодня php-фреймворков: он прост в освоении и идеален для мелких и средних проектов.
Python
Flask — фреймворк со скромным базовым набором функций, но легко расширяемый. Его удобно использовать для небольших или специфичных проектов, а также осваивать начинающим специалистам.
Django — самый популярный Python-фреймворк, простой и функциональный. На старте хватает знаний Python на базовом уровне. Имеет стандартную структуру, поддерживает наследование шаблонов, работает с собственной CMS Django.
Tornado — фреймворк, который эффективно решает «проблему 10 000 соединений». Успешно справляется со множеством одновременных подключений, прост в освоении и настройке.