Битрикс: удобство и ненависть

Речь пойдет о многоизвестной CMS 1С-Битрикс: Управление сайтом. Тема дитя франкенштейна (CRM Битрикс24) не Затрагивается. Прочитал очень много статей на тему Битрикса на хабре и увидел что его либо смешивают с грязью либо рассказывают какой он крутой. Собственно цель данной статьи - попытка поставить точку в данных обсуждениях. Вся информация представлена исключительно на базе собственного опыта с двух сторон - Клиента (кто купил CMS) и Разработчика (кому работать с этой покупкой). Итак, поехали:

1. Битрикс как платформа для конечного пользователя (покупателя CMS)

Ложка мёда:
  • Удобство и шаблонизация. Например - в Вашем штате 10 контент менеджеров. Отправьте их на курсы для контентов, которые придумала сама фирма 1С-Битрикс. В 90% задач вопросов у контентов не возникнет. А контент, который пришел к Вам со стороны и уже работал с админкой сразу готов приступить к работе без всяких доп курсов и объяснений (это если Ваш сайт собран правильно и в нём нет кучи кастомизаций админской части).
  • Готовность решения. По сути, заплатив 35к рублей (редакция с интернет-магазином) конечник получит практически готовый инструмент продаж. Минимум 80% общих задач (сюда входят "хотелки") и 100% коммерческих задач (презентация и продажа товаров, организация работы инструмента и т.д.), который должен решать интернет-магазин или сайт-презентационка уже есть в стандартных компонентах (которые поставляются с самой CMS без дополнительных вложений средств).
  • Легкий поиск исполнителя для поддержки. Неважно как будет организована поддержка - in-house или подряд. На рынке куча программистов и веб-студий различного пошиба, которые готовы заниматься разработкой.
Бочка дегтя:
  • Отсутствие адекватной поддержки. Все же общались с ТП Битрикса, да? =) Кто не общался - сообщаю: время реагирования на запрос до 8ми часов. С 9 до 18. с Понедельника по пятницу. Если у Вас нет программиста в штате и Вы решитесь установить обновление в пятницу вечером и что-то пойдет не так - Ваш сайт Вы увидите в лучшем случае в понедельник. Но это не точно.
  • Дороговизна разработки. Да, подрядчиков на любой вкус и цвет. Кто знает как правильно работать с БУС - поменьше. Кто работает честно - еще меньше. А те, кто остались стоят дорого =) Если Вам без разницы представляет ли Ваш сайт из себя помойку (со стороны backend), то в принципе ничего страшного, можно и сэкономить. А вот когда пойдет вопрос о расширении функционала и оптимизации скорости работы - Вы с трудом найдете исполнителя, готового разгребать эту помойку за небольшие деньги.
  • Слишком много маркетинга. Лучшее что ест в Битриксе - маркетинговое продвижение. Оно настолько офигенно, что более 50% рынка работают на 1С-Битрикс. Но как говорится - мягко стелят, да жестко спать. Самое смешное что маркетинг почти всегда правдив (нет, я серьезно), но преподнесена информация так, будто БУС - панацея от всех проблем. Простите, но нет. Прежде чем Вы адаптируете сайт под все задачи бизнеса - Вы потратите 6ти, а то и 7ми значные цифры бюджета.
  • Решения Маркетплейса. И как же классная и удобная штука, в которой можно купить модуль, решающий Ваши задачи за 1000 рублей попал в минусы Битрикса? Легко и элементарно. В Маркетплейсе 90% решений - ширпотреб, созданный с одной из двух целей: срубить бабла или пропиариться. Объясняю по пунктам:
    1. 1С-Битрикс не несёт ответственности за использование решений из маркетплейса
    2. Разработчик продаёт решение "как есть"
    3. Доработка решения всегда стоит дороже самого решения
    4. Решения почти всегда НЕ оптимизированы под нагрузку
    Суть я думаю ясна =)

2. Битрикс, как платформа для разработки

Ложка мёда:
  • Скорость разработки и простота кастомизации. Кто работал с исходником - уже понял про что речь: можно быстро и просто накидать решение для любой задачи на базе готовых компонентов. Если Вы делаете новостной раздел - берете дефолтный компонент news и просто меняете файл шаблона вывода. Профит. Нужно вывести каталог с определенной выборкой и доп данными - легко, берем компонент catalog, копируем в другую папочку и правим несколько строк кода, выпиливая всё, что не пригодится. Быстро и вкусно. 98% задач заказчика решается таким методом
  • Почти отличное API. Вот тут конечно вопрос спорный, но большинство классов и методов старого ядра описаны в документации с примерами. С новым D7 все похуже, но это вопрос времени (пожалуйста без сарказма о 10ти годах =) ).
  • Известность и широкое использование. Опять же БУС - более 50% процентов рынка российских CMS. Можно сколько угодно его хаить, но маркетинг Битрикса сделал всё для того, чтобы программисты не остались без работы. Да еще и с хорошей зарплатой
  • Скорость работы background'a. Новое АПИ действительно показывает хорошие результаты по скорости работы. Некоторые методы практически сравнимы с прямыми SELECT'ами с БД.
Бочка дегтя:
  • Бред в исходнике. Думаю тут спорить никто не будет. Начинаю от использования глобальных переменных, вплоть до совмещения старого и нового API
  • Описание API. Чтобы разрабатывать на битриксе корректно с точки зрения самого битрикса - нужно знать и использовать его API. Узнавать работу методов и классов, ковыряясь часами в исходнике - не лучшая реклама платной платформы.
  • Отсутствие нормальных обновлений. По сути последние два года полноценно обновляются только те модули, которые активно пиаряться и используются - инет-магазин и каталог. Всё. Остальные только оптимизируются под рекомендуемое ПО (аля поддержка php7, mariadb10.1).
  • Наплевательская политика техподдержки. Тут только примером. Пару лет назад Битрикс выкатил огромнейшую презентацию компонента оформления заказа. Не безызвестный sale.order.ajax. И какой он красивый и какой он быстрый и удобный. Вот только никому не сказали что это всё относиться только к шаблону компонента. А он был написан так же, как сейчас пишется Б24 - на js. Нет, разобраться конечно можно, там же всего более 8000 строк кода (только в визуальной части, про 6000+ строк кода в файле class.php). Когда посыпались от разработчиков вопросы в сторону ТП (КАК с этим работать, хотя бы дайте описание) - те открестились легко и непринужденно - мы не описываем шаблоны компонентов. Занавес.
  • Безопасноть. Как писалось в статье и её комментариях у Битрикса достаточно проблем есть на текущий момент. Даже комментарии излишни я думаю

Послесловие

Битрикс - достаточно удобная платформа для быстрой разработки, если у Вас много денег и желания разбираться в чужом коде. Или мало денег и Вы готовы довольствоваться коробочным решением. Она даёт унифицированные решения, которые решают из коробки большую часть задач современного бизнеса. Но не стоит забывать что маркетинг живет отдельно от реалий бизнеса и требований современной разработки.