Сегодня слово «framework» стало обыденным в web dev"е. Как только jQuery и Prototype, Rails и Django получили широкое распространение, кажется, что теперь каждый использует какой-нибудь framework для создания своего сайта.
Но что же такое framework? Они полезны программистам, или даже веб дизайнеры могут воспользоваться их преимуществами?..
В Lawrence Journal-World, где я работаю, мы недавно создали CSS framework и обнаружили, что он значительно увеличил нашу производительность. Конечно, для его создания потребовалось потратить несколько дней, но как только он был готов, скорость, с которой мы могли создавать качественные страницы, резко возросла. Более того, с тех пор, как мы начали использовать наш framework, каждый дизайнер мог что-то исправить в чужой работе, и им уже не требовалось 20 минут, что понять, почему что-то написано именно так. Они просто погружались в работу.
К тому же, многие сайты используют одни и те же виджеты, такие как drop-down меню, закладки в навигации, кнопки, и т.д. Эти вещи хорошо подходят для абстракции. Помимо этого, вы можете выработать некоторые свои идиомы, как скажем, список фотографий, показывающийся в виде thumbnail’ов. Вы можете стандартизировать CSS класс “thumbnail-list”, и в следующий раз вам всего лишь потребуется вставить этот класс, чтобы получить работающий вариант.
Фреймворк, будучи "каркасом" для создания и сопровождения программного проекта, облегчает задачу разработчика. Существует множество фреймворков для создания сайтов и для различных языков программирования, обладающих как плюсами, так и минусами. Хорошо известные СSS-фреймворки: Foundation и Bootstrap. Из современных PHP-фреймворков можно выделить Yii, Symfony и Laravel. Они дружелюбны не только к профессионалам, но и новичкам. Популярность и широкий функционал позволяет без особого труда найти полезную информацию по этим фреймворкам.
В наше время IT-технологии не стоят на месте, каждую минуту создаются новые сайты, приложения и разного рода программные продукты. Тысячи строк кода помогают компьютеру понять человека.
Зачастую, разработчик применяет одни и те же алгоритмы в разных проектах. И было бы не целесообразно тратить уйму времени на то, чтобы раз за разом писать одно и то же. Что же может облегчить эту задачу?
Существует множество определений термина «фреймворк». Рассмотрим некоторые из них и попытаемся найти то, что их объединяет.
Framework – это программная платформа, определяющая структуру программной системы, программное обеспечение, которое облегчает поставленную перед разработчиком задачу и объединяет разные компоненты большого программного проекта. Это такая структура, включающая в себя библиотеки кода, различное программное обеспечение, которые облегчают жизнь разработчика и способствуют объединению разных составляющих большого программного проекта. Фреймворк содержит базовые программные модули. Все специфичные компоненты реализуются разработчиком на их основе.
В переводе с английского, framework означает «каркас». Действительно, если сравнить создание программного проекта со строительством дома, то фреймворк – каркас и разработчику остается лишь навесить окна и стены.
Фреймворк предлагает разработчику уже встроенные классы:
Все это может использоваться в большинстве ваших проектов, при этом использование и подключение будет простым благодаря таким «каркасам».
Используя фреймворки не нужно писать с нуля десятки, а то и сотни тысяч строк, тем самым достигается большая производительность. Становится проще сопровождать проект, вносить изменения и исправлять ошибки, «склеивать» компоненты в более сложные системы. Фреймворк помогает организовать структурированную архитектуру проекта, т.е. все файлы будут находиться в порядке и на нужных местах.
Плюсы фреймворков
Минусы фреймворков
Одна из самых популярных областей применения фреймворков – создание сайтов, web-приложений и сервисов и это естественно. Главным преимуществом фреймворка является тот факт, что зачастую веб-сайты и приложения используют стандартизированную структуру организации компонентов. И создание такой структуры становится проще, если использовать фреймворки. Практически у любого сайта есть форма для авторизации. И каждый раз «изобретать велосипед» было бы не разумным решением.
В интернете мы можем найти огромное количество фреймворков для создания сайтов и для разных языков программирования. Одни предназначены для упрощения в разработке интерфейсов, другие помогают в написании логики программного проекта.
В пример хотелось бы привести наиболее популярные фреймворки, с которыми сможет разобраться как профессиональный разработчик, так и новичок. Практически невозможно не найти какую-либо информацию по этим фреймворкам и это их огромное преимуществом.
Одним из самых знаменитых HTML/CSS/JS-фреймворков, помогающих в разработке интерфейса сайта является Foundation , который состоит из CSS файлов и нескольких плагинов JQuery (JS-фреймворк).
Главным его конкурент - Bootstrap , на котором так же написано огромное количество проектов.
Стоит отметить основные плюсы данных фреймворков:
Другие фреймворки облегчают написание логики сайта и web-приложения или сервиса. Например, одними из самых популярных PHP-фреймворков являются:
В заключение, стоит отметить, что каждый из описанных фреймворков имеет как сильные, так и слабые стороны. Все они обладают большими возможностями, которые реализованы по-своему. У каждого разработчика свои предпочтения, поэтому выбор будет субъективен. Прежде чем решить, какой же из них лучше, разработчику стоит самому попробовать каждый из этих фреймворков.
Фреймворк состоит из виртуальной машины и множества различных интегрированных компонентов. Он также включает в себя библиотеки классов, которые используется для описания функций в машинном коде.
Фреймворк делает несколько вещей:
- облегчает работу со сложными технологиями;
- связывает вместе дискретные объекты или компоненты в нечто более полезное;
- заставляет команду реализовать код таким образом, чтобы это способствовало последовательному кодированию;
- позволяет делать меньше ошибок и создавать более гибкие приложения;
- позволяет легко проверить и отладить код программы, потому что он структурирован.
Фреймворк предоставляет прекрасную базу данных, которую можно использовать в своих программах для Windows и Linux. Он создает «рабочую среду», которая позволяет программам запускаться и функционировать вне существующих ограничений. Он также обеспечивает пользовательский интерфейс и управление данными.
Архитектура - это стиль программного кода, который включает в себя конкретные элементы структуры. Это реализуется для обеспечения конкретной методологии внедрения в программу. Документы-классы, представленные в пакете Microsoft Foundation Classes (MFC), являются составляющими архитектуры. По существу, архитектура реализует связи между объектами. К числу таких связей можно отнести наследственность, инкапсуляцию и т.д.
Архитектура фреймворка имеет атрибуты, которые можно смело игнорировать или заменить, если в них нет надобности. Такая организация является очень полезной, потому что создается возможность использовать многоразовые структуры, которые обеспечивают некоторую расширенную функциональность. Но как только вы начинаете их использовать, на последующих этапах разработки могут возникнуть серьезные проблемы с рефакторингом.
Шаблоны использования конкретной архитектуры являются одновременно и методологией. Их использование обеспечивает особый метод взаимодействия. Однако если вы используете модели поведения, всё приложение будет придерживаться именно этой реализации. Базовые шаблоны проектирования являются довольно примитивными и их очень легко запомнить. Они необязательно должны быть сложными и основываться на том, что компоненты и объекты взаимодействуют друг с другом.
На самом деле все намного проще, чем могло многим показаться, но для порядку я начну по порядку…. Фреймворк это программная платформа облегчающая разработку и объединяющая разные компоненты большого программного проекта. Ну а если более понятным языком, это набор шаблонов, инструментов, которые в разы повышают скорость разработки за счет заранее подготовленного и проверенного кода. Фреймворков огромное количество, но как всегда есть определенные лидеры, так же вы сами можете написать свой фреймворк. Как вы уже догадались они бывают разные не только в плане того кто их написал, а конкретно в плане языка, например существуют фреймворки по языкам html/css и отдельно фреймворки на php и на многих других языках.
Давайте разберем на примере их пременения, предположим вы решили сделать сайт, первым делом вы начинаете делать верстку сайта, вы можете прописать модульную сетку сами вручную, а можете взять уже готовую под свой проект из фреймворка, это значительно сократит ваше время ведь, по сути, каждый раз делая новый сайт, вы делаете одну и ту же работу, ну а если вы занимаетесь этим постоянно, то 99 из 100 что у вас есть уже заготовленные вами же шаблоны или вы уже используете фреймворк. Я думаю тут наглядно раскрыта суть, то же самое если вы пишите движок сайта и компоненты, которые вы постоянно используете вы можете взять из фреймворка на php.
Их много и я опишу лишь основные. В первую очередь это скорость выполнения проекта, она в разы вырастает, когда вы пользуетесь уже готовым решением. Стандартизация это очень важный момент, все качественные фремворки выполнены по всем современным стандартам и соответственно валидность кода, в случае с версткой кроссбраузерность, и т.д., это все заложено и вы на выходе получаете качественный профессиональный и проверенный код, которому можно доверять, это очень важно особенно в фрейворках на сложных языках программирования, за счет этого создается структура благодаря которой любой программист сможет быстро разобраться в чужом коде не тратя кучу времени впустую, для примера на языке php программирования это паттерн , и все качественные фреймворки его придерживаются.
Несмотря на многообразие и распространенность в каждой области есть свои безусловные лидеры, и они не зря заслуживают свое внимание, если конкретно разговаривать о создании сайтов, то я отдал свой приоритет фреймворкам Bootstrap и Yii2, первый для front-end разработки на html, CSS, JS, а второй php фреймворк, я не утверждаю что они лучшие, но по моему скромному мнению они именно то, что надо.
В первую очередь опытным веб-мастерам, которые сделали уже не один сайт, поскольку они уже знают код наизусть, и лишний раз тренироваться не имеет ни какого смысла, лишь пустая трата времени. Новичкам в программировании я лично не рекомендую сразу же кидаться на фреймворки, поскольку не имея достаточного опыта вы может упустить много важных моментов которые в последствии могут создать вам большие проблемы, в общем, тренируйтесь в написании кода как можно больше, ну а потом фреймворк вам в руки и удачи в создании сайта.
Хотелось бы подвести итог всему вышесказанному, фреймворк это очень полезный и важный инструмент без которого вы теряете кучу бесценного времени, качественный выбор даст вам стандартизированный и отлаженный код который вы без проблем сможете применять на практике, и этот инструмент все же уже для опытных пользователей. Старался раскрыть тему как можно понятнее, надеюсь, у меня это получилось, удачи вам в создании сайтов.
Дата публикации:2018-03-28
Всем привет. Сегодня я расскажу вам, что такое фреймворки и для чего они вообще используются в веб-разработке. Думал тут сам сформулировать определение, но подумал, что с этим лучше справляется Википедия:
Фреймво́рк (англицизм неологизм от англ. framework букв. – каркас, структура) - программная платформа, определяющая структуру программной системы; программное обеспечение, облегчающее разработку и объединение разных компонентов большого программного проекта. Употребляется также слово «каркас».
Здесь записано общее определение, ведь бывает веб-программирование, а бывает прикладное. Соответственно, свои фреймворки есть и там, и тут. Но я на своем блоге говорю только о веб-программировании, поэтому о нем мы и поговорим.
В определении вы могли прочитать, что фреймворк — это ПО, облегчающее разработку проектов. Своего рода каркас. Ведь согласитесь, что намного проще разработать программу или сайт на основе каркаса, чем с полного нуля. С нуля будет гораздо сложнее, если только речь не идет о совсем простых проектах.
Фреймворк привязан к языкам, на которых он написан, поэтому и говорят, например: js-фреймворк, php-framework и т.д. Как правило, его создает один или несколько опытных разработчиков для того, чтобы в будущем использовать для своих целей. Некоторые фреймворки выкладывают в свободный доступ и их использование и кастомизация становятся доступными абсолютно для всех.
Пример свободно-распространяемого css-фреймворка — Bootstrap. С его помощью можно очень легко и быстро создать адаптивный шаблон, намного быстрее, чем с полного нуля. По сути, в полной версии фреймворка содержатся такие компоненты:
То есть при использовании css-фреймворка вам нет нужды писать код с нуля, очень многое уже реализовано, остается только применить нужные стилевые классы к элементам и все будет работать. Заметьте, что Bootstrap это не только css, но и js-framework. Подробнее о Bootstrap вы можете почитать .
Пример php-фреймворка — известный в рунете Yii. Опять же, он существенно облегчает разработку сайта по сравнению с тем, если все делать на голом php. В фреймворках уже есть ряд готовых решений, поэтому вам, по сути, остается лишь изучить работу с ними.
У каждого фреймворка есть своя цель. Например, Bootstrap идеально подходит для разработки адаптивных шаблонов, сайтов с поддержкой на мобильных устройствах, с помощью Yii можно легко реализовать функционал блога или интернет-магазина, Angular идеально подходит для разработки фронтенда у веб-приложений.
Вам не нужно изучать все фреймворки, потому что их десятки, но некоторые вы вполне можете выбрать и освоить, если они связаны с теми технологиями, с которыми вы работаете. Фреймворки позволяют упростить, ускорить, автоматизировать многие вещи, которые без их использования пришлось бы делать руками.
А какие вы хотите изучить фреймворки? Пишите в комментарии, может поделюсь ссылкой какой, где вы можете посмотреть уроки.