Найти в Дзене
ГЭНДАЛЬФ. Сайты

Почему программисты плюются от Битрикса, а бизнес несет им деньги мешками? Часть 2

В прошлой статье мы обсудили технические особенности системы. Сегодня поднимемся на уровень выше – в высокие материи. Речь пойдет о философии построения кода. Из разговоров айтишников, вы наверняка улавливали слова вроде ООП, MVC, Паттерны, ORM. Произносятся они обычно с придыханием, как имена божеств. И главная претензия к «1С-Битрикс» со стороны профи часто звучит так: «Там нет нормальной архитектуры». Давайте разберемся, стоит ли за этими обвинениями реальная проблема или это просто профессиональный снобизм. В современном программировании есть «Священная Корова». Зовут ее ООП (Объектно-Ориентированное Программирование). Это подход, когда все в программе строится как сложная иерархия объектов: «Класс Сын» наследует у «Класса Отца», тот – у «Деда» и так далее. Считается, что если ты не пишешь на ООП – ты застрял в прошлом веке. В «Битриксе» этой сложной, академической иерархии почти нет. Им скучно. Им хочется строить красивые воздушные замки из кода, чертить схемы связей и чувствовать
Оглавление

В прошлой статье мы обсудили технические особенности системы. Сегодня поднимемся на уровень выше – в высокие материи. Речь пойдет о философии построения кода.

Из разговоров айтишников, вы наверняка улавливали слова вроде ООП, MVC, Паттерны, ORM. Произносятся они обычно с придыханием, как имена божеств. И главная претензия к «1С-Битрикс» со стороны профи часто звучит так: «Там нет нормальной архитектуры».

Давайте разберемся, стоит ли за этими обвинениями реальная проблема или это просто профессиональный снобизм.

Миф №1: «Без ООП жизни нет!»

В современном программировании есть «Священная Корова». Зовут ее ООП (Объектно-Ориентированное Программирование). Это подход, когда все в программе строится как сложная иерархия объектов: «Класс Сын» наследует у «Класса Отца», тот – у «Деда» и так далее. Считается, что если ты не пишешь на ООП – ты застрял в прошлом веке.

В «Битриксе» этой сложной, академической иерархии почти нет.

Почему это бесит программистов?

Им скучно. Им хочется строить красивые воздушные замки из кода, чертить схемы связей и чувствовать себя архитекторами небоскребов. А «Битрикс» дает им простой набор инструментов: вот молоток, вот гвоздь. Бери и строй сарай. Или дворец. Как получится.

Почему это спасает ваш проект?

  1. Низкий порог входа. Чтобы разобраться в хитросплетениях идеального ООП-кода, нужен программист с зарплатой топ-менеджера. Чтобы работать с простым структурным кодом «Битрикса», достаточно крепкого середнячка.
  2. Защита от «гениев». Если неопытный разработчик влезет в сложную ООП-систему, он может случайно обрушить все здание, сломав один кирпичик в фундаменте. В «Битриксе» модули независимы: сломал модуль новостей – корзина продолжает работать.
  3. Скорость. Мы не строим абстракции, мы решаем задачу. Нужно вывести список товаров? Мы просто берем и выводим, не создавая для этого пять промежуточных сущностей.

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

Миф №2: «Где ваши паттерны и MVC?»

Паттерны – это шаблоны решения задач. Сейчас знание паттернов стало чем-то вроде модного тренда. Не используешь паттерн «Фабрика»? Фи, как не стыдно!

Критики кричат: «В Битриксе нет MVC!» (это разделение на Модель, Вид и Контроллер).

А что на самом деле?

На самом деле паттерны – это не закон уголовного кодекса. Это просто советы: «Попробуй так, может, будет удобно».

В «Битриксе» есть свой MVC и свои паттерны. Да, они не такие, как в учебнике для студентов. Они прагматичные.

И проблема не в том, что архитектура плохая. Проблема в том, что у программистов нет единого свода правил, как писать под «Битрикс». Каждый пишет в меру своей испорченности.

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

Миф №3: «Хочу работать с Объектами, а не с массивами!» (ORM)

Здесь будет немного сложнее, но держитесь. Есть технология ORM превращает сухие данные из базы в живые объекты в коде.

Как это выглядит в мечтах программиста:

Он пишет строчку: Покупатель->ДайМнеВсеЗаказы(). И система сама, магическим образом, достает все, что нужно. Красиво? Очень.

Как это выглядит в «Битриксе» (в старом ядре):

Программист получает простой, глупый список (массив) данных. Никакой магии.

Почему «бездумный» подход выигрывает?

Классическая ORM – это очень прожорливая штука. Чтобы создать красивый объект «Покупатель», системе нужно выделить кучу оперативной памяти, загрузить туда все его свойства, связи, историю... А если покупателей тысяча? Сервер начинает задыхаться.

«Битрикс» исповедует спартанский подход:

  • Нужны только ID заказов? Вот небольшой список циферок.
  • Не нужны адреса и телефоны? Мы не будем забивать ими память.

Это экономия ресурсов. Да, программисту приходится писать чуть больше кода руками. Зато ваш сервер не будет перегружен.

Итоги: академичность или жизнь?

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

Архитектура «Битрикса» далека от идеалов. В ней нет стройности высокой теории. Это боевая архитектура. Она создана не для того, чтобы код красиво смотрелся на распечатке, а для того, чтобы выдерживать нагрузки, обновляться годами и приносить деньги.

Узнайте больше о наших возможностях разработки сайтов на «1С-Битрикс: Управление сайтами»

-2