Інтернет-магазин. Що обрати: CMS або Framework?
Діставайте аркуш паперу і олівець, кресліть табличку на дві колонки. У шапці для першого стовпчика пишемо заголовок «CMS», а другий стовпчик підпишемо «Framework». Нам знадобиться 5-7 хвилин на те, щоб зрозуміти, що CMS гарний тільки для бюджетних рішень стандартних задач, коли як фреймворк подарує повну свободу дії. Але не злякає нас виставлений рахунок?"
Якщо коротко, то CMS (англ. Content Management System — «система керування вмістом сайту») — це готове рішення для певного типу задач. Такі системи розроблені як для інтернет-магазинів (наприклад, Битрикс і OpenCart), так і для блогів (WordPress, Joomla), для корпоративних сайтів (Drupal) і так далі.
Пропонуючи готовий набір модулів, вони вирішують типові задачі оптимальним чином, оптимальність досягається за рахунок узагальнення задачі. Наприклад, вихідні комплектації PrestaShop для інтернет-магазину одягу і для магазину електроніки будуть практично ідентичні.
Хоча установку сучасних CMS краще довірити професіоналам, ця задача під силу і для новачка — питання лише в розумінні тонкощів налаштування і специфіки обраної системи. Якщо є час і бажання, то чому б і не заощадити?
В той самий час Framework (англ. «каркас») — це не готова програма, а набір інструментів, якими користується програміст при розробці CMS. І якщо CMS оперує такими загальними модулями, як «Новини», «Каталог товарів» або «Кошик», то фреймворк містить базовий інструментарій, як, наприклад, модулі для роботи з базою даних, для керування файлами, модулі безпеки і так далі. Наприклад, система керування для інтернет-магазинів Magento розроблена на базі Zend Framework. Однак більшість популярних CMS написані без використання загальнодоступних фреймворків.
Але головною перевагою фреймворку є стандартизація структури додатку. Це суттєво полегшує як сам процес розробки, так і наступну підтримку проекту: розвитком системи може займатися як її розробник, так й інші спеціалісти, які володіють даним фреймворком. Завдяки єдиній структурі додатки витрат на вивчення проекту і його специфічних допрацювань мінімізовані.
Отже, з одного боку, фреймворк здається більш потужним і гнучким рішенням. Але ціною за зручність буде швидкість розробки, а значить, і бюджет проекту. CMS пропонує легкий шлях, але не приведе це нас у глухий кут? Давайте порахуємо.
Перспективи проекту
Якщо Ви готові автоматизувати процес роботи менеджера з клієнтом, займатися оптимізацією призначених для користувача сценаріїв, ставте фреймворку 10 балів — це буде гра на його домашньому полі. Звичайно, CMS також можна буде змусити працювати так, як Вам хотілось, але чи не доведеться для цього «розібрати» півсайту? Цього нам не гарантують. Але ми все ж можемо поставити CMS 5 балів, враховуючи різноманітність доступних для них модулів. Встановлювати? Вирішувати Вам.
Рухаємося далі: чи є у Вас можливість дочекатися закінчення розробки прототипу системи, або ж в пріоритеті швидке розгортання додатку і запуск продажів? Розробка на фреймворке з нуля програє розгортанню CMS: поки в селі Віларібо фреймворк-розробники будуть уточнювати вимоги з навантаження оптимізації і функціонал кабінету покупця, у Вілабаджо вже будуть щосили святкувати запуск нового проекту на улюбленому CMS.
Терміни не залишають поля для маневру? Ставте 10 балів для CMS, це його коник. Для фреймворка є тільки одне спасіння — використання готового CMS із базовим функціоналом (наприклад, як Magento або Evora у трьох комплектаціях) для швидкого запуску, з подальшим пропрацюванням деталей. Якщо Ваша ситуація все ж не настільки критична, можете поставити в стовпчик фреймворка 5 балів. Втішний приз.
Швидкість роботи і розширюваність
Вузьким місцем для багатьох систем (як cеред популярних CMS, так і серед спеціальних розробок) є оптимізація під високі навантаження. Часто потрібно вручну пришвидшувати роботу скриптів, впроваджуючи спеціальні алгоритми або переписуючи окремі модулі наново. Чи готовий Ваш CMS до таких операцій? Відповідь не дуже очевидна, як це описано в рекламних проспектах. Фреймворки спочатку орієнтовані на спеціальні рішення, а отже, їх налаштування буде більш очевидним. Якщо Ви плануєте высокі навантаження на свій проект, ставте 10 балів для фреймворка. І ще 10 балів, якщо Ви плануєте налаштовувати імпорт/експорт з нестандартних джерел даних, або ж для даних великого обсягу.
Зовнішній вид і SEO
А як складаються справи із загальнодоступною частиною і пошуковою оптимізацією? Тут багато CMS зможуть вийти вперед. Велика кількість готових тем оформлення й відносно проста процедура внесення змін у них дозволяють домогтися задовільних результатів зовнішнього виду сайту відносно малими витратами. Якщо Ви не готові витрачати час і бюджет на унікальний дизайн, ставте 10 балів для CMS. Фреймворки до таких вимог не готові.
Однак питання пошукової оптимізації не здається настільки очевидним. Якщо справа в основних мета-тегах, то більшість CMS запропонує необхідний функціонал для їх редагування. Те ж стосується і атрибутів тегів (alt, title і далі.). CMS заслужено отримує 10 балів. Однак для впровадження тих же тегів Open Graph знадобиться писати спеціальне розширення. Якщо Ви плануєте суттєво розширити функціонал роботи з мікророзміткою або спеціальними тегами, можете відмітити 5 балів для фреймворка — не пожалкуєте.
Рахуємо суму
Підводимо риску, і рахуємо суму з кожного стовпчика. Нехай ми не врахували, що для магазину одягу непогано було б групувати фотографії за кольором для одного і того ж товару, а при торгівлі автозапчастинами скоріш за все знадобиться підключати зовнішні каталоги. Кожний проект унікальний, але такий метод дозволяє швидко зрозуміти до чого слід придивитися: стандартні проекти на CMS будуть дешевше, але розробка на фреймворк дозволить в повній мірі реалізувати необхідний функціонал. Задача лише в тому, щоб правильно поставити задачу.