Как делают сайты
Одним из важных составляющих сайта является его программная часть, от которой зависят дальнейшая его жизнь и полноценное развитие. В этой статье мы рассмотрим основные технические инструменты, применяемые для разработки сайта.
Для создания сайта существует несколько подходов:
- CMS — система управления контентом, с помощью которой можно создать сайт и управлять им с минимальными техническими знаниями,
- Фреймворк — профессиональный набор инструментов, упрощающих разработку,
- Статичный сайт — подход, при котором весь контент сайта формируется в виде заранее сформированных HTML-страниц,
- Конструктор сайтов — онлайн-сервис, который позволяет создать сайт без технических навыков,
- С нуля кодом — пожалуй, самый суровый способ создания сайта.
Рассмотрим каждый подход подробнее.
Сайт на CMS
Системы управления контентом очень популярны, как у новичков, так и у продвинутых пользователей, потому что позволяют на порядок сократить затраты на разработку. Они представляют собой готовое решение для работы с контентом сайта.
Создать сайт на CMS может показаться не таким простым занятием, особенно если нужен уникальный дизайн и требуются какие-либо специфичные функции. Но зато дальнейшее сопровождение сайта, как правило, не требует серьезной подготовки. Работу в CMS часто сравнивают с работой в Microsoft Word, на деле это не совсем так, потому что у них разная направленность, разве что визуальное редактирование контента имеет некоторые сходства.
Среди примеров можно назвать тройку лидеров — WordPress, Joomla, Drupal, а также феномен российского сегмента интернета — 1C Bitrix.
CMS бывают платные и бесплатные. Но не стоит особо руководствоваться этим критерием. Бесплатные CMS порой могут оказаться не менее дорогим решением в разработке, доработке и поддержке.
Плюсы:
- Высокая скорость создания сайта. Действительно, создать шаблонный сайт просто, но если будет нужен дизайн и особая функциональность, скорость разработки резко упадёт.
- Низкая стоимость. Иллюзорный плюс, так как качественный сайт все равно потребует индивидуального дизайна и разработку необходимых функций, а это приведет к неминуемому удорожанию.
- Готовый дизайн. Здесь стоит отметить, что готовый дизайн — это шаблонный дизайн. Но на самом деле шаблонный дизайн означает шаблонный сайт, который никому не нужен (ни владельцу, ни клиентам).
Минусы CMS:
- Медленные. Как ни крути, а готовое универсальное решение не может быть производительным, потому что в нем содержится очень много функций, излишних для конкретного применения. Как универсальная плёнка на смартфон: вроде бы и подходит для всех моделей, но сидит неаккуратно.
- Небезопасные. Хотя производители CMS и уделяют внимание безопасности, но большая функциональность, часто дополняемая различными расширениями и плагинами, неминуемо создаёт почву для уязвимостей. Популярные системы хорошо изучены хакерами, а сайт на CMS может стать мишенью для злоумышленников (и даже конкурентов). Конечно, известные уязвимости постепенно закрываются, но на деле редко можно встретить своевременное обновление версий CMS на сайтах. Некоторые CMS могут обновляться, как говорится, «из коробки», но часто с обновлениями «прилетают» и поломки сайта.
- Неоптимальные. Широкая функциональность в купе с массовой востребованностью приводят порой к неоптимальным решениям. Например, узким местом может стать работа с базой данных, схема которой навязана производителем CMS, и спроектировать ее правильно, увы, не получится. Она не учитывает специфику данных вашего сайта. Ни о какой нормализации здесь и говорить не приходится.
- Нефункциональные. Звучит парадоксально, но обширные возможности, которых с избытком, далеко не всегда покрывают нужды сайта. Для этого приходится дорабатывать CMS с помощью расширений. Иногда можно найти готовое стороннее расширение (плагин), но никто не обещает, что оно будет совместимо и сколь-либо безопасно. Иногда приходится разрабатывать расширения с нуля, что приводит к значительному удорожанию разработки на, казалось бы, технологии, призванной как раз сократить расходы. Не стоит забывать и о том, что большое количество сторонних расширений влияет на скорость работы CMS. Считается, что если для вашего проекта на CMS требуется более 5-7 дополнительных расширений, то вы наверняка ошиблись с выбором инструмента.
На самом деле, минусов можно назвать больше, но остановимся только на перечисленных выше.
Весьма критичным моментом может стать необходимость адаптироваться под возможности и ограничения CMS при разработке проекта, а это в свою очередь ухудшает конечный результат. Для сравнения, сайт на фреймворке разрабатывается в обратном направлении: под ваши нужды, а не под ограничения платформы.
Какие сайты можно сделать:
- простой сайт или сайт-визитка (в т.ч. корпоративный сайт),
- блог,
- интернет-магазин (если CMS поддерживает это «из коробки»).
Кто делает сайты на CMS:
- рекламные агентства,
- студии веб-дизайна,
- новички.
CMS подойдет чаще всего для несложного сайта, которому хватает встроенных возможностей, и который не претендует на высокую нагрузку (посещаемость).
Кстати, многие изначально считают, что их сайт не будет иметь большого наплыва посетителей. Наверное, потому, что не верят в него? Ведь если исходить из того, что вам сейчас хватит и маломощного сайта, а потом когда-нибудь, когда нагрузка возрастёт, переделаете сайт правильно, то здесь справедливы 2 замечания. Первое: к тому времени сайт уже обрастет дополнительной функциональностью, переделать его с нуля будет весьма дорого и, скорее всего, вы будете склонны к тому, чтобы продолжать «реанимировать покойника». Второе заключается в том, что если вы всё же решитесь на новый сайт, то это потребует времени, в течение которого вы, вероятно, будете нести убытки и терять репутацию.
Сайт на фреймворке
Фреймворк — это инструмент, который предоставляет набор функций и проектную структуру для создания сайта или веб-приложения.
С помощью фреймворка можно реализовать любую функциональность для вашего сайта, даже самую нестандартную. Затраты на такую разработку, как правило, выше, чем при создании сайта на CMS. Но здесь стоит учесть, что если нестандартную функциональность вы планируете делать на CMS, то затраты могут сравняться или даже быть выше, чем у варианта с фреймворком. Простой сайт с индивидуальным дизайном на фреймворке в руках профессионала во многих случаях будет не дороже аналогичного сайта на CMS. Шаблонного дизайна здесь, конечно, не будет, но нужен ли он вам?
Работать с фреймворками могут далеко не все веб-мастера, поскольку для этого требуется приличный опыт в программировании.
Примеры популярных фреймворков: Laravel (PHP), Django (Python) и Ruby on Rails (Ruby).
Плюсы:
- Нет ограничений на структуру данных. Можно грамотно спроектировать БД под любой проект.
- Нет ограничений на функциональность. Можно реализовать любую задумку.
- Высокая производительность конечного продукта. Можно выдержать высокие нагрузки.
- Хорошая расширяемость. По мере роста проекта можно дорабатывать функциональность под новые потребности аудитории и бизнеса.
Минусы фреймворков:
- Требуются серьёзные знания и опыт. Это явно не тот инструмент, который выбирают начинающие веб-мастера.
- Отсутствие встроенной панели управления. Всё же, профессионалы редко оставляют проекты без админки, поэтому управлять сайтом на фреймворке так же легко, как и сайтом на CMS. Визуальный редактор, в конце концов, ещё никто не отменял :)
Какие сайты можно сделать:
- любой нестандартный проект,
- бэкенд для мобильного приложения,
- интернет-магазин или даже целый маркетплейс,
- простые сайты.
Да-да, просты сайты тоже делают (в т.ч. сайты-визитки, корпоративные сайты, блоги). Считается, что стандартные (типовые) сайты не стоит делать на фреймворке. Однако, это применимо лишь в случае, если разработчик не владеет фреймворком. Профессионалы же смогут легко создать и простой сайт на фреймворке, а в сторону CMS даже не посмотрят.
Кто делает сайты на фреймворках:
- профессиональные разработчики.
В большинстве случаев, сайт на фреймворке — это серьёзное, надёжное решение для бизнеса любого масштаба, которому важна стабильная работа сайта.
Статичный сайт
Такие веб-сайты основаны на заранее сформированных HTML-страницах. Это ключевое отличие от других способов, при которых страницы сайта формируются динамически в момент обращения к ним. Они быстро загружаются и легко индексируются поисковыми системами, но обновление контента может быть несколько сложным.
Часто для создания статичного сайта используют генераторы статичных сайтов (специальные фреймворки). Например: Hugo, Jekyll, Next.js, Nuxt.js, VuePress, JigSaw и т.п.
Плюсы:
- Наивысшая производительность. Статичный сайт выдержит любой трафик даже на слабом хостинге, потому что не создает практически никакой нагрузки на сервер.
- Абсолютная безопасность. Программное исполнение кода происходит только на этапе сборки сайта, поэтому во время использования сайта сервер только отдает статичный контент.
- Простота хостинга. Статичный сайт очень нетребователен к ресурсам сервера, его легко развернуть практически на любом хостинге.
- SEO-дружелюбность. Поисковые системы любят, когда страницы сайта отдаются мгновенно, за счет чего лучше индексируют и доверяют таким сайтам. Конечно, качество контента на сайте всё равно играет большую роль, но этот плюс всё же очевиден.
Минусы:
- Нет динамического формирования контента. Тем не менее, можно реализовать и форму обратной связи, и даже корзину с приёмом оплаты. В этом случае, конечно, нужно дополнить статичный сайт другими инструментами.
- Сложнее редактировать и добавлять контент. Действительно, в отличие от сайтов с динамически формируемым контентом, где зачастую присутствует панель управления, через которую легко обновлять контент сайта, статические сайты редактируются в текстовых файлах (часто в формате Markdown) и им требуется последующая сборка. Но и этот минус можно устранить, дополнив статичный сайт админкой, где всё так же можно отредактировать контент сайта, а процесс сборки запустится автоматически после внесения изменений.
Какие статичные сайты можно сделать:
- информационный сайт,
- документация,
- блог,
- лендинг,
- сайт-визитка.
Кто делает статичные сайты:
- профессиональные разработчики.
Статичный сайт хорошо подойдет для проектов, которым важна скорость работы, но при этом содержимое сайта меняется не слишком часто. Такой сайт и Хабраэффект выдерживает, и DDos-атаке не поддаётся.
Конструктор сайтов
Эти инструменты позволяют людям без технических навыков создавать веб-сайты путем перетаскивания элементов на странице в онлайн-сервисе. Такие решения называют «no-code» (или «low-code»), из-за отсутствия необходимости программировать.
Примеры конструкторов: Tilda, Nethouse, Setup, Wix.
Плюсы:
- Быстро. Можно создать сайт с минимальными затратами времени и быстро проверить какую-либо теорию. Например, создать лендинг под свой продукт и протестировать его в деле.
- Дёшево. Денежные затраты тоже весьма низкие, потому что сайт собирается из готовых блоков, которые настраиваются под ваши нужды. В некоторых случаях, может потребоваться разработка дизайна и индивидуальная верстка, но это скорее исключение, так как индивидуальный дизайн — это удел индивидуальной разработки (стоит посмотреть в сторону фреймворков или CMS).
- Не нужен отдельный хостинг. Конструктор — это сервис, который уже включает в себя размещение сайта в интернете, но здесь есть и оборотная сторона — вы никак не можете влиять на сервер, не сможете настроить расписание для бекапов, организовать резервирование и пр. Остается только надеяться, что это сделают правильно за вас.
Минусы конструкторов сайтов:
- Почти ничего нельзя доработать. Здесь как в соцсетях – вы можете использовать только то, что вам предлагают.
- Сайт вам не принадлежит. Пользовательским соглашением конструкторов порой предусматриваются пункты о том, что вы не можете использовать свой сайт вне платформы. То есть, у вас не получится просто взять и унести свой сайт с конструктора, разместив его на стороннем хостинге. Контент сайта безусловно ваш, но вот обернуть его придётся уже в новую обёртку, заказав разработку сайта с нуля.
Какие сайты делают на конструкторах:
- лендинг,
- сайт-визитка, корпоративный сайт,
- блог,
- небольшая витрина,
- простой интернет-магазин (часто конструкторы не имеют возможности интеграции с внешними системами, все данные заносятся ручками, поэтому много товаров не разместить).
Кто делает сайты на конструкторах:
- рекламные агентства,
- студии веб-дизайна,
- новички.
С одной стороны, конструкторы сайтов предлагают легкое, доступное решение. С другой стороны, сайт на конструкторе несет в себе огромный риск, который следует учитывать с самого начала. Сайт на конструкторе можно сравнить со страницей компании в социальной сети. Вы можете ее использовать и продвигать, но она не ваша, а той компании, которая владеет соцсетью. Так же и с сайтом: использовать его можете, а вот владеете им не в полной мере. Например, если вы регистрировали домен напрямую через регистратора доменов, то домен – ваш, и вы сможете при необходимости его перенести на новый хостинг и создать там новый сайт. Но если и домен вы получили через конструктор сайтов, то можете смело считать, что у вас нет сайта во владении.
Сайт с нуля кодом
Это подход, при котором сайт создаётся полностью с нуля с использованием языков программирования (JavaScript, PHP, Python, Go и пр.) и разметки (HTML, CSS). Этот метод требует значительных технических навыков и времени.
Если нужно сделать что-то посложнее формы обратной связи, то фактически сначала придётся создать свой фреймворк, а потом уже перейти к разработке сайта.
Этот способ выбирают недальновидные разработчики и новички, которые отвергают готовые решения в виде фреймворков. Рано или поздно некоторые из них упираются в свои возможности и сдаются — начинают подключать библиотеки и фреймворки, чтобы упростить свою работу.
Создание своего фреймворка требует много времени, знаний и опыта. Зачастую эта деятельность бессмысленна с точки зрения достижения результата в виду того, что нужно «переизобретать велосипед» для часто используемых инструментов: работа с БД, роутинг, сессии, авторизация, шаблонизаторы, валидация данных, управление ошибками, забота о безопасности, управление файлами, кэшем, локализацией, уведомлениями, событиями, очередями и т.п. Всё это уже есть в готовом надёжном фреймворке.
Если вашему сайту требуется какая-либо специфичная функциональность, то лучше посмотреть на фреймворки (или, в крайнем случае, CMS) вместо этого интересного, увлекательного и в некоторой мере познавательного, но неэффективного способа создания сайтов.
Что в итоге?
Какой подход в создании сайта выбрать, в конечном счете зависит от потребностей и целей сайта.
Если сайт очень простой или у вас нет высоких ожиданий от сайта, а также если вы готовы мириться с тем, что ваш сайт не будет полноценно вашим, можно остановиться на конструкторе сайтов.
Если сайт посложнее, то стоит выбрать разработку на фреймворке или создание сайта на CMS, принимая во внимание все нюансы.
А если у вас нет полного технического понимания в работе сайта, то выбор технологий для сайта лучше доверить профессионалам, а не полагаться на свою интуицию.