Розбираємось, що таке фреймворк, і навіщо вони взагалі потрібні

Англійське слово framework можна перекласти як каркас, рама чи структура. Тобто таке поняття означає щось ґрунтовне, наприклад, якщо порівнювати з будівельною галуззю, конструкцію будівлі. Наприклад, сьогодні практично всі багатоповерхові будинки будуються за монолітно-каркасною технологією. Основа такої споруди – це залізобетонні конструктивні елементи. А вже на них формуються внутрішнє наповнення та зовнішнє оформлення споруди. Або швидкобудуюємі будівлі — торгові центри, виробничі та логістичні комплекси. Там застосовуються металеві каркаси, які використовують як «скелет». А далі на розсуд замовника конструкція обшивається сендвіч-панелями або іншими облицювальними матеріалами. Як правило, основою таких об’єктів стають стандартні конструктивні елементи або їх спеціально виготовляють на замовлення. 

Для чого цей екскурс у будівельну галузь? Просто на такому прикладі легше пояснити людині, далекі від програмування, що таке фреймворк. Такий фрагмент коду призначений для спрощення та прискорення створення сайтів та взагалі будь-якого програмного забезпечення. Фактично фреймворк є набір базових програмних модулів (той самий каркас за аналогією з будівництвом будівлі). Він є основою розробки інших, специфічних компонентів програмного коду. В результаті розробнику залишається тільки написати відсутні компоненти, а архітектуру програми (наприклад, дизайн, структуру, її виконання, правила інтерпретації коду) задають фреймворки, що використовуються розробником. Давайте докладніше поговоримо про такі «каркаси», які активно використовуються при створенні ПЗ.

Фреймворк вам допоможе: як полегшити роботу зі створення програмного коду

Отже, фреймворк — це частина коду, «запозичена» у сторонніх розробників з метою спрощення та прискорення процесу створення програмного продукту. Взагалі, такі «каркаси» розробляють цілі команди програмістів, які працюють у великих компаніях, наприклад, у тому ж всюдисущому Гуглі.

При цьому не варто плутати фреймворки з бібліотеками. Так, бібліотека – це теж код, написаний розробником, або вже наявний у стандартному функціоналі мов програмування. Їх використання сприяє більш ефективному розв’язанню типових завдань або проблем, що часто зустрічаються. Однак існують суттєві відмінності:

  • До бібліотеки розробник звертається на свій розсуд. Він сам вирішує, коли необхідно використовувати якийсь набір функцій, що міститься в ній, для виконання конкретної задачі при написанні коду. За порядок виконання команд відповідальність також несе розробник.
  • Фреймворки перебирають на себе контроль за процесом розробки. Вони підключають програмний код, надаючи основу для формування на ній специфічних компонентів.
  • Можна сказати, що фреймворки ні в кого не запитують дозволу на ту чи іншу дію, а самі «вирішують» ступінь своєї участі у написанні коду. Вони перебирають на себе створення форм авторизації, таблиць або автоматичну генерацію верстки, можуть задавати місце розташування та імена файлів.
  • Фреймворк відповідальний за формування архітектури програми, а бібліотеки підключаються до коду за бажанням розробника. Якщо знову звернутися до аналогій з будівництвом, бібліотеку правильніше порівняти з робочим інструментом, наприклад, бетономішалкою. Застосування таких коштів повністю залежить від будівельника (у нашому випадку від розробника).

Розширюваність як спосіб розвитку функціоналу

Гідність фреймворків — можливість їхнього розширення. По суті, такі програмні модулі дозволяють одержати основу для створення програмного продукту, проте вони можуть бути доповнені з певною метою. У той самий час згенерований фреймворками код, зазвичай, не змінюється у процесі розробки. А на нього, як на каркас, додаються необхідні компоненти.

Наведемо приклад: популярний фреймворк на основі HTML та JavaScript AngularJS використовують розробники веб-додатків. Він відповідальний за вибір основних характеристик програмного продукту: розмічає сторінки для повної та мобільної версії, синхронізується з даними сервера, формує синтаксичні особливості шаблону, забезпечує кросплатформеність (коли сторінки однаково відображаються на Айфонах та смартфонах з Android «на борту»). Для розширення функціоналу можна підключити низку бібліотек. Однак підключення Angular до іншого фреймворку нереально в принципі, тому що до кола його завдань входить запуск коду на сайті.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Головне меню