Мы уже говорили о преимуществах. Теперь пришло время рассмотреть недостатки фреймворков для разработчиков. Сразу скажу, что их не так много, как преимуществ.
Знакомство с фреймворками. Часть 1. HTML/CSS, PHP и Python
Этой статьей я хочу начать серию материалов, в которых рассматриваются фреймворки: что такое фреймворки, для чего они используются и какие они бывают.
Взгляд на историю слова «фреймворк» показывает, что этот неологизм вошел в язык относительно недавно, примерно в начале 21 века. Английское слово «framework» можно перевести как «конструкция», «строение», «каркас», «тело» или «скелет». Понимание перевода этого слова приводит к пониманию сути фреймворка: это специальное исполняемое программное обеспечение, программная основа, которая облегчает разработку программного обеспечения и интеграцию компонентов, поскольку уже содержит каркас, который не меняется от конфигурации к конфигурации и который нужно только наполнить сменными моделями или точками расширения. В отличие от динамической библиотеки (DLL), которая представляет собой лишь набор ограниченных функций, фреймворк — это основа, на которой строится архитектура приложения, т.е. он определяет отношения между компонентами. Кроме того, фреймворк может содержать множество различных типов библиотек.
Фреймворки можно разделить на следующие типы:
- рамки программной системы,
- рамки приложения,
- Концептуальная модель.
В этой серии мы сосредоточимся на фреймворках первого типа, которые помогают в разработке веб-проектов.
Сравнение чистого кода, фреймворка и CMS
Прежде чем создать сайт, разработчик должен решить, по какому из трех возможных путей развития сайта он пойдет.
Этот путь удобен тем, что предоставляет свободу действий и практически неограниченную функциональность, которую можно реализовать. К недостаткам можно отнести дорогостоящую и трудоемкую работу, а также необходимость тщательной проверки готового продукта на наличие ошибок и дефектов.
Второй вариант — использовать рамки. Конечно, этот вариант имеет некоторые ограничения по сравнению с предыдущим: у вас есть готовый каркас, который вы должны заполнить необходимыми элементами. Конечно, этот вариант также не подходит для тех, кто не знаком с программированием, и поэтому родился третий вариант создания сайта.
Третий вариант — установка готовой CMS. Этот способ очень популярен среди людей, далеких от веб-разработки, поскольку позволяет легко и быстро создать собственный сайт, а все необходимые действия можно выполнить через панель администратора. В то же время, этот подход более проприетарный, чем два других, и имеет много ограничений.
Поэтому фреймворки — это компромисс между написанием собственного кода и использованием готовой системы управления контентом. Фреймворк предоставляет проекту готовую основу, не лишая его функциональной гибкости. Фреймворки, необходимые для веб-разработки, обычно различаются по языку, к которому они относятся. В этой и следующих статьях я рассмотрю, какие рамки существуют и каковы их характеристики.
HTML/CSS-фреймворки
Bootstrap (или Twitter Bootstrap) — один из самых известных и современных фреймворков, впервые представленный в 2011 году. Одной из важнейших особенностей этой системы является ее адаптивность. С помощью Bootstrap можно создать сайт с отзывчивым дизайном: Ваш проект адаптируется к размеру экрана пользователя. Другие преимущества этого фреймворка: простота использования, наличие множества шаблонов и стилей, что означает значительную экономию времени при разработке, последовательное оформление страниц, открытый исходный код. Bootstrap можно классифицировать не только как HTML/CSS фреймворк, поскольку он также включает в себя предварительно созданные стили и дополнения для jQuery (JS-библиотека).
Foundation в настоящее время является одним из ведущих frontend-фреймворков. В последних версиях авторы сделали акцент на мобильной функциональности. Семантический подход позволяет писать более чистый HTML-код и использовать SCSS. Эта основа подходит для быстрого создания прототипов.
Semantic UI — Как и Bootstrap, этот фреймворк помогает создавать переносимые интерфейсы. Это относительно новая основа, которая постоянно развивается и включает в себя множество различных кнопок, иконок, изображений, меток и других элементов.
Uikit — это фреймворк с легкой и модульной структурой. Он отличается от других фреймворков двумя особенностями: во-первых, Markdown (предварительный просмотр в реальном времени) и, во-вторых, подсветка синтаксиса для HTML.
Pure by Yahoo! — это фреймворк, содержащий небольшие пользовательские CSS-модули, подходящие для использования в любом проекте. Как следует из названия, этот фреймворк стоит использовать, если вам необходимо использовать некоторые его возможности, но в то же время вы не хотите использовать очень тяжелую программную основу.
Одно только название дает понять, что эти фреймворки сочетают в себе целый ряд функций. Они заботятся как о бэкенде (серверная часть, бэкенд продукта), так и о фронтенде (фронтенд, клиентская часть продукта).
Что такое фреймворки
Проще говоря, фреймворки можно сравнить с шаблонами, которые определяют будущую структуру проекта. Этот программный продукт идеально подходит для создания крупных, комплексных проектов, так как позволяет создать правильную бизнес-логику. Такой фреймворк уже содержит минимум необходимых функций, а остальная часть настройки выполняется разработчиком. Можно сказать, что фреймворк облегчает работу разработчика, которому не нужно беспокоиться о таких функциях, как защита паролем, обработка ошибок, работа с базами данных и файловой системой. Все это и многое другое уже реализовано в рамочных системах. В общем, вы можете забыть о рутине и реализовать самую интересную часть проекта.
Достоинства фреймворков
Решение реализовать проект с использованием фреймворка имеет следующие преимущества для разработчика:
- Компактный и понятный код, который легче исправить позже, добавить новые функции, в общем, его легче поддерживать.
- Операционные процедуры уже отработаны, основа готова, поэтому на этом этапе можно избежать глобальных ошибок.
- Программное обеспечение, реализованное на базе фреймворков, работает быстрее и эффективнее.
- Безопасность.
Недостатки фреймворков
Несмотря на многочисленные преимущества, у фреймворков есть и недостатки. Например, фреймворк определяет определенную структуру будущего программного обеспечения. И если разработчику приходится реализовывать нестандартизированный проект, ему придется обойтись без фреймворков.
Важно помнить, что разработчик должен знать, как работает фреймворк, и уметь применять его в своей работе. Они также должны потратить время на изучение системы. И, конечно, вы не можете реализовать все функции с помощью фреймворков, вам придется добавлять некоторые дополнительные функции вручную.
4. рамки — это инструмент для профессионалов. Поэтому даже не пытайтесь создавать сообщения в тематических сообществах с заголовками вроде «Как создать корзину» или «Как добавить новую категорию», которые уничтожают форумы, посвященные CMS.
Что такое Framework
Фреймворк — это инструмент быстрой разработки, предоставляющий предварительно построенную архитектуру, в рамках которой можно комбинировать несколько библиотек.
Архитектура — довольно расплывчатый термин в данном контексте, не так ли? В нашем случае это слово имеет примерно такое значение: набор готовых логик и алгоритмов. Разработчику остается только написать бизнес-логику. А бизнес-логика — это определенные части программы, которые характерны для определенной компании/программы.
Давайте учиться на примерах….
Задача заключается в разработке отзывчивого веб-сайта (если вы не знаете, что это такое, прочитайте нашу статью здесь), который легко масштабируется и поддерживается.
Конечно, программировать в «реактивном» стиле очень и очень сложно. Многие программисты проведут свою жизнь, не сумев самостоятельно реализовать сложную и масштабируемую архитектуру, используя парадигму реактивного программирования (ссылка на википедию). Поэтому имеет смысл использовать готовый каркас, вместо того чтобы зарывать голову в песок и учиться этой премудрости.
Таким образом, программист берет заранее созданную логику (архитектуру) и разрабатывает на ее основе приложение. Разработчик просто пишет бизнес-логику: вычисляет определенные данные, делает запросы к серверу и т.д.
Бизнес-логика — это код, характерный для конкретной компании (для которой создавался сайт). То есть, этот код нельзя передавать из проекта в проект.
Чем отличаются друг от друга Framework и Библиотека
Давайте подведем итоги.
Библиотека — это набор кода, который решает конкретную задачу. Библиотеки можно переносить из проекта в проект (как дополнения) и нормально работать в других проектах. Когда мы запускаем наш код, он обращается к библиотекам. Это означает, что библиотека является своего рода дополнением к нашему коду.
Фреймворк — это инструмент для быстрой разработки, который может включать или не включать набор библиотек и некую логику и алгоритмы. Фреймворк заставляет разработчика работать в определенном стиле и подчиняться определенной логике. Когда мы запускаем программу, написанную на любом фреймворке, мы сначала запускаем сам фреймворк, который вызывает наш код (бизнес-логику), то есть наш код является своего рода надстройкой над фреймворком.