Взгляд программиста на движок для сайтов «Битрикс»
Недавно мне пришлось работать с Битриксом — наверное, самой ненависной CMS среди веб-программистов. Да, и я понял почему именно. Сразу скажу, что впечатления от процесса остались не самые лучшие, но постараюсь сделать обзор движка более-менее нейтральным.
Философия
Движок может хранить несколько шаблонов, один из них используется для сайта. Структурной частью является компонент — блок с разметкой данных, подключаемый в коде сайта; с собственными стилями, js-скриптами, собственно отображением, может использоваться PHP. Логика подключения компонент основана на использовании файловой системы.
Компонент может использовать данные инфоблоков. Инфоблоки — это типа CRUD-приложения. В сущности, это группы записей с таблицы БД. Каждая из этих записей может иметь неограниченное количество свойств различных форматов. Любой инфоблок может редактировать контент-менеджер в администраторской панели.
Есть понятие страниц. В каждой странице есть рабочая область — изменяемое место. Компоненты подключаются либо в шаблоне, либо в рабочей области. Инфоблок к компоненту можно подключить либо при подключении компонента, либо в самом компоненте с помощью PHP с использованием оболочки Битрикса.
Сюда же добавлю, что Битрикс — это движок, написанный на PHP и в нем можно использовать PHP в любом месте php-файла. Правда, это желательно делать через админку — CMS добавляет к коду небольшую оболочку.
Я это добавил из-за того, что нашел несколько, по своему характеру негативных, отзывов о CMS «1С-Битрикс», в которых критикуется язык 1С. «1С» присутствует в названии из-за того, что на постсоветском пространстве движок продвигается в тандеме компаний Битрикс и 1С (ключевой продукт — «1С: Бухгалтерия» — самая популярная система бухучета на территории стран СНГ).
Документация
Документация, откровенно говоря, слабая. У меня создалось впечатление, что она писалась не отделом разработки, а отделом маркетинга. Я вовсе не хочу обидеть отдел маркетинга Битрикса, просто в технической документации слишком много текста о крутости движка.
Битрикс имеет несколько отдельных документаций (я нашел три). Старая по объему больше, чем новая.
Я не смог найти ссылки на документации на сайте Битрикса, потому делал это с помощью Яндекса. Не говорю, что ссылку на документацию специально спрятали на сайте Битрикса — просто я решил, что с помощью Яндекса будет проще.
Сама документация в теории предназначается для разработчиков сайтов (есть версии для контент-менеджеров), но больше описывает философию Битрикса, дает жаргон системы (который, кстати, не самый бедный). Да в ней есть инструкции по работе с шаблонами и подключению компонент, но нет примеров использования инфоблоков в компонентах — учитывая то, что именно вывод данных с инфоблоков является «фишкой» движка, это, мягко говоря, досадно.
В Интернете неохотно пишут о Битриксе — последнюю информацию мне было достаточно сложно найти. Правду говоря, в кондиции ничего не нашел, но смог скомпоновать знания с нескольких источников.
Хоть я и не люблю видеоуроков, мне пришлось их искать, так как это самый простой способ защититься от ошибок, связанных с работой с новой системой. К сожалению, по уровню видеоуроки достаточно слабые. Тут же объясню и то, почему слабые, и то, как используются инфоблоки в компонентах некоторыми разработчиками — через визуальный интерфейс копируется шаблон блока новости или другого CRUD-раздела и изменяется.
В движке есть много неочевидных моментов. Как пример приведу, что компоненты объявляются с помощью PHP, но их нужно прописывать в отдельных скобках PHP.
Обзор отношений программистов к движку
На «ХабраХабре» комьюнити не сильно любит движок. Достаточно много статей-обзоров минусуются. Потерял источник, но очень точная фраза «Маркетинг не соответствует документации».
В целостности большинство разработчиков негативно относится к Битриксу. Само собой, есть группа лояльных, которым лояльные Битриксу клиенты дают работу.
Исходя из сказанного в предыдущем разделе, есть относительно много обучающих курсов по Битриксу.
Отношения предпринимателей к движку
Оно положительное. Надо отдать должное отделу маркетинга — на постсоветском пространстве они бросили большую тень на своих конкурентов и получили лояльность многих веб-студий и интерактивных агенств. Как правило, у человека, который хочет открыть свой бизнес, только один вариант выбора движка — Битрикс.
Компания организовывает много полезных событий, приглашает на них хороших экспертов и своих клиентов с успешными кейсами. Кроме движка для сайтов, у «1С-Битрикс» есть несколько других продуктов для поддержки бизнесов, что обеспечивает дополнительную лояльность клиентов.
Вернусь к агенствам, использующих движок, — компания поддерживает их не только ярким маркетингом, но и рекламой через «Рейтинг партнеров Битрикса».
Баги
Опять же, в сети много обсуждений на эту тему. Резюмируя, они есть. Потому нужно подписываться на поддержку.
У меня был опыт работы с магазином, у которого уже закончилось время поддержки и владелец ее не продлевал. В общем, у меня возникли баги с подключением новых компонентов. Точнее все было отлично, они работали, но было одно но — пока я не вошел на сайт как обычный пользователь. Они просто сломались.
Компания, как я уже говорил, проводит много мероприятий с полезным контентом. Я был на одном из них. Первым выступал представитель Битрикса, вторым — их клиент (с очень крутым кейсом, к слову). Там было около 6-8 выступлений и, само собой, был регламент. Представитель компании (в частности, из-за вопросов) достаточно ощутимо занял время у второго докладчика, а после того, как в зале не было ни одно поднятой руки, задал вопрос «У вас еще есть вопросы?».
Второй докладчик сидел передо мной и я видел всю его ярость. И он задал вопрос: «Когда у вас не будет багов в движке? Мы уже 5 лет пользуемся вашим движком и в каждом обновлении есть куча багов — разве так сложно протестировать?» Произнесенный спокойным тоном, ответ был не менее ошарашивающим: «Ну если мы не будем часто выпускать свои обновления, то о нас забудут. А так мы выпустили продукт, разработчики нашли баги, мы их получили и в следующем обновлении исправили»
Производительность
Серверная сторона
Серверная сторона генерирует страницы в адекватном диапазоне (по крайней мере в последних версиях). Но, наверное, чтобы не рисковать, лучше сразу выбирать хостинг, заточенный именно под Битрикс. По комментариям и исследованиям в Сети, движок достаточно сильно нагружает сервер. Честно говоря, не могу дать более конкретный комментарий.
Композитный сайт
У CMS есть технология композитного сайта. В теории это закешированный серверный код. Что на практике — не понятно. Можете перейти к официальному описанию Битрикса: http://www.1c-bitrix.ru/composite/.
И честность компании просто зашкаливает: на странице есть раздел «Динамика загрузки страницы», в котором визуализирована скорость загрузки страницы. Подано диаграммой Ганта, которая состоит из 4-х строк: HTML, CSS, JavaScript, Изображения. Занимательно, правда, другое: по их словам, обычный битриксовский сайт грузиться 2.5 – 4.5 сек, композитный — 0.2 – 0.4 (да, да: это с учетом изображений).
Просто чтобы кто не сильно ориентируется в этих цифрах, 0.4 секунды — это время загрузки очень хорошо оптимизированного сайта с минимумом картинок и скриптов, при этом сервер должен находится очень близко к посетителю.
Даже стартовая страница Вконтакте загружается больше 0.5 секунды, хорошо оптимизированные динамические сайты — в районе секунды. И то это практически не зависит от того, насколько быстр движок — здесь важна верска и клиентская часть. У меня в голове не укладывается, как можно на официальном сайте обещать невыполнимое.
Клиентская часть
Продолжая тему композитного сайта... Ну пусть обычный сайт на сервере генерируется 0.3 секунды, а новая технология уменьшит это время до 0.05. Все равно все проблемы будут с клиентской частью, которая будет грузиться... Не менее одной секунды.
Битрикс выводит основные скрипты в разделе <head> (для тех кто не в теме — считайте, что это просто увеличивает время отображения страницы). И скриптов там более, чем достаточно. Самое досадное это то, что архитектура движка создает много сложностей для того, чтобы frontend-разработчик смог оптимизировать сайт — движок компилирует стили и скрипты, собирая их с компонентов.
Продажи
Скорость загрузки страниц влияет на конверсию. О скорости я писал выше.
Битрикс имеет хорошие плагины для аналитики.
Движок использует подходы BigData для увеличения количества продаж. Это работает примерно так: когда человек заходит на сайт, работающий на Битриксе, сайт отдает серверу компании 1С-Битрикс информацию о том, какими товарами интересовался человек. Это дает возможность предположить, что человек хочет купить.
После того, как сервер Битрикса предположил, что нужно человеку, и генерирует на сайте рекомендацию этого товара при последующих заходах на сайт. Правда есть один нюанс: это действует для всех сайтов, работающих в этой системе. То есть, если человек смотрел телевизор Samsung 40" в одном магазине, то его предложат купить и в другом магазине.
Гипотетически, это увеличивает количество сделанных человеком покупок. Но исследований, насколько я знаю, на эту тему не проводилось.
Со своей стороны могу выдвинуть гипотезу, что не намного (так как запас денег у человека все таки ограниченный, хотя это дает фору клиентам Битрикса по сравнению с сайтами на других CMS) и что в случае равных игроков их продажи увеличатся. Также, выдвину гипотезу, что эту систему может поломать демпинг по популярным товарам (в пользу компании, которая занимается демпингом) и что большие онлайн-магазины могут нести потери.
Эта функция появилась в последних версиях (в начале 2015 года). Она устанавливается по-умолчанию, но может быть отключена в настройках.
Панель управления (админка)
Битрикс построен на файлах. Битрикс дополняет код файлов компонентов, измененных разработчиком. Потому разработчик должен работать через админку. Редактор в файловом менеджере не очень удобный (нет преимуществ редактирования в IDE), медленный поиск по файлам. Пути к файлам очень длинные, неудобная навигация.
Вся логика работы с БД изменяется через панель управления. Разработчик может добавлять и редактировать компоненты с помощью визуального интерфейса на сайте.
Администраторская часть для администратора и контент-менеджера одна — редактор сайта имеет ненужные возможности.
Контент-менеджер должен сделать 5 кликов для того, чтобы отредактировать товар. В обычных CMS это занимает 2-3 клика.
Преимущества
- Возможность сделать сайт быстро — базовые знания движка и PHP позволяют быстро создать сайт и интегрировать верстку в движок. Обозначу, что достаточно ощутимый плюс для разработчиков.
- Возможность быстро изучить основы движка
- Хорошая система сбора аналитических данных
Недостатки
- Сложно сделать сайт быстрым
- Сложно изучать детали движка
- Странная архитектура и много сленга
- Требовательный к ресурсам сервера
- Безопасность (ради справедливости добавлю, что обновления, касающиеся исправления дыр в безопасности будут предоставляться совершенно бесплатно)
- Неудобная панель управления
- Отсутствие полноценной документации для продвинутого использования
Примечание: по сравнению с тем, что можно найти в Интернете, в списке преимуществ и недостатков я не упомянул интеграцию с 1С-Бухгалтерия (для любых других CMS можно найти плагины интеграции), базовые технические возможности, наличие разработчиков, которые знают движок (а не используют для работы обходные пути), стоимость движка (версия для Интернет-магазина стоит около $700 — эта цифра действительно беспокоит начинающих предпринимателей; если вы принадлежите к этой категории, тогда, вероятнее всего, вам нужен бесплатный движок для Интернет-магазина, который в состоянии установить практически любой человек, использующий поисковые системы), некоторым административная панель кажется удобной (для разработчика это абсолютный бред, а для контент-менеджера... он должен потратить 5 кликов, чтобы открыть страницу редактирования товара, хотя можно сделать и в 2 клика)
Резюмируя
Если вы студия, продающая шаблонные сайты, Битрикс — хороший вариант.
Если вы студия, продающая шаблонные прям очень дешевые сайты, найдите бесплатное решение.
Если вы дизайнерское агенство, Битрикс — неплохой вариант.
Если вас поджимает дедлайн, Битрикс — неплохой вариант при условии его знания.
Если вы начинающий предприниматель, Битрикс — неплохой вариант.
Если вы опытный предприниматель, действуйте на свое усмотрение.
Если вы хотите открыть большой онлайн-магазин, Битрикс — плохой вариант.
Если вы хотите разработать технологическое решение, Битрикс не подходит вообще.
Если вы хотите изучать программирование, Битрикс — не лучшее начало.
Этот момент прослеживался по всему тексту статьи: я негативно отношусь к уровню честности компании.




