Вибір правильного інструменту чи технології для певної проблеми є одним з найважливіших аспектів програмування. Правильний інструмент - запорука успіху проекту. Саме тут більшість програмістів не вдається, оскільки вони зазвичай мають справу з багатьма інструментами. Це стосується остаточного запитання: "чи слід будувати свою програму з бібліотекою чи рамкою?" Це одна з найбільш дискусійних тем для обговорення у спільноті програмістів і часто є причиною плутанини. Невелика команда з купою розробників, в основному початківцям, може бути краще працювати з рамкою, тоді як бібліотеки - це будівельні блоки, які можна використовувати в будь-якому місці і забезпечують більшу гнучкість і контроль.
Ключова відмінність між бібліотекою та основою - це "Інверсія управління" (IoC). Можна сказати, що рамки - це колекція бібліотек, але вся ідея дещо інша.
Бібліотека - це набір функцій багаторазового використання, що використовуються комп'ютерними програмами, тобто ресурси, які ви можете використовувати повторно, включаючи класи, підпрограми, попередньо скомпільований код, шаблони повідомлень тощо. Здебільшого мови програмування мають свої стандартні бібліотеки, але програмісти також можуть створювати власні спеціальні бібліотеки. Це просто фрагмент коду, написаний іншими розробниками, який можна використовувати в будь-якому місці. Бібліотеки можна легко включати в існуючі проекти, щоб додати функціонал, до якого можна отримати додатковий доступ за допомогою API. Щоб почати, потрібно трохи знань.
Framework - це фрагмент коду, який диктує, як проект має бути структурований та запускається. Він просто зобов'язує архітектуру вашого проекту, як визначати параметри дизайну програми, щоб ви могли зосередитись на специфіці проекту, тим самим наголосивши на повторному використанні дизайну, а не на повторному використанні коду. На відміну від бібліотек, керування інвертується у разі фреймворків, і код ніколи не заходить у рамку, натомість, рамка викликає вас. На відміну від бібліотек, рамки акцентують увагу на структурі та стандартах.
У програмуванні бібліотека - це сукупність багаторазових функцій - тобто ресурсів, які можна повторно використовувати - використовуються комп'ютерними програмами. Ресурси, які іноді називають модулями, як правило, зберігаються в об'єктному форматі. Більшість мов програмування мають власні стандартні бібліотеки, але програмісти також можуть створювати власні власні бібліотеки. Простіше кажучи, бібліотека - це набір функцій, які можна зателефонувати, тоді як фреймворк - це фрагмент коду, який диктує архітектуру вашого проекту. Певним чином, рамки та мови програмування переплітаються, що разом допомагає комп'ютерним програмам.
"Інверсія управління" - це ключова відмінність, яка відокремлює рамки від бібліотеки. Бібліотека - це набір функцій і процедур, які використовуються іншими програмами, і ви повністю керуєте, якщо ви викликаєте метод з бібліотеки. Однак керування інвертується у випадку з рамкою. Він диктує структуру вашого проекту, і код ніколи не заходить у рамки, натомість він викликає вас. Простіше кажучи, ви можете просто вважати бібліотеку функцією програми та рамкою як скелетом програми, в якій додаток визначає свої особливості.
Бібліотеки - це набір функцій, який можна використовувати де завгодно, це означає, що це просто код, написаний іншими розробниками, який можна використовувати повторно. Вони легко включаються в існуючі проекти, щоб додати функціонал, до якого можна отримати доступ за допомогою API. Вони в основному використовуються для часто використовуваних модулів, оскільки не потрібно явно пов'язувати їх з кожною програмою, яка їх використовує. Вони важливі для зв'язування програм та процесу зв'язування. Рамки, з іншого боку, забезпечують стандартний спосіб складання та розгортання додатків і в основному можуть використовуватися при запуску нового проекту, а не інтегруватися в існуючі.
Щоб краще зрозуміти різницю між бібліотекою та рамкою, давайте подивимося на jQuery та AngularJS. jQuery - це міжплатформна бібліотека JavaScript, яка спрощує маніпуляції з DOM разом із багатьма іншими складними речами, такими як маніпуляція CSS, методи подій HTML, дзвінки AJAX тощо. Метою jQuery є спрощення використання JavaScript на вашому веб-сайті. AngularJS, з іншого боку, є структурною основою на основі архітектури MVC, що використовується для створення динамічних веб-додатків. Він повністю ґрунтується на HTML та JavaScript, і на відміну від jQuery, він не може бути інтегрований у існуючі проекти, тому що в якості основи він диктує, як слід структурувати та керувати кодом..
Коли виникає плутанина щодо вирішення питання про те, чи слід використовувати бібліотеку чи основу для створення програми, все це зводиться до контролю. Бібліотеки - це набір функцій, за якими можна зателефонувати, і кожен виклик виконує якесь завдання і повертає вам управління назад. Вони можуть бути легко включені в існуючі проекти, і для початку роботи потрібно трохи знань. З іншого боку, фреймворки диктують загальну структуру вашого проекту, і на відміну від бібліотек, фреймворки викликають вас, і код ніколи не заходить у рамки. Ключова відмінність - це, звичайно, інверсія управління. Простіше кажучи, бібліотеки є більш гнучкими з більшим ступенем контролю, тоді як рамки застосовують структуру та стандарти.