Маючи ідею створення сайту чи веб-додатка у клієнтів виникає цілком логічне питання : “Що ж взяти основою реалізації – фреймворк чи CMS ”.
Ну що ж, давайте розбиратися, що варто брати за основу при створенні сайтів різного типу – фреймворк або CMS, яка між ними різниця, а також плюси і мінуси підходів.
Тож почнемо з Content Mangement System. Назва говорить сама за себе CMS – це система управління контентом, вмістом сайту. CMS існує досить велика кількість:
- WordPress;
- Magento;
- Joomla;
- Drupal;
- OpenCart;
- Shopify і т.д
Зазвичай, системи управління контентом (CMS) використовуються при створенні веб-сайтів певного типу. Наприклад, WordPress це система, яка спочатку була розроблена для створення блогів та сайтів-візиток. З поширенням електронної комерції, WordPress отримав спеціалізований модуль - WooCommerce, за допомогою якого можна створювати повноцінні інтернет-магазини. Magento, OpenCart і Shopify, у свою чергу, були спочатку створені для створення інтернет-магазинів. Системи управління контентом мають графічний інтерфейс, що дозволяє створювати веб-сайти без програмування. Отже, встановивши CMS, ви одразу отримуєте готовий веб-сайт із всією необхідною структурою, візуальною частиною та панеллю управління. Якщо потрібно змінити зовнішній вигляд, завжди можна обрати готові шаблони.
Якщо власнику веб-сайту, побудованому на CMS, не вистачає базового функціоналу, він може розширити його шляхом встановлення необхідних модулів - плагінів. Плагіни дозволяють організовувати пошук на вашому сайті, налаштовувати SEO оптимізацію, здійснювати імпорт/експорт товарних позицій, а також багато інших опцій. Наявність панелі адміністрування дозволяє керувати готовим ресурсом.
Переваги використання cms:
- Швидкість встановлення проекту.
- Проста настройка, не вимагає знань програмування.
- Можливість розширення функціоналу - встановлення плагінів.
Мінуси CMS:
По-перше, варто відзначити, що CMS - універсальні рішення, що призводить до перевищення зайвого функціоналу, а отже, великого обсягу системи. Разом із CMS ви отримуєте багато непотрібних вам функцій, що в подальшому впливає на швидкість роботи системи. І подальше встановлення модулів лише погіршує ситуацію. При великих обсягах даних, завантажених в CMS, її швидкість роботи помітно погіршується.
Також більшість CMS налаштовані під конкретні завдання, і якщо таких завдань недостатньо, необхідно встановлювати додаткові модулі. Варто відзначити, що модулі діляться на три типи:
- Безкоштовні;
- Умовно безкоштовні;
- Платні.
Більшість модулів відносяться до так званої "Умовно-безкоштовної" категорії. Це означає, що безкоштовно користувач отримує лише обмежену частину функціоналу. Для того, щоб мати доступ до всього функціоналу, потрібно сплатити.
Що робити, якщо функціонал вашого майбутнього веб-додатка виходить далеко за рамки функціоналу, який пропонує стандартне рішення у вигляді CMS? Можна спробувати знайти підходящі модулі і встановити їх через панель адміністрування. Але можливо зіткнутися з проблемою, що деякі з них просто не сумісні між собою. Крім того, повністю налаштувати модулі під потреби клієнта далеко не завжди є можливим. Тоді не можна уникнути звернення до програмістів, які спеціалізуються на обраній вами CMS. Під час розробки програмісти можуть стикнутися з функціоналом додатка, робота якого суперечить кастомізації, і тоді процес налаштування може забрати багато часу і грошей.
Основні мінуси:
- Великий обсяг;
- Низька швидкість роботи;
- Складність підстройки під конкретні запити клієнтів.
Тому, якщо спочатку передбачається веб-додаток із нестандартним функціоналом, краще зразу розробляти його на фреймворку. Більше про це в наступній частині статті.