Как делают сайты

Одним из важных составляющих сайта является его программная часть, от которой зависят дальнейшая его жизнь и полноценное развитие. В этой статье мы рассмотрим основные технические инструменты, применяемые для разработки сайта.

Для создания сайта существует несколько подходов:

Рассмотрим каждый подход подробнее.

Сайт на CMS

Системы управления контентом очень популярны, как у новичков, так и у продвинутых пользователей, потому что позволяют на порядок сократить затраты на разработку. Они представляют собой готовое решение для работы с контентом сайта.

Создать сайт на CMS может показаться не таким простым занятием, особенно если нужен уникальный дизайн и требуются какие-либо специфичные функции. Но зато дальнейшее сопровождение сайта, как правило, не требует серьезной подготовки. Работу в CMS часто сравнивают с работой в Microsoft Word, на деле это не совсем так, потому что у них разная направленность, разве что визуальное редактирование контента имеет некоторые сходства.

Среди примеров можно назвать тройку лидеров — WordPress, Joomla, Drupal, а также феномен российского сегмента интернета — 1C Bitrix.

CMS бывают платные и бесплатные. Но не стоит особо руководствоваться этим критерием. Бесплатные CMS порой могут оказаться не менее дорогим решением в разработке, доработке и поддержке.

Плюсы:

Минусы CMS:

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

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

Какие сайты можно сделать:

Кто делает сайты на CMS:

CMS подойдет чаще всего для несложного сайта, которому хватает встроенных возможностей, и который не претендует на высокую нагрузку (посещаемость).

Кстати, многие изначально считают, что их сайт не будет иметь большого наплыва посетителей. Наверное, потому, что не верят в него? Ведь если исходить из того, что вам сейчас хватит и маломощного сайта, а потом когда-нибудь, когда нагрузка возрастёт, переделаете сайт правильно, то здесь справедливы 2 замечания. Первое: к тому времени сайт уже обрастет дополнительной функциональностью, переделать его с нуля будет весьма дорого и, скорее всего, вы будете склонны к тому, чтобы продолжать «реанимировать покойника». Второе заключается в том, что если вы всё же решитесь на новый сайт, то это потребует времени, в течение которого вы, вероятно, будете нести убытки и терять репутацию.

Сайт на фреймворке

Фреймворк — это инструмент, который предоставляет набор функций и проектную структуру для создания сайта или веб-приложения.

С помощью фреймворка можно реализовать любую функциональность для вашего сайта, даже самую нестандартную. Затраты на такую разработку, как правило, выше, чем при создании сайта на CMS. Но здесь стоит учесть, что если нестандартную функциональность вы планируете делать на CMS, то затраты могут сравняться или даже быть выше, чем у варианта с фреймворком. Простой сайт с индивидуальным дизайном на фреймворке в руках профессионала во многих случаях будет не дороже аналогичного сайта на CMS. Шаблонного дизайна здесь, конечно, не будет, но нужен ли он вам?

Работать с фреймворками могут далеко не все веб-мастера, поскольку для этого требуется приличный опыт в программировании.

Примеры популярных фреймворков: Laravel (PHP), Django (Python) и Ruby on Rails (Ruby).

Плюсы:

Минусы фреймворков:

Какие сайты можно сделать:

Да-да, просты сайты тоже делают (в т.ч. сайты-визитки, корпоративные сайты, блоги). Считается, что стандартные (типовые) сайты не стоит делать на фреймворке. Однако, это применимо лишь в случае, если разработчик не владеет фреймворком. Профессионалы же смогут легко создать и простой сайт на фреймворке, а в сторону CMS даже не посмотрят.

Кто делает сайты на фреймворках:

В большинстве случаев, сайт на фреймворке — это серьёзное, надёжное решение для бизнеса любого масштаба, которому важна стабильная работа сайта.

Статичный сайт

