Мысли вслух о Битрикс

В последнее время пришлось столкнуться по работе с Битриксом. Давно известно, что код там ужасен, но более того, этот код располагает писать такое же «спагетти». Если вовремя не опомниться можно наговнокодить совершенно неподдерживаемую портянку.

Однако эту статью я затеял не ради обзора кода внутри известной системы. Я задался другим вопросом — почему же Битрикс смог достичь такой популярности?

Маркетинг

Маркетинг - вот двигатель успеха. У Битрикса всегда была хорошая маркетинговая составляющая, которую они только продолжают развивать.

Позволю себе заметить, что вместо того,чтобы сделать удобным, читаемым и гибким код системы компания занималась совсем другим. Они внедряли модный AJAX еще в бородатой пятой версии. Модный, но в тот момент он получился жутко тормозным и неудобным — плевались ВСЕ!!! Зато можно было говорить: «У нас админка работает на AJAX». И малопонимающий бизнес кричал «круто!!!».

Они делали интеграцию с 1С, за что и поплатились вошли в состав компании.

Они до сих пор поддерживают трупа PHP4, что объясняет, но не оправдывает говнокод.

Они делали интеграцию с Active Directory, они делали версию под MS SQL и всякие другие вещи, которые удобны лишь бизнесу. Вспоминаем? Сайт нужен именно бизнесу, и не важно какой там внутри код, главное что продукт работает. Не важно, что работает криво, у вас есть тех-поддержка, разработчики постоянно фиксят свои же баги, при этом не забывая плодить новые. Важно, что бизнес доволен функционалом, хоть и работающим через раз. Главное чтобы бизнес не терял деньги. СТОП!!!! Главное не дать понять бизнесу - ГДЕ он теряет деньги.

Бизнес теряет деньги?

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

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

При чем здесь Microsoft?

Не подумайте что я меняю тему, нет — просто Microsoft это тоже хороший пример маркетинга.

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

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

Сейчас эта ситуация почти не поправима, т.к. под эти системы нет программного обеспечения. Многие годы ПО разрабатывалось в большинстве случев под Windows. У Unix мало пользователей, потому что мало программного обеспечения. У Unix мало программного обеспечения, потому что мало пользователей. Круг был замкнут, благодаря маркетинговым усилиям Microsoft.

Та же самая история была применена мелкомягкими к Internet Explorer. Вместо того, чтобы делать лучше поддержку мировых стандаров, Microsoft занималась интеграцией Internet Explorer с операционной ситсемой и офисными приложениями, за что и поплатилась некоторым количеством огромных дыр в безопасности. Однако бизнес-пользователи остались довольны, потому Internet Explorer 6 вот уже девятый год является самым популярным браузером на свете. Многие даже не подозревают о существовании альтернатив.

Обратно к нашим баранам

Круг в России давно замкнулся на 1С Предприятие, подвинув в сторону продукты Oracle, Microsoft Axapta, и еще несколько других систем бухгалтерского учета, известных в мире.

Программировать на русском языке и писать код, который сводит с ума нормальных программистов вас научит маркетинг 1С. Вперед, кстати вы будете неплохо зарабатывать этим говнокодом. По мне — уж лучше Java (которую я тоже не люблю, но сейчас не об этом).

Битрикс, в свою очередь, своим прекрасным маркетингом пытается загнать в сети веб-разработчиков.

Как хорошо, казалось бы, знать отличный движок и разрабатывать на его основе отличные сайты. Однако если Вы творец, а не машина, вы быстро понимаете, что ЭТО поддерживать практически невозможно. Вам приходит в голову переписать части системы, а возможно и ее всю. Вам приходит в голову в некоторых разделах сайта не использовать Битрикс, т.к. его гибкость не позволяет почесать даже подбородок в какой-то конкретной ситуации. Вам приходят в голову мысли больше никогда не иметь дело с этой ужасной системой, а сайт сделать на Zend/Symfony/Limb3 .

И это правильные мысли — вы сэкономите время. Эй, БИЗНЕС!!!! Слышишь? Время!!! Да, да... это синоним слова деньги!

Комменты

  • 28.07.2011 17:36:27 Александр Сербул:
    "Давно известно, что код там ужасен, но более того, этот код располагает писать такое же «спагетти». Если вовремя не опомниться можно наговнокодить совершенно неподдерживаемую портянку."

    Если имеются в виду стандартные компоненты, которые работают сверху АПИ ядра и которых несколько сотен - то в серьезных проектах я никогда их не использовал (не люблю логику if/else и тацующий отступами код, в который трудно добавить логику без переотступания). А вот само АПИ в Битрикс - простое, логичное и стройное - никакого ООП, которое и не нужно.

    ZendFramework, Symfony и прочие "академические" вещи, с классической ООПшной архитектурой - да, с ними приятно работать, но они покрывают процентов 5 функционала платформы Битрикс. Но - ZF отлично сочетается, и нередко применяется в сложных проектах на Битриксе (allsoft.ru и т.п.). Более того, у меня был проект где Битрикс работал вместе с 2 серверами приложений JBoss (j2ee - это боль моей души :-)) - http://www.cmd-online.ru.

    Правильность кода и маркетинг. А посмотрите на http://ru.wikipedia.org/wiki/OpenBSD. Люди просто, извините, мастурбируют на качество кода и документацию - и насколько монетизирован их проект, сколько создано рабочих мест? Хотя работать за бесплатно у них я бы согласился - для души. А задачи бизнеса кто-то должен решать - должен.

    Линукс. Имхо линукс с его интенсивным развитием, коммунити и вендорской поддержкой - пример злостного говнокодинга, полезного обществу. А Эндрю Таненбаум со своим minix, критиковавшем Линуса за его говнокодинговое монокернельное ядро где - правильно, продолжает развлекаться со студентами лаборантами. А линукс - работает и решает задачи бизнеса. Вроде успешно, вроде не ломается. Да, конечно можно его переписать правильно, на ООП - но будут ли это делать? Вряд ли.


    ИМХО платформа битрикс просто решает задачи бизнеса. Если бы начали делать сложное АПИ ядра с ООП - не успели бы сделать и 10% функционала. А пойдя по пути юникса, создав независимые простые компоненты и простое функциональное АПИ - добились непрерывного и быстрого развития системы в течение уже 10 лет. Разве не прекрасен баланс здорового консерватизма в отношении кода, модульной архитектуры и динамичного маркетинга?

  • 29.07.2011 12:34:20 Максим Антонов:
    Александр, я с вами согласен по поводу задач бизнеса. Где у нас тот же UMI-CMS?

    Я и говорил про маркетинг и бизнес.

    Только вот в серьезных проектах я бы Битрикс использовать не стал. И мне очень странно, что на этой платформе работают такие монстры, как Связной, Евросеть, Эльдорадо, Софткей и т.п.

  • 26.02.2012 02:30:53 Александр:
    Александр ну а как же на счет того что программист должен работать на чем угодно. и его не должно страшить ни битрикс с его говнокодом. а что касается бизнеса дак большинство заказчиков не разбираются в этом при заказе сайта. а маркетинговый ход проводится прямо в веб студиях. В битриксе существует один плюс и он заключается в том что программисты 1с- битрикс получают очень не плохие деньги плюсом сайт постоянно необходимо поддерживать. а это еще дополнительная денежка в карман программиста. если бы большинство сайтов не нуждалось в поддержке, то и безработных было бы больше.
  • 29.02.2012 18:25:49 Zak:
    Ох уж этот битрикс, я тоже его не люблю.
    Хочу заметить, что пользователей IE6 в рунете около 1%, пруфлинк: http://www.liveinternet.ru/stat/ru/browsers.html?period=month
  • 24.10.2012 17:06:27 Егор:
    Да вот и я сейчас начал на нём делать крупный проект. Документации много, а того, что нужно и нет...например, даже банального описания структуры БД с которой работает этот гавнодвижок! Вот собственно и набрёл на этот сайт из гугл, когда искал это:)
  • 11.07.2013 13:48:29 Максим:
    Работаю с битриксом, от битрикса использую админку и апи, все компоненты свои. При этом все довольны.

    "сайт постоянно необходимо поддерживать" - да ну? Интересно зачем? код ведет себя по разному? А если меняются требования, то в любой проект нужно вносить правки. Причем добавление свойства к сущности (элемент инфоблока) делается кликами мыши, без необходимости вносить какието изменения в админку.

    Для каждой задачи нужны свои инструменты. Понятно, что Вконтакт на битриксе не напишешь - и не надо! А вот сайты уровня Связной, Евросеть, Эльдорадо, Софткей и т.д. - вполне себе работают на битриксе.

    Про говнокод битрикса, и его фокусы я знаю не по наслышке, могу привести массу примеров что в нем криво сделано. Но тем не мение предпочитаю использовать его, чем любую другую CMS или писать свою админку на фреймворке.
  • 10.01.2014 12:52:25 Max:
    Я не знаю как Евросеть или софткей, в котором Битрикс родился, но Связной и Эльдорадо очень мучаются с битриксом. Изменений много, поддерживать уже сложно, битрикс под нужное поведение не заточен, API тормозит при таких нагрузках, приходится использовать SQL напрямую, после этого забыть об обновлениях. В ближайших планах Эльдорадо замена платформы, ибо битрикс уже затрахал всех тормозами и нестабильностью - для подобных нагрузок он не предназначен.
  • 16.01.2014 23:54:33 Роман:
    Поддерживать сайт нужно, причем постоянно, если нужно, чтобы сайт работал и приносил прибыль, особенно, если это магазин. Нужно постоянно подстраиваться под маркетинг, а это не только добавить поле к сущности - это более серьезные задачи, которые обычно идут в разрез со стандартным функционалом. Можно, конечно, писать свои компоненты, но это поможет только на первом этапе, пока небольшая посещаемость и мало элементов каталога. Попробуйте использовать битрикс для магазина, у которого весьма широкий ассортимент, причем в каждом разделе на товар приходится от десятка до сотни свойств и таких наименований хотя бы 5 тысяч. А по этому всему нужно сделать поиск, быстрые фильтры, таргетинг, частую выгрузку в яндексмаркет, причем в разрезе наличия в магазинах - вот тут начинается самый смак. Плюс прибавить к этому так называемую интеграцию с 1с - когда выгрузка идет по часу, а наличие и цены нужно обновить в сутки несколько раз...

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

    Внести правку в отлаженный, проект, построенный на грамотно спроектированном фреймворке - это не то, что внести правки в компонент битрикса. Есть опыт перевода проекта с битрикса на симфони (частично участвовал) - так вот более сложные задачи сейчас решаются за меньший срок и с меньшим количеством ошибок, при том, что битрикс на тот момент был достаточно хорошо изучен, а выбор симфони был фактически - экспериментом, на который в итоге перевели полностью. И добавить свойство к сущности - это всего пара строчек в коде.
  • 17.03.2016 17:54:40 WebDev:
    Bitrix — кривое убогое говно, которое со времен создания не совершенствовалось, а лишь обростала кусками кода, как Франкенштейн. В то время как прошел релиз php7 в битриксе до сих пор наблюдаются куски кода еще со времен php4(только вдумайтесь сколько времени тянется убогий код). В то время как другие переписывают свои решения под новые технологии, bitrix остается на месте в развитии вместе со своими адептами. Ведь не даром есть понятие php-разработчик и битриксоид и поверьте это совершенно разные понятия.

    А теперь собственно к «придиркам»(это так конструктивную критику называют битриксоиды)

    1) Полное игнорирование PSR стандартов, а так же комментариев(да они там есть но от тех что есть пользы как с козла молока). Да можете выкинуть ваш любимый IDE на свалку, при работе с битриксом, потому как он будет вам не помощник.

    2) В битриксе нет MVC, есть только жалкая пародия. Парадигма MVC подразумевает разделение логики представления и бизнес модели объединяя их связующим звеном. Прямые вызовы SQL в компонентах вида ну ни как не соответствуют данной парадигме(и это только цветочки)

    3) Говнокод в ядре. Да, то что по здравому смыслу должно быть чистым, понятным и качественным, на деле оказывается куском г..на

    4) Цена не соответствует качеству. А так же то что должно работать с под коробки не всегда работает.

    5) Полная несовместимость с PHP7

    Для любителей покричать «Плохому танцору!», объясняю есть понятие рентабельность и здравый смысл. Потому как в случае с битриксом разработчик не разрабатывает, а борется с «особенностями»(читай багами) системы. В таком плане полугодовой проект на symfony будет куда комфортней и прибыльней чем годовой на битриксе.