Разработка веб-сайта, который должен решать какие-то задачи и приносить пользу может вестись в двух форматах:
-
Написание всего функционала с нуля.
-
Использование системы управления контентом (она же «CMS», она же «Движок»).
Два подхода принципиально различны. Попробуем разобраться в преимуществах и недостатках каждого:
Написание всего функционала с нуля.
Описание подхода:
команда разработчиков на определённом языке веб-программирования пишет с чистого листа код сайта. Все элементы разрабатываются с нуля. Используется один или несколько фреймворков, возможно, используются некие заготовки или готовые библиотеки кода.
Плюсы:
-
Сайт не имеет никакого лишнего функционала, только то, что сказал Заказчик и то, о чём вспомнил по пути разработчик.
-
Сайт весит меньше, иногда работает быстрее.
-
Все интерфейсы админки (если она вообще есть) максимально кастомизированы, просты и легки.
-
Нет дополнительных затрат на лицензию.
Минусы:
-
Сайт не стандартизирован. Используемые командой разработки языки программирования, алгоритмы, стили кодирования чаще всего так или иначе не соответствуют принятым стандартам, что вызовет в будущем проблемы с совместимостью, если нужна будет интеграция с другими системами.
-
Расширение команды или её полная смена потребует серьёзных затрат на поиск специалистов, которые работают на таком же языке программирования, используют те же библиотеки, на которых написан сайт или способны разобраться в чужом коде, не ломая велосипед.
-
Отсутствие необходимого функционала, когда он нужен. При разработке с нуля на первом этапе Заказчик и разработчик не вспомнят о некоторых вещах, которые необходимы, например, для поисковой оптимизации. Когда этот вопрос загорится, функционала для решения задачи на сайте не будет, нужно дописывать его и, опять же, с нуля.
-
Проблемы с безопасностью. Как правило, безопасность сайта, написанного с нуля, оставляет желать лучшего (конечно же, если вместе с разработчиками не работал отдельно специалист по безопасности, который указывал ребятам на дыры и заставлял их латать).
Использование системы управления контентом
Описание подхода: разработка сайта ведётся с использованием готовой системы управления контентом, которая предполагает строго определённую схему разработки.
Плюсы:
-
Сайт стандартизирован. Любая, даже бесплатная CMS, заставляет разработчика придерживаться определённых правил, ограничивает его полёт фантазии.
-
Наличие всего нужного функционала «в коробке». CMS система наполнена большим количеством полезного функционала, о котором вы можете и не подумать при разработке, но когда он станет необходим, вы удивитесь, что разработчики CMS уже подумали за вас.
-
Есть возможность быстрого расширения функционала. Как правило, современные CMS имеют в распоряжении огромное количество дополнительных модулей на все случаи жизни. Часто добавление нового функционала заключается в установке или адаптации уже имеющегося модуля, что в разы дешевле и быстрее, чем делать всё с нуля.
-
Заменяемость команды. При завершении сотрудничества с одной командой разработки можно достаточно быстро найти другую команду, которая работает с данной CMS, имеет достаточный опыт и знания для поддержки и развития вашего ресурса. Обычно на официальных сайтах CMS даже есть списки партнёров-разработчиков, к которым можно смело обращаться.
-
Безопасность сайта. Системы управления контентом (особенно коммерческие, то есть платные) регулярно обновляются, как в плане безопасности, так и в плане использования последних современных технологий.
Минусы:
-
Тяжесть функционала. Некоторые CMS настолько стараются предвосхитить желания заказчика или разработчика, что уже в базовой поставке имеют огромный ворох функционала, необходимость которого сомнительна. Это всё затрудняет освоение админки, может приводить к тому, что сайт медленно работает (хотя в 90% случаев скорость работы сайта обратно-пропорциональна отсутствию кривизны в руках разработчика).
-
Стоимость. Есть некоторые CMS, за которые нужно платить деньги. Это дополнительная статья расхода.
-
Ограничение гибкости. Иногда необходимо решать такие задачи, которые требуют грандиозных костылей. В случае с использованием CMS, есть вероятность и не решить такие задачи вовсе, так как, например, взять и невозбранно распилить ядро системы уважающая себя CMS попросту не даст.