Framework
Що таке фреймворк
Сучасні сайти та веб-додатки стають все складнішими і функціональнішими, щоб задовольнити зростаючі вимоги користувачів і сучасних технологій. Цей факт призводить до того, що розробка сайтів займає все більше часу і вимагає все більше зусиль від ІТ фахівців, а отже, впливає і на вартість створення сайтів.
Щоб знизити ціну і прискорити роботу, веб-розробники, вигадують і створюють різноманітні інструменти для прискорення та полегшення розробки сайтів або веб-додатків. Залежно від різних параметрів ці інструменти називають бібліотеки, фреймворки або системи керування контентом (CMS).
Вікіпедія дає приблизно таке визначення: фреймворк (framework) – це інфраструктура програмних рішень, платформа, яка визначає структуру або каркас програмної системи та полегшує її розробку, визначаючи правила розробки та надаючи необхідні інструменти.
Фреймворки, бібліотеки та CMS
Розробник-початківець може легко сплутати поняття бібліотеки і фреймворку, але це далеко не одне і теж, хоча, можливо, в деяких випадках грань може здаватися розмитою. Головна відмінність фреймворку та бібліотеки полягає в тому, що бібліотека не визначає структуру програми, а лише надає набір цеглинок для розробки..
CMS певною мірою теж можна назвати фреймворками, але на вищому рівні (високим – не означає краще). Вони призначені для вирішення більш вузьких завдань і накладають жорсткіші обмеження на сайт, що розробляється. Але, з іншого боку, вирішує багато типових завдань для всіх сайтів, наприклад, робота з базою даних або організація структури сторінок.
Призначення фреймворків
Всі фреймворки мають загальне призначення, вони повинні полегшувати та прискорювати розробку додатків. Вони роблять це у кількох напрямках. По-перше, фреймворки, як і бібліотеки, надають розробникам набір готових блоків для вирішення типових і повторюваних завдань. По-друге, вони визначають структуру програми, закладаючи надійний фундамент для створення великих веб-додатків.
Види фреймворків
Існує велика кількість фреймворків. Кожна мова програмування може похвалитися кількома популярними та універсальними фреймворками та ще більшою кількістю маловідомими та більш вузькоспрямованими.
Умовно фреймворки можна розділити на три великі групи, залежно на якій стороні вони використовуються: фронт-енд, бек-енд та фулстак.
Наведу кілька популярних фреймворків для мов програмування та технологій, без яких створення сайтів займало б більше часу, і ціна за сайт була б вищою.
Наведений список веб фреймворків, ніяк не претендує на завершеність і не є рейтингом. Це ті, з якими я працював чи стикався у своїй практиці.
HTML/CSS фреймворки
Всі фреймворки з цієї категорії, не зовсім такі, вони не підходять під визначення з Вікіпедії. Проте їх часто так називають.
Bootstrap
У світі навряд чи знайдеться веб-дизайнер/розробник, який хоча б не чув про Bootstrap. Це, можливо, найбільш популярний інструментарій, для швидкого створення адаптивних сайтів, що включає змінні і мікси SASS, дуже розвинену адаптивну сітку, готові компоненти і плагіни JavaScript. Доступний також великий набір SVG іконок, спрайтів і шрифтів.
Bootstrap абсолютно безкоштовний, але на офіційному великий набір тем та шаблонів для сайтів, веб та мобільних додатків, які пропонуються вже за невелику плату.
Foundation
Створити адаптивний сайт, який правильно відображатиметься на десктопі та всіх мобільних пристроях, використовуючи цей фреймворк дуже легко. Він добре кастомізується, містить HTML-шаблони, що покривають велику кількість варіантів використання, і включає потужну адаптивну CSS сітку.
Відмінною рисою цього фреймворку є можливість швидкого створення HTML імейлів.
JavaScript фреймворки
Angular
Angular — це середовище та платформа для проектування та розробки складних та великих односторінкових веб-сайтів та додатків. Цим фреймворком складніше опанувати на початкових етапах, але додаткові витрати часу на вивчення, повністю окупаються, коли настає потреба у створенні великого нестандартного веб сайту.
Цей фреймворк, разом із TypeScript, я регулярно використовую для розробки сайтів, які не можна або дуже складно зробити на простому WordPress.
React
React розробила компанія FaceBook та є дуже популярним JavaScript інструментом для простого створення інтерактивних сайтів. Досить описати, як частини інтерфейсу користувача виглядають у різних станах, а React буде своєчасно їх оновлювати, коли дані змінюватися.
Vue
Vue це ще один популярний і прогресивний фреймворк на JavaScript для створення інтерфейсів користувача. Його відмінна риса від інших «братів по цеху» полягає в тому, що Vue спочатку б розроблений, щоб його можна було впроваджувати за зростаючою. Його базова бібліотека сфокусована лише на Шаблон уявлення, і її легко інтегрувати у існуючий проект. Якщо використовувати всі можливості Vue, то він також чудово підійде для складних односторінкових сайтів з багатою функціональністю.
PHP фреймворки
Laravel
З backend фреймворками для PHP я найчастіше стикався з Laravel. Це PHP фреймворк з багатою екосистемою та виразним елегантним синтаксисом. Його використання для розробки веб сайтів дозволяє не витрачати час на дрібниці, що повторюються, а творити по-справжньому складні і цікаві речі.
Висновок
Робота веб розробника дуже цікава і місцями досить складна, стикаєшся з численними, і все новими, інструментами та технологіями, які часом складні в розумінні та вивченні. Список фреймворків для розробки сайтів я доповнюватиму в міру знайомства з новими.