CMS
CMS – система управления контентом. Распространяется на бесплатной или платной основе.
Подойдет для проектов:
- с небольшой нагрузкой;
- без особенного, специфического функционала;
- с ограниченным (небольшим) бюджетом;
- которые необходимо быстро опубликовать (сжатые сроки реализации);
- с понятным (известным) управлением.
Плюсы
- Нужно создать только внешнюю сторону сайта и «натянуть» ее на движок;
- можно сделать сайт даже без знания программирования;
- легко настраивать и администрировать, административная панель знакома большинству пользователей (если речь о популярных CMS: WordPress, Joomla и т.д.);
- CMS включает в себя весь основной функционал;
- функционал можно расширить за счет большого количества плагинов;
- есть хорошая и понятная документация (опять же, для популярных CMS);
- имеется API, который можно использовать для разработки и интеграции с другими сервисами.
Минусы
- Ограниченный набор функций;
- небольшая техническая поддержка;
- изначально низкая производительность, т.к. в движке заложено много возможностей (которые вы даже не используете);
- уязвимость, популярные CMS проще взломать (и их часто взламывают).
Фреймворк
Фреймворк – это набор элементов, готовая структура, написанная на определенном языке программирования. Фреймворк дает каркас для будущего проекта.
Подойдет для проектов:
- с высокой нагрузкой;
- которые со временем меняются (под требования и тренды);
- специфических, которые не вписываются в рамки стандартных CMS;
- где есть четкое понимание задач и того, что должно получиться в итоге.
Плюсы
- Есть готовые элементы, которые можно использовать при разработке;
- высокая производительность;
- безопасность;
- отлаженность кода;
- гибкие решения, разработка ведется исходя из поставленных целей, можно найти решения для нестандартных задач;
- возможность использовать библиотеки и другие готовые решения.
Минусы
- Нужны опытные разработчики, разработка сложнее, чем при использовании CMS;
- административную часть нужно создавать самостоятельно;
- увеличивается время разработки, т.к. она сложнее;
- увеличивается и стоимость проекта;
- дороже поддержка сайта, сложнее найти тех, кто сможет поддерживать и администрировать.
Собственная разработка
Собственная разработка – это создание сайта с нуля. Сайт пишется, например, на чистом HTML или PHP. Весь функционал пишется с нуля.
Подойдет для проектов:
- нетипичных, новых, уникальных, которых еще нет в сети;
- без жесткого ограничения времени на разработку (и финансовых вложений);
- с оригинальным и сложным функционалом, нигде до этого не представленным.
Плюсы
- Можно создать проект с нуля строго под свои задачи;
- функциональность сайта напрямую зависит от поставленных целей, можно реализовать все, что душе угодно;
- полностью контролируется разработка;
- высокая производительность;
- в коде будет только то, что нужно для проекта.
Минусы
- Нужно полностью разработать сайт с нуля, что затратно по времени и ресурсам;
- разработчикам со стороны сложнее разобраться в проекте; тяжелее найти человека, который будет поддерживать сайт, если основной разработчик уйдет;
- необходимо найти квалифицированных специалистов, которые реализуют все задуманные специфические задачи;
- большой бюджет.
Как видите, каждый из этих путей разработки подходит для определенных проектов, и при выборе нужно определиться в первую очередь с тем, что вы хотите получить в итоге (а также за какое время и стоимость). После этого сделать выбор будет гораздо проще.