Розробка сайту на cms або framework
CMS схожа на набір конструктора Лего: красива коробка з різнокольоровими детальками, з яких можна зібрати що завгодно. В рамках цієї коробки, звичайно. І якщо у вас є Лего з хоббитами, то в межах Середзем'я ви - цар і бог.
Але населити свій світ інопланетянами або піратами з тієї ж коробки з хоббитами ви ніяк не зможете - їх там просто немає, не поклали! Цим CMS і засмучує.
CMS (Content Management System, система управління контентом) - це софт, який використовується для створення, управління і редагування вмісту веб-сайту. І ось уявіть, що цей софт - ваш вже куплений і зібраний конструктор з тими ж хоббитами, Зіркою Смерті або середньовічним кораблем.

А ви захотіли підключити функцію, якої в вашому конструкторі немає. Побудувати там Хогвартс, населити його черепашками-ніндзя, поні або роботами! І щоб дати волю вашої фантазії, доведеться докупити нових персонажів або навіть придбати ще один повноцінний набір конструктора.
Детальки від Лего, як і фломастери, - на смак і колір різні. Тобто ви можете зустріти як узкооріентірованние системи (спеціально під блоги, онлайн-магазини, форуми), так і універсальні. Деякі можна використовувати безкоштовно, а за деякі доведеться заплатити. Більшість CMS пишеться на мові PHP, тому на виході ми отримуємо вихідний код, в який можна внести зміни, правда для цього потрібні зусилля розробників.
А ось і невеликий список найбільш популярних систем:

- Joomla - часто оновлюється, надається безкоштовно, досить проста для розробки і використання. Також вона супроводжується великою кількістю готових модулів, правда, досить низької якості.
- Drupal - універсальне середовище для розробки сайтів будь-яких форм і розмірів, безкоштовна, підходить для умілих фахівців.
- MODx - гнучка система, ефективна, безкоштовна, але теж вимагає певних навичок і досвіду.
- 1C Бітрікс - масштабна CMS від 1С, надається на платній основі і в різних модифікаціях. Бітрікс обіцяє інтеграцію з 1С, але потрібно підготуватися до того, що не завжди це буде легко, просто і бюджетно. Краще відразу зверніться до розробників, щоб порівняти структури і версії 1С на сайті, в каталогах і взагалі скрізь. Тому що, коли вони відрізняються, то швидше за все, доведеться вдатися до нештатної інтеграції. І якщо з коробочки інтеграцією ризики затягнути терміни і вийти з бюджету йдуть до нуля, то нештатна ситуація може витягнути порядно і нервів, і коштів, і часу. При цьому коробковий варіант спрацьовує, як правило, для одного з трьох випадків.
- WordPress - безкоштовно розповсюджується середа з відкритим вихідним кодом і вбудованою системою численних плагінів і тем (платних і безкоштовних).
Новий сайт може бути для вас черговою іграшкою або, навпаки, життєво важливим проектом. Але незалежно від його ролі у вашому житті, намагайтеся приймати зважене рішення щодо веб-розробки на CMS. Просто порівняйте всі за і проти, які ми знайшли:
- Швидкість. Якщо вам потрібно стандартне рішення, то шаблон з базовим функціоналом можна створити і за 15 хвилин.
- Простота. Робота з CMS вимагає від програміста мінімального досвіду, тому є небезпека - отримати на виході продукт безглуздий і дає збої. Адже хто знає, там справжній професіонал працює або це студент з самовчителем під пахвою вирішив потренуватися?
- Схожість. Функціонал різних CMS перегукується один з одним, тому, розібравшись в одній системі, простіше буде працювати і в інших.
- Доступність. Завдяки швидкості створення шаблону, результат виходить порівняно дешевим.

- Обмеженість. Хоч у кожної CMS є широкий функціонал, більшість систем якісно вирішує дуже обмежене коло завдань. Найчастіше доводиться шукати компроміси і погоджуватися з тим, що всі ваші потреби не вийде задовольнити.
- Шаблонність. Як ми і говорили, CMS - це один конкретний набір Лего, заточений під певну тематику. А якщо знадобиться встановити щось нове, доведеться знову залучати розробника. Практика показує, що навіть невеликі правки можуть вирости в повнорозмірну інтеграцію. Воно вам треба?
- «Брудний» Код. Деякі CMS займаються самодіяльністю, автоматично генеруючи рядки непотрібного коду. А щоб його почистити, буде потрібно немало часу. І звичайно, ніхто не захоче цим займатися.
«Натягуючи» свій сайт на CMS, ви прив'язується до кінцевої структурі, яка повинна підходити вашому контенту, цілям і потребам бізнесу.
Ця модель може привести вас до великих звершень, якщо ви перфекціоніст 80 рівня і робите все послідовно, логічно, при цьому залишаючи всіх задоволеними ... Але утопія триватиме рівно до тих пір, поки директор або маркетолог не запитав щось унікальне. І тут ми хочемо поговорити про Framework.
Framework ( «каркас» з англійської) - це програмна платформа, представлена набором бібліотек. І якщо CMS схожа на Лего, то framework можна порівняти з 3D принтером - друкуй що завгодно, хоч той же конструктор!
Які типи Framework бувають?
Треба відзначити, що існує безліч видів framework для різних мов - Java, Ruby, Python, Groovy і т.д. Нас же цікавлять PHP «каркаси». Одні з найпопулярніших в нашій команді це:
- Yii - безкоштовний софт з великою кількістю бібліотек, допомагає дуже серйозно скоротити час розробки, тому використовується для створення великих веб-додатків.
- Zend Framework - також вільно розповсюджуваний продукт, дозволяє використовувати різні СУБД, використовує принцип «слабкого зв'язування» з мінімальними залежностями між частинами проекту, що дозволяє їх легко коригувати окремо. Zend Framework 2 може похвалитися дуже якісним вихідним кодом аж до «академічності», масштабованість, високим рівнем абстракції.
- Laravel - і знову безкоштовний framework, обіцяє позбавити від «спагетті» коду, по суті скомпільовано з хороших рішень інших «каркасів», супроводжується якісною і лаконічною документацією з прикладами.
За або проти Framework?
Звичайно, і тут є різнополюсні доводи. Ми наводимо, ну а ви зважуєте.
- Високий ККД. Швидше «каркаса» літає тільки чистий PHP, який може і не забезпечувати належного рівня безпеки, тому framework в цьому сенсі є оптимальним.
- Кастомізація. Якщо у випадку з CMS ми збираємо конструктор в передбачувану форму і відійти від неї дуже складно, то з framework у вас є можливість творити унікальності! Замовник може запитати практично що завгодно, і розробники з задоволенням приймуть виклик.
- Мотивація. Ми поспрашивали у своїх прогерія, і вони одноголосно сказали, що працювати з «каркасами» цікавіше. А чим більше розробнику подобається проект, тим вище рівень виконання.
- Безпека. У процесі складання сайту з framework простіше знайти і усунути можливі дірки в безпеці. Наприклад, за рахунок використання ORM (Object-relational mapping, технологія об'єктно-реляційного відображення), яка являє собою прошарок між додатком і базою даних, можна знизити до мінімуму появу SQL-ін'єкцій.
- Складність. Для повноцінної роботи з «каркасами» потрібен хороший досвід, кілька виконаних проектів і набитих гуль за плечима. А знайти фахівця відповідного рівня буває ох як непросто.
- Бюджет. Так, кастомними рішення дорожче, ніж готовий варіант з коробочки. Вам вирішувати, чи варто воно того.
Як мені краще застосувати ці CMS і Framework?
А на солодке пропонуємо наш невеликий чекліст. Він допоможе вам визначити правильний напрямок при розробці наступного сайту.
Для яких проектів краще іспользоватьCMS?
- Готове рішення з типовим функціоналом.
- Сайт візитка.
- Інтернет-магазин з середньою відвідуваністю.
- Сайт для малого і середнього бізнесу.
Для яких проектів краще використовувати Framework?
- Нетиповий або унікальне рішення.
- Нешаблонне верстка.
- Сайт з високою відвідуваністю і навантаженням (highload).
- Активно розвивається, розширюваний і / або стихійно змінюється під вимоги ринку проект.
При певних обставинах CMS може бути паличкою-виручалочкою для вашого сайту, але не варто вибирати цю систему тільки з міркувань бюджету. Оскільки, якщо ви хочете підтримати свій якісний продукт ресурсом такого ж високого рівня, то коробкового рішення може і не вистачити. Тоді варто подивитися в бік Framework.
Постарайтеся знайти баланс між витратами на розробку та обслуговування сайту, цілями свого проекту, необхідністю продумувати унікальне або шаблонне рішення і бажаним рівнем гнучкості архітектури сайту. Так ви зможете прийти до оптимального рішення.
Поділіться, чи будете ви пользоватьсяCMS / Framework на своєму наступному сайті і чим користуєтеся зараз?