Такие веб-сайты основаны на заранее сформированных HTML-страницах. Это ключевое отличие от других способов, при которых страницы сайта формируются динамически в момент обращения к ним. Они быстро загружаются и легко индексируются поисковыми системами, но обновление контента может быть несколько сложным.

Часто для создания статичного сайта используют генераторы статичных сайтов (специальные фреймворки). Например: Hugo, Jekyll, Next.js, Nuxt.js, VuePress, JigSaw и т.п.

Плюсы:

Минусы:

Какие статичные сайты можно сделать:

Кто делает статичные сайты:

Статичный сайт хорошо подойдет для проектов, которым важна скорость работы, но при этом содержимое сайта меняется не слишком часто. Такой сайт и Хабраэффект выдерживает, и DDos-атаке не поддаётся.

Конструктор сайтов

Эти инструменты позволяют людям без технических навыков создавать веб-сайты путем перетаскивания элементов на странице в онлайн-сервисе. Такие решения называют «no-code» (или «low-code»), из-за отсутствия необходимости программировать.

Примеры конструкторов: Tilda, Nethouse, Setup, Wix.

Плюсы:

Минусы конструкторов сайтов:

Какие сайты делают на конструкторах:

Кто делает сайты на конструкторах:

С одной стороны, конструкторы сайтов предлагают легкое, доступное решение. С другой стороны, сайт на конструкторе несет в себе огромный риск, который следует учитывать с самого начала. Сайт на конструкторе можно сравнить со страницей компании в социальной сети. Вы можете ее использовать и продвигать, но она не ваша, а той компании, которая владеет соцсетью. Так же и с сайтом: использовать его можете, а вот владеете им не в полной мере. Например, если вы регистрировали домен напрямую через регистратора доменов, то домен – ваш, и вы сможете при необходимости его перенести на новый хостинг и создать там новый сайт. Но если и домен вы получили через конструктор сайтов, то можете смело считать, что у вас нет сайта во владении.

Сайт с нуля кодом

Это подход, при котором сайт создаётся полностью с нуля с использованием языков программирования (JavaScript, PHP, Python, Go и пр.) и разметки (HTML, CSS). Этот метод требует значительных технических навыков и времени.

Если нужно сделать что-то посложнее формы обратной связи, то фактически сначала придётся создать свой фреймворк, а потом уже перейти к разработке сайта.

Этот способ выбирают недальновидные разработчики и новички, которые отвергают готовые решения в виде фреймворков. Рано или поздно некоторые из них упираются в свои возможности и сдаются — начинают подключать библиотеки и фреймворки, чтобы упростить свою работу.

Создание своего фреймворка требует много времени, знаний и опыта. Зачастую эта деятельность бессмысленна с точки зрения достижения результата в виду того, что нужно «переизобретать велосипед» для часто используемых инструментов: работа с БД, роутинг, сессии, авторизация, шаблонизаторы, валидация данных, управление ошибками, забота о безопасности, управление файлами, кэшем, локализацией, уведомлениями, событиями, очередями и т.п. Всё это уже есть в готовом надёжном фреймворке.

Если вашему сайту требуется какая-либо специфичная функциональность, то лучше посмотреть на фреймворки (или, в крайнем случае, CMS) вместо этого интересного, увлекательного и в некоторой мере познавательного, но неэффективного способа создания сайтов.

Что в итоге?

Какой подход в создании сайта выбрать, в конечном счете зависит от потребностей и целей сайта.

Если сайт очень простой или у вас нет высоких ожиданий от сайта, а также если вы готовы мириться с тем, что ваш сайт не будет полноценно вашим, можно остановиться на конструкторе сайтов.

Если сайт посложнее, то стоит выбрать разработку на фреймворке или создание сайта на CMS, принимая во внимание все нюансы.

А если у вас нет полного технического понимания в работе сайта, то выбор технологий для сайта лучше доверить профессионалам, а не полагаться на свою интуицию.