CMS vs. Framework (фреймворк) в чем разница?


13:51, 21/03/2018

Если сравнить простым и понятным языком CMS и Framework, то можно описать их примерно так:

CMS — это полуфабрикат. Установили, настроили, получили результат.

Framework — это набор материалов. Как вы его будете использовать — дело ваше.

Разница между ними начинает проявляться в процессе работы, если быть точнее в трудоёмкости реализации поставленных задач.

В CMS стандартные цели реализуются достаточно быстро и дёшево, но любой полуфабрикат начинает "коматозить" при попытке адаптации под специфические задачи. Не важно, бесплатная ли CMS или коммерческая, все этого по-сути одного поля ягоды. Важно понять, что у каждой есть т.н. "предел гибкости".
Предел гибкости — это потенциал к развитию вашего сайта(или web-приложения) нативными средствами CMS не прибегая к услугам программиста. Грубо-говоря, скачали модуль, установили = результат. Либо настроили модуль "из коробки" = результат.
У каждой CMS есть предел гибкости, при достижении которого надо либо изменять необходимый функционал, либо разрабатывать такой функционал с нуля. В разных системах такой подход реализуется либо возможностью разработать собственный модуль, либо применить т.н. hook к существующему.

С фреймворками дела несколько иначе, "предел гибкости" в них стремится к бесконечности и ограничен лишь опытом человека работающего с ним.
Фреймворк можно сравнить с готовым набором наработок, которыми являются классы и их методы, вместо модулей в них существует возможность интеграции сторонних классов, либо расширения существующих, что как раз-таки и обеспечивает эту самую запредельную гибкость.
Пример: у вас есть микро фреймворк Flask, который из коробки идет без поддержки ORM, набрали в консоли pip install Flask-SQLAlchemy, подключили Flask-SQLAlchemy к вашему приложению и получили удобный инструмент работы с базами данных.

Почему одни склоняются к выбору CMS, а другие в работе с фреймворками?

Дело в том, что и первые и вторые имеют право на существование и все опять-таки идет от поставленной задачи. Вряд ли есть смысл использовать Django для разработки простого блога, с этой задай гораздо лучше справится Wordpress. Точнее использовав WP на начальном этапе вы гораздо быстрее получите блог и вам не придётся изучать для этого язык программирования.

В сухом остатке: CMS — это в большинстве случаев маркетинг, хотя встречаются и исключения, маркетинг направленный на то, что бы "подсадить" потребителя на свой программный продукт и заставить играть по своим правилам. Фреймворк предоставляет больше свободы, но требует больше усилий и времени как на изучение языка на котором он написан, так и на процесс разработки.



Комментарии