Хороший, плохой, злой «Битрикс». Битрикс горечь


Хороший, плохой, злой «Битрикс». Читайте на Cossa.ru

Холивар вокруг системы управления сайтом «1С Битрикс» не умолкает. Оппоненты разделились на два лагеря: разработчиков и потребителей. Первые называют «Битрикс» жуткой «поделкой» с запутанным кодом, тяжеловесной структурой с переизбытком технической документации, которую познать полностью нереально. Вторые — восхищаются широким выбором подрядчиков, работающих с этой системой, простотой административной панели и наличием технической поддержки. Так брать или не брать «Битрикс»? Сколько не читай комментарии — однозначного ответа не найдёшь.

Сегодня не будет поста обожания или разноса «Битрикса», мы трезво оцениваем возможности CMS, с которой работаем. И да, нам тоже есть за что не любить «Битрикс», но всем нам придётся работать именно с ним, в статье расскажем, почему.

Что относят к преимуществам «Битрикса»

1. Проще найти разработчика. «Аутентичные» разработчики на «Битриксе» встречаются чаще, чем, к примеру, на OpenCart. Хотя количество их сильно преувеличено. Партнёров и сертифицированных специалистов тысячи, но работать с «Битриксом» по всем стандартам умеют единицы. Чаще всего, вместо того чтобы сесть и написать новый компонент, берётся стандартный компонент и дописывается каким-то дополнительным функционалом. Всё делается на чистом PHP. В итоге — формально сайт на «Битриксе», а по факту — самописный костыль.

Весь интернет-маркетинг за 19 недель!

Cossa рекомендует: онлайн-курс по интернет-маркетингу от Ingate — digital-агентства с 17-летним опытом.

Узнать больше >>

Реклама

2. Огромный выбор дополнительных модулей. Маркетплейс — это площадка, позволяющая продавать и покупать решения (модули, компоненты, шаблоны, типовые сайты), разработанные под «1С-Битрикс». То есть любой разработчик может предложить своё решение и неплохо при этом заработать Что это даёт потребителю? Нестандартный функционал можно получить быстро и просто, а не разрабатывать силами собственных специалистов.

3. «Битрикс» — это куча интеграций. Действительно, есть пакетные решения по интеграции с 1С, CRM, кассой и тд. Но, по нашему опыту, из коробки они работают не всегда, так как каждый случай интеграции уникален, а модуль интеграции — всё-таки универсальное решение. Любой нестандартный функционал придётся дорабатывать.

4. «Битрикс» надёжно защищён. У «БитриксаW закрытый код и целый комплекс инструментов для защиты данных сайта: модуль проактивной защиты, веб-антивирус, защита авторизованных сессий, безопасная авторизация через SSL-протокол, защита от DDoS-атак. Однозначный жирный плюсик.

5. Есть собственная поддержка. Доступна поддержка только тем, кто платит за лицензию, но за всё хорошее в этой жизни нужно платить. Зато у «Битрикса» техническая поддержка отвечает в течение 1 дня, а это большая редкость.

Помимо техподдержки, есть подробная документация для разработчиков по работе с API, а также учебные курсы по всем продуктам «Битрикса».

Минусы, о которых чаще всего говорят

1. «Битрикс» тяжёлый. Минимальный дистрибутив тарифа «Старт» — 63,3 Мб. Архитектура завязана на файлах и папках — это расплата за возможность работать только по FTP, к дополнительным инструментам СУБД. Поэтому нужен нормальный виртуальный хостинг у заслуживающего доверия провайдера. Чтобы мог одинаково хорошо обрабатывать как запросы к базе данных, так и запросы к файловой системе. Вот пример катастрофической структуры файлов «Битрикса»:

2. Часто глючит. Востребованность платформы очень высокая, документации огромное количество, поэтому работать с «Битриксом» пытаются даже новички, мало разбирающиеся в его архитектуре. Они пытаются перенести на него опыт работы с бесплатными CMS а-ля Joomla, дописать всё голым PHP и заново изобрести велосипед. Отсюда кривые и косые сайты. Сам «Битрикс» в этом не виноват — это всего лишь инструмент, который стал жертвой своей же популярности.

3. «Битрикс» сложен в изучении. Да, это так. Логика не самая простая, даже местами нелогичная совсем. Без справки можно «выстрелить себе в ногу». Не все ответы на вопросы очевидны, не всё делается так, как написано в книжке «PHP за 24 часа».

4. Дорогие программисты. Вытекает из предыдущего пункта. Чтобы познать дао «Битрикса», нужно съесть гору ржавого гранита, который нигде не применим, кроме как в работе с этой системой. Инвестиции в обучение большие, а значит, и цена компетенций будет высокой. Мы сейчас говорим о разработчиках, читавших официальную справку «Битрикс» и подтвердивших свои знания сертификатами.

А теперь ещё раз глазами пройдите по всем плюсам и минусам. Прошли? Заметили, что весь негатив касается так или иначе продукта, а позитив больше сконцентрирован на маркетинге? Наверняка вы слышали про концепцию 4P. Если вы хотите, чтобы бизнес был успешным, работайте над 4P вашего продукта: product (продукт), price (цена), place (распространение), promotion (продвижение). У «Битрикса» продукт на троечку, он удовлетворителен для большинства задач пользователей, зато на пять плюсом остальные P. Всё, что вменяют ему в минусы, — справедливо. Нивелировать часть проблем можно только в том случае, если на 100% делать всё по мануалам «Битрикса», но и это не гарантирует успех.

Так почему же такая сложная и структурно печальная вещь до сих пор не ушла с рынка? Ответ прост и очевиден: есть, конечно, десятки других CMS, но они немногим лучше.

«Битрикс» так же плох, как и остальные системы, но у него сильный маркетинг, и он стал заметен. Его до костей разбирают и ругают, в то время как остальные CMS тихо себе живут с теми же проблемами. Все те же претензии можно адресовать и к остальным системами управления сайтом. Использовать их в серьёзном проекте — это авантюра и риск.

В сухом остатке: нет на российском рынке достойных конкурентов «Битриксу», дающих 90% покрытия функционала по ТЗ из коробки. Мы так же, как все одинэсники, которые плюются на «1С-Бухгалтерию» и пилят, будем есть свой кактус и находить всё новые и новые способы не раниться Учить документацию, стараться не отступать от шаблонных возможностей системы, писать новые дополнения на маркетплейс и ждать пришествия новых «идеальных» систем управления.

Мнение редакции может не совпадать с мнением автора. Если у вас есть, что дополнить — будем рады вашим комментариям. Если вы хотите написать статью с вашей точкой зрения — прочитайте правила публикации на Cossa.

www.cossa.ru

Плюшевый Битрикс или инструкция по разведению Секлабов

Собственно таким вот образом можно прочитать свежую документацию 1C-Битрикс 7.x на любом сайте его использующем, включая секлаб. Таким образом можно однозначно понять какие модули Битрикса стоят, а какие нет (по содержимому справки слева). Неплохой подгон. :D

Ссылка формируется таким образом, чтобы мы не могли покинуть директорию /bitrix/help/ru/source/ - справо-налево и с разделителями %2F. Однако это всё равно позволяет распознавать как (по какому из двух способов) сконфигурирован Битрикс привычно читая Forbidden.

В админку нас естесственно не пускают и попытка выйти за пределы  приводит к сбросу соединения. Битрикс вообще пугливый.

Но мы пойдём другим путём.

Вот тебе бабушка тупая как пробка XSS.Вот тебе дедушка инклюд файлов в тот же  фрэйм (подгружаемый JS можно использовать дальше в URL).Вот тебе внучка мой аватар. Для вставки кода, фильтр необходимо убедить что перед ним GIF 100x100 до 10Кб. Вот тебе жучка и премия рунета 2008 за вклад в развитие оного рунета. Не помню как зовут остальных героев сказки, поэтому засим остановимся.

Собственно мне с этих ребят смешно. И особо смешно. На фоне этого даже меркнет возможность регистрации с логином & nbsp; (пробел), & nbsp;& nbsp; (два пробела) и т.д. Эти люди научат вас безопасности, ага. ;)

Общеизвестно, что Битрикс хорош на сверхвысоких нагрузках и его используют такие высоконагруженные сайты как Эльдорадо, Cosmopolitan и PC Magazine и т.д., и т.п. Между тем имею давнее наблюдение, что чем более глобальный ресурс админится, тем более ушастые люди его админят.. =)

Расскажу немного о платформе 1C-Битрикс 7.x. Уверен, что пример выше должен однозначно доказывать, что безопасность 1С-Битрикса состоит в том что мало кто из простых людей его эксплуатировал и многих пугает уже само это слово. За Битриксом стойко закрепилась слава самой сложной CMS из существующих, которой надо учиться на специальных курсах. Тем более читателю будет интересно узнать, что за "ноу-хау", что за сверхсекретные технологии используются в данной разработке.

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

Итак: Каждая поставка 1С-Битрикс позволяет держать два сайта (можно докупить лицензии на увеличение их числа) для которых будет вести единая статистика, а пользователь зашедший на один из них - авторизован сразу на всех. Всё здорово, только как это достигается?

Каждый сайт Битрикса содержит набор IFRAME'ов (которые его безбожно тормозят, создавая Битриксу репутацию самой тормозной CMS), в каждом из которых вызывается скрипт http://доменное имя сайта/bitrix/spread.php с того домена на который необходимо установить cookie. Надо ли говорить как все мы любим устанавливать cookie? =)

В аргументах spread.php будет передана информация необходимая для установки cookie. Эта информация передается в зашифрованном виде и подписана зашифрованным лицензионным ключом этого портала. Собственно, все эти данные прекрасно снифиряться любым посетителем любого из сайтов, а расшифровка их необязательна так как мы можем просто захотеть "втереться" в доверие к 1С-Битриксу со своим сайтом.

Как это сделать? Ответ на этот вопрос мы найдём там же - в документации Битрикса. Цитирую: 

Важно! Будьте внимательны при указании доменных имен сайта. Если на сайте используется технология cookies, то в случае некорректного указания доменных имен при просмотре пользователем страниц вашего сайта также будет выполняться обращение и к другому сайту (доменное имя которого указано по ошибке).

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

Например, если для сайта http://demo.bitrixsoft.com/ вместо demo.bitrixsoft.com указано demo.bitirxsoft.com, то в код страниц сайта http://demo.bitrixsoft.com/ будет добавлен код вида:

<IFRAME

src="http://demo.bitirxsoft.com/bitrix/spread.php?

s=QklUUklYX1NNX0dVRVNUX0lEATk5NDgBMTE5MTU5NDU0OAEvAQECQklUUkl

YX1NNX0xBU1RfVklTSVQBMTAuMTAuMjAwNiAxODoyOTowOAExMTkxNTk0NTQ4AS8BAQI%3D&

k=9e8de698c64709edf2e76202279ce889"></IFRAME>В результате посетителям сайта http://demo.bitrixsoft.com/ будет выполняться показ всплывающих окон сайта с доменным именем demo.bitirxsoft.com.

Оценили? А может ли защититься от этого владелец сайта на Битриксе? Цитирую документацию:

Каждое доменное имя является «маской», т.е. может включать субдомены. Например, по имени site.ru могут быть выбраны www.site.ru или www1.site.ru, а также my-site.ru. В данном случае site.ru частично входит в состав всех трех доменных имен.

Как мы видим ошибаться необязательно. Кто первый зарегестрирует besecuritylab.ru? ))

А дальше? А дальше Live HTTP Headers для Firefox нам поможет в изучении существующих сайтов на 1С-Битрикс 7.x Сайты сопряжённые (в рамках лицензии 1С-Битрикс и супер-айфреймовой-технологии) могут оказаться чёрным ходом. Для securitylab.ru таким сайтом является некий bsau.ru. Для остальных популярных сайтов на Битриксе найдите пары самостоятельно, узнаете много интересного.

Какой вывод надо сделать из уже изложенного? Ребята из 1С-Битрикс наплевательски относятся к целому ряду аспектов полагая что их безопасность дело рук самого пользователя. Открытость справки и других подобных разделов во всех известных мне интернетах, включая 1c-bitrix.ru - ничто иное как нежелание пользоваться средствами того же Apache для защиты директорий. Права же выставлены такими, какими их поставил инсталятор. Напоминаю, что Битриксы живут не только в *nix, но и под w2k/w2k3/w2k8. Собственно оттуда и приползли, имеют отдельную ветку для asp .net. Проблема эта тянется походу ещё с версий 4.x, в которых права были такие, что можно было просто читать логи не являясь админом.

По документации красной строкой проходит программирование (которое вообще-то должно быть чуждо пользователю CMS). Возвращаясь к документации, отсюда следует такой момент как написание индексного файла для переключения между открытыми сайтами на Битриксе по-образцу из документации силами самого пользователя. (!) Конечно, как правило эти файлы пишут внешние молодцы и проект на Битриксе стоит существенного капитала. Но! Часть клиентов 1С-Битрикс предпочитают сэкономить, а часть аутсорсеров-гастрабайтеров элементарно не умеет писать безопасный php. Я намекаю: значительная часть. Таким образом, именно индексные файлы и разного рода "перебрасывалки" с домена на домен оказываются бажными. Потому что действует человеческий фактор.

Разумеется, вся приведённая информация опубликована исключительно в ознакомительных целях. Ну и там, вишесы коллегам по HackAROUND. Спешал фо бисекьюр. )

[ 06.02.09 ] update @ Как и ожидалось. Securitylab и PC Magazine среагировали. Первые поменяли права на папку, вторые удалили её нафиг. 1C-Битрикс только что закрыл дыру на своём сайте - начал фильтровать аргумент, но права остались теми же. Что оставляет возможность узнавать комплектацию проинсталлированного Битрикса. Поскольку начали поступать сообщения, что ссылки в этой статье не работают: Причём, даже str0ke написал что он "не может это сделать". Да, они не работают. Специально для этих четателей: OK парни, у вас уязвимо ~10000-3 сайтов, например Cosmpolitan, Компьютерра, и т.д, и т.п.

Источник: http://besecure.ru/article/652/ 

ru-anticms.livejournal.com

За что я не люблю Битрикс или CMS от маркетологов

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

Недостатки системы не просто замалчиваются, а выдаются за достоинства: говорят, что система простая и удобная, а это не так, что она быстрая и безопасная, и это снова не так, достаточно сравнить требования к хостингу Битрикса и, к примеру, ModX. Почитайте форумы, где обычные клиенты, купившиеся на обещания простоты и удобства, ищут тех, кто им её теперь настроит и будет дальше деньги сосать. Да можно жопу порвать, пока разберешься в их терминологии и интерфейсе. Или предполагается, что все клиенты профессиональные веб-разработчики?

Скажите, читай документацию, ламер. С этого я всегда начинаю, и могу с уверенностью сказать, что порог входа в разработку, для того чтобы начать более-менее адекватно писать под Битрикс и изучить API, довольно высокий. Документация имеется и весьма объемная, но какая-то бестолковая, без практических примеров.

Попробуйте, например, разобраться как включается ЧПУ и результат вас удивит. Простейшая, казалось функция (по умолчанию задействована практически во всех CMS) но только не в Битриксе. То, что в других системах делается буквально одним переключателем, здесь реализовано через такую жопу, что догадаться просто не реально. Глобального включения данного параметра для всего сайта нет в принципе, поправьте меня, если это не так, но я не нашел этого в документации.

В целом, интерфейс админки визуально приятен, ровно до тех самых пор, пока вы не начнете с ним работать. Тут все красоты идут лесом, количество пунктов, подуровней и разделов превышает все разумные пределы. Сайт представляется в двух видах - логическом и физическом в виде папок и файлов. Зачем было плодить дополнительные сущности не ясно. Раз уж реализована работа с базой данных, то почему нельзя страницы хранить в ней. Какого х... они делают в файловой системе и к чему вообще тут эти 100500 файлов? Попросите зайти начинающего веб мастера в корень сайта и понять какие папки имеют системное значение, а какие просто содержат контентные страницы? На мой взгляд, дружественная система управления должна быть интуитивно понятной, хотя бы конечному пользователю.

Такое ощущение что 1С-ники и битриксоиды это люди с какой то параллельной вселенной. У них там действительно «своя атмосфера». На тематических блогах и форумах складывается впечатление, что те кто под него серьезно разрабатывают, это некая отдельная прослойка людей, которую я плохо понимаю. Даже стиль общения между людьми какой-то необычный - регулярно предлагаются или спрашиваются деньги за ответы на вопросы.

Одному моему хорошему знакомому очень качественно влили в уши что для продвижения сайта нет ничего лучше этого самого битрикса. Уж не знаю что там за гуру продвижения такие, но любые иные CMS они напрочь отвергли. Может, конечно, я чего не догоняю, но что это за секретные функции, которых не хватает другим системам управления для раскрутки сайта? Да хоть на голом HTML пиши, как от этого поменяется структура документа не ясно. Или имеется в виду встроенная аналитика? Так тоже сомнительное преимущество, если вы грамотно используете яндекс.метрику или аналитикс от гугла.

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

Может сложиться впечатление что мне просто не нравится эта система и мнение сильно предвзятое. Ведь не просто так на Битрикс сделано куча сайтов? Я не говорю что система однозначно хорошая или плохая, идеальных CMS нет. У Битрикса действительно имеется куча готовых модулей и решений, возможности действительно впечатляют, Но давайте быть честными до конца, систему сложно назвать простой и любые действия которые хоть чуть-чуть выходят за рамки того что предусмотрено разработчиком, требуют уже очень серьезных доработок. Да и цены на готовые решения впечатляют.

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

Напоследок о главном козыре и главном маркетинговом ходе разработчиков Битрикса. Сильно распространено заблуждение, что раз это творение компании 1С, то мы сразу получаем полную интеграцию с имеющимися базами 1С из коробки. Забудьте! В разработку данной связки снова придется вкладываться, хотя об этом опять умолчали. Так что перед покупкой внимательно изучите возможности и оцените насколько система подходит именно вам, а так же какие деньги вы готовы вкладывать в разработку.

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

Если считаете статью полезной,не ленитесь ставить лайки и делиться с друзьями.

mdex-nn.ru

Применение Git на Bitrix проектах

23.05.2017

На многих веб-проектах, особенно, после запуска наступает стадия когда работа над сайтом не укладывается в идеальную схему применения системы контроля версий. Данная статья расскажет об упрощенной схеме использования git.

Важным нюансом является возможность изменения файлов персоналом сайта на рабочем сервере. Изменения могут быть обоснованные. Например, в некоторых случаях СЕО параметры хранятся именно в файлах, так же контент-менеджеры могут редактировать тексты статических страниц и включаемых областей. А обладая правами администратора можно отредактировать любой файл сайта. Кроме того на практике после запуска над сайтом работают не связанные между собой люди, не все из них умеют обращаться с git и нет рычагов влияния на них. Т.е. при работе над таким проектом лучше иметь в виду, что правки на рабочем сервере возможны.

Итак. В репозитории всегда присутствуют две обязательные ветки: master - соответствует состоянию рабочего сервера (продакшн) и dev - состояние сервера разработки (дев). Если над проектом работают несколько разработчиков, то полезно будет иметь каждому свою ветку. Так же создаются ветки на задачи, которые необходимо выполнить параллельно с основной разработкой.

Для начала необходимо создать репозиторий на рабочем сервере. Репозитория я обычно располагаю на уровень выше в файловой системе чем корень сайта. Минимальный .gitignore при этом (для примера корень сайта в каталоге www)

www/bitrix/ www/upload/

Остальные исключения зависят от конкретного проекта.

Как можно обратить внимание я исключаю весь каталог bitrix из репозитория. Это возможно за счет того, для разработки используется каталог local, в котором располагаются шаблоны, php_interface и прочие необходимые каталоги и файлы. А исключение из репозитория ядра битрикс необходимо для быстрого выполнения коммитов. Т.к. при включенном слежении за ядром, каждый коммит происходит заметно дольше. При этом ядро гит я все же рекомендую помещать в собственный репозиторий внутри каталога bitrix. При этом стоит проработать содержание .gitgnore в этом каталоге. Это бывает полезно при обновлениях, чтобы была возможность проверить изменения. Бывает возникают ситуации, когда вы сами нашли и исправили баг в ядре, а разработчики не спешат с обновлением.

После создания репозитория, выполнения добавления файлов и коммита на рабочем сервере необходимо создать резервную копию сайта. Далее из этой копии развернуть сайт на сервере разработки. Копирую туда же каталог с репозиторием (.git). Расположить этот каталог относительно корня необходимо так же как и на рабочем сервере. После чего настраиваем удаленный репозиторий (на рабочем сервере) командой

git remote add prod путь_к_репозитоию_на_рабочем_сервере

и выполняем контрольный pull. Следующим этапом создаем ветку разработки dev и переключаем проект на нее. Таким же образом необходимо развернуть копии для разработчиков.

При работе с этими копиями и репозиториями первой сложностью является синхронизация базы данных. И тут все зависит от вносимых изменений. Например добавление новых свойств и инфоблоков я начинаю с рабочего сайта и тут же создаю на сайте разработки. Делаю это для того что бы идентификаторы этих сущностей были одинаковыми.

Для простоты пояснений беру ситуацию когда разработчик один и разработка ведется непосредственно на сервере разработки. Если разработчиков несколько и у каждого свой сервер действия будут те же самые только между сервером разработчика и общим сервером разработки.

После выполнения очередной задачи и проведения тестирования произвожу коммит на сервере разработки в ветке dev. На рабочем сервере выполняю коммиит (на тот случай если кто-то внес изменения на нем) в ветке master. Далее на сервере разработки перехожу в ветку master и выполняю pull с продакшна. Перехожу в ветку dev и выполняю merge с веткой master. На этом этапе необходимо проработать все конфликты, которые не смог решить автоматически git. После того как все проблемы решены выполняю push в ветку dev рабочего сервера. После чего уже на рабочем сервере из ветки master выполняю merge ветки dev.

Вся операция обновления получилась в достаточно много ходов. Тем не менее она обеспечивает надежность и, фактически, много времени не занимает. Для удобства у меня на одном из рабочих столов (я использую Linux) открыты два терминала: рабочий сервер и сервер разработки.

На практике возникали случаи когда не было ssh доступен на рабочем. Для решения этой проблемы я использую модуль Консоль Git

Полезные ссылки по теме

Please enable JavaScript to view the comments powered by Disqus.

Все записи

va-soft.ru

Bitrix

Мне никогда не нравился Битрикс как CMS. Мне очень нравился и нравится их отдел маркетинга, который сумел обеспечить высокую популярность этому продукту.

У меня даже был случай такой, я беседовал с директором направления по разработке HID устройств и спросил его о сайте:

То есть понимаете, да? Он слышал! И это все решило. Поэтому маркетинг решает.

Почему мне не нравится CMS Bitrix?

Потому, что это хрень. Я думал так раньше и убедился в этом сейчас.

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

Что там плохого? Ну например все. Нормальный человек не может просто взять и начать пользоваться этой системой. Это тот случай, когда надо взять толстенную инструкцию и с ней в обнимку десять лет изучать устройство управления этим монстром. Миллиард настроек, одну часть которых не используют, другую можно было бы скрыть от пользователя и включить по умолчанию.

То есть чтобы управлять, прям в полной мере этого понятия, сайтом на Bitrix у вас должна быть вот такая башка, которую клонит к земле вес мощного мозга ботана. Я никого не хочу обидеть, а наоборот — кто постиг все тонкости Битрикса, вы круты! …и у вас, по ходу, до фига свободного времени.

Почему все хвалят Bitrix?

А как иначе? Представьте, вы купили дорогую хрень, к ней докупили кучу примочек, включили все это, поседели, пока разобрались как что работает, узнали, что есть системы, которые умеют все тоже самое, но бесплатно и проще и… Вы прям так взяли и всем заявили «Вот это я лоханулся!! Вот так дааа… Вот это я простофиля!», да? Дудки! Ответ всегда один «Моя система круче всех!». А все потому, что вы вложили в нее средства, заработанные своим трудом, а во время ее изучения потратили еще кучу времени и теперь вы уже воспринимаете систему не как что-то чужое, а как свое родное, ведь столько сил на нее угрохали. А свое, как говорится, не пахнет всегда лучше!

Сейчас мне приходится работать с CMS Bitrix, к счастью только как менеджер проекта, но и тут постоянно сюрпризы… и вот совсем недавно я окончательно убедился в правильности своих суждений. В поисках программиста Bitrix написал своему другу, который несколько лет назад разрабатывал модули для Битрикс и был сертифицированным специалистом.

Вот какой диалог у нас с ним состоялся(диалог как есть, с сохранением написания):

Неужели все продукты Bitrix плохие?

Да ну что вы! Конечно же нет. Мне, например, очень нравится Bitrix24. Это реально крутая CRM. Хотя это гораздо больше, чем CRM, так как это довольно мощный инструмент, позволяющий оптимизировать бизнес процессы. К тому же, этой системой можно пользоваться бесплатно. Да чего уж там… собственно, мы всем коллективом ей и пользуемся.

Каков итог?

Не знаю какого итога вы ожидали, я просто выплеснул свои неоднозначные чувства по поводу Битрикса. И это мое субъективное мнение, я не хочу его кому-то навязать, хотя, я им с удовольствием со всеми делюсь ))

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

 

www.sh14.ru

CMS Битрикс. За и против. / Статьи / Работа для программистов

Проработав 2 года с CMS Битрикс, у меня сформировалось свое отношение к этому движку. Есть как плюсы, так и минусы, но все же негатива накопилось гораздо больше.

В этой статье я поделюсь своим мнением с читателями и постараюсь описать и хорошие, и плохие стороны этой CMS.

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

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

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

Диаграмма инфоблоков Битрикс

Инфоблок — это такая сущность, которая объединяет элементы с определенным набором свойств. Часть свойств, такие как название элемента, раздел, даты активности и т.п., присутствует у элементов всех инфоблоков. К этим свойствам проектировщик может добавить еще и свои свойства, но они уже будут рассматриваться в контексте каждого конкретного инфоблока.

Существует также понятие типа инфоблока, который объединяет в себе инфоблоки.Поясню на примере. Допустим, мы создаем сайт, на котором будут размещены вакансии.. В этом случае нам будут необходимы 3 инфоблока: «Вакансии», «Отрасли», «Компании».

После создания инфоблока «Вакансии» мы можем создать в нем элементы со стандартным набором свойств:

Этих свойств будет достаточно для обычного текстового контента (статьи, новости и т.д.), но нам для вакансий этого не хватит. Мы создадим еще свойства:

В инфоблоке «Отрасли» и «Компании» ограничимся стандартным набором свойств, которые предоставляет нам битрикс.

Вот, что у нас получилось:

Структура инфоблоков Битрикс для размещения вакансий

Вроде бы с точки зрения теории баз данных у нас все верно. Все сущности разделены, избыточности нет и т.д. Но давайте взглянем на структуру базы.

Рассмотрим как работает выборка из инфоблоков на простом примере. В битриксе существует часть таблиц в базе данных, которые хранят данные, связанные с инфоблоками — сами инфоблоки (b_iblock), их элементы(b_iblock_element), свойства(b_iblock_property), значения свойств (b_iblock_element_property).

Это не все таблицы, связанные с инфоблоками, но для простоты понимания нас будут интересовать именно они.

ER-диаграмма некоторых таблиц Битрикса, хранящих данные об инфоблоках

Как видим, элементы всех инфоблоков хранятся в одной таблице, все свойства этих элементов так же хранятся в одной таблице.

Как же так! Зачем СУБД копаться в вакансиях, отраслях, если нам нужно будет выбрать всего лишь список всех компаний, вакансии которых храняться в базе ?!

А что будет, если нашему сайту необходим более сложный функционал? Вот тогда то и начнутся тормоза.

Теперь воспользуемся АПИ битрикса и выберем список вакансий конкретной компании, но те вакансии, которые не относятся к определенной отрасли.

В примере происходит выборка из инфоблока «Вакансии», ID которого 23, а также происходит фильтрация по компании, ID которой 373, и по отрасли, ID которой 317. В последнем параметре метода GetList передается список выбираемых полей — ID, компания, опыт работы, начало периода активности вакансии.

$arFilter = Array( "IBLOCK_ID"=>23, // выбираем элементы из инфоблока, ID которого 23 "ACTIVE"=>"Y", // выбираем только активные элементы "PROPERTY_COMPANY"=>373, // вакансии будут принадлежать компании с ID=373 "!PROPERTY_BRANCH" =>317 // вакансии, принадлежащие отрасли с ID=317, нас не интересуют ); $res = CIBlockElement::GetList(Array("DATE_ACTIVE_FROM"=>"ASC"), $arFilter, false, false, Array("ID", "PROPERTY_COMPANY", "PROPERTY_EXPERIENCE", "DATE_ACTIVE_FROM"));

Выглядит красиво, прямо как-будто один безобидный SQL запрос, но заглянем внутрь:

SELECT BP.* FROM b_iblock_property BP, b_iblock B WHERE BP.IBLOCK_ID=B.ID AND B.ID IN (23) AND UPPER(BP.CODE)=UPPER('COMPANY')   SELECT BP.* FROM b_iblock_property BP, b_iblock B WHERE BP.IBLOCK_ID=B.ID AND B.ID IN (23) AND UPPER(BP.CODE)=UPPER('EXPERIENCE')   SELECT BP.* FROM b_iblock_property BP, b_iblock B WHERE BP.IBLOCK_ID=B.ID AND B.ID IN (23) AND UPPER(BP.CODE)=UPPER('BRANCH')   SELECT BE.ID AS ID, FPV0.VALUE AS PROPERTY_COMPANY_VALUE, FPV0.ID AS PROPERTY_COMPANY_VALUE_ID, FPEN0.VALUE AS PROPERTY_EXPERIENCE_VALUE, FPEN0.ID AS PROPERTY_EXPERIENCE_ENUM_ID, FPV1.ID AS PROPERTY_EXPERIENCE_VALUE_ID,IF(EXTRACT(HOUR_SECOND FROM BE.ACTIVE_FROM)>0, DATE_FORMAT(BE.ACTIVE_FROM, '%d.%m.%Y %H:%i:%s'), DATE_FORMAT(BE.ACTIVE_FROM, '%d.%m.%Y')) AS DATE_ACTIVE_FROM,IF(EXTRACT(HOUR_SECOND FROM BE.ACTIVE_FROM)>0, DATE_FORMAT(BE.ACTIVE_FROM, '%d.%m.%Y %H:%i:%s'), DATE_FORMAT(BE.ACTIVE_FROM, '%d.%m.%Y')) AS ACTIVE_FROM FROM b_iblock B INNER JOIN b_lang L ON B.LID=L.LID INNER JOIN b_iblock_element BE ON BE.IBLOCK_ID = B.ID INNER JOIN b_iblock_property FP0 ON FP0.IBLOCK_ID = B.ID AND FP0.CODE='COMPANY' LEFT JOIN b_iblock_property FP1 ON FP1.IBLOCK_ID = B.ID AND FP1.CODE='EXPERIENCE' LEFT JOIN b_iblock_property FP2 ON FP2.IBLOCK_ID = B.ID AND FP2.CODE='BRANCH' INNER JOIN b_iblock_element_property FPV0 ON FPV0.IBLOCK_PROPERTY_ID = FP0.ID AND FPV0.IBLOCK_ELEMENT_ID = BE.ID LEFT JOIN b_iblock_element_property FPV1 ON FPV1.IBLOCK_PROPERTY_ID = FP1.ID AND FPV1.IBLOCK_ELEMENT_ID = BE.ID LEFT JOIN b_iblock_element_property FPV2 ON FPV2.IBLOCK_PROPERTY_ID = FP2.ID AND FPV2.IBLOCK_ELEMENT_ID = BE.ID LEFT JOIN b_iblock_property_enum FPEN0 ON FPEN0.PROPERTY_ID = FP0.ID AND FPV1.VALUE_ENUM = FPEN0.ID WHERE 1=1 AND ( ((((BE.IBLOCK_ID = '23')))) AND ((((BE.ACTIVE='Y')))) AND ((((FPV0.VALUE_NUM = '373')))) AND ((( FPV2.VALUE_NUM IS NULL OR NOT (FPV2.VALUE_NUM = '317')))) ) AND (((BE.WF_STATUS_ID=1 AND BE.WF_PARENT_ELEMENT_ID IS NULL))) ORDER BY BE.ACTIVE_FROM ASC

Ужас! А что же тогда творится с СУБД на реальных сайтах.

Мы при написании метода GetList использовали 3 свойства (ключи значений массивов, начинающиеся с «PROPERTY_») и в SQL-запросах, которые сгенерил битрикс, видим 3 запроса для каждого из 3-х свойств. А что будет, если создать десятки свойств? А будет ровно столько запросов сколько участвует в методе GetList.

Ну и в конце мы видим громадный запрос, напичканный join’ами. Если приглядеться к этому запросу, то можно догадаться, что количество join’ов зависит от количества свойств, участвующих в методе GetList.

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

Как я уже сказал, мое мнение, что битрикс сгодится только для простых сайтов. Если требуется какой-то более менее сложный функционал, то приходится ломать голову как обойти эти издержки универсальности.

Возникает вопрос. Зачем простому сайту, на котором в основном статьи и новости, дополнительные модули в виде магазина, форума, блогов, тормозной статистики (которую к тому же предлагают многие бесплатные сервисы). А ведь такой сайт программист может без проблем создать, например, на бесплатном фреймворке symfony, в котором админка генерится одной командой. Так зачем платить больше?

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

Это такие люди, в основном студенты, которые еще не слышали ни о теории баз данных, ни о паттернах проектирования, не работали с существующими фреймворками. Для них битрикс — это все, что стоит за сайтом. Они даже о новых технологиях узнают только тогда, когда она будет включена в очередную версию CMS.

Как-то раз ко мне подошел один из сотрудников за помощью. Он парсил файл CSV, но этот процесс у него отрабатывал не верно. Стали смотреть скрипт и тут программист высказывает свое предположение: «Может быть битрикс где-то закрался?». Может быть всемогущий битрикс каким-то магическим образом и мог бы закрасться в его скрипт, но дело в том, что он его запускал без подключения движка. На самом деле потом нашли обычную ошибку в логике самого скрипта.

Еще был случай. Отмечали чей-то день рождения и двое программистов начали обсуждать все достоинства битрикса. Один из них кинул фразу: «Ну битрикс — это очень мощная система, он внутри себя и язык Си использует, и ассемблер». Второй округлил глаза и не поверил. А тот ему: «Ну ты залезь в код битрикса, посмотри». Тут вообще без комментариев.

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

Таким образом, на свет появляются web-студии, которые штампуют на битриксе сайт за сайтом. Их основной задачей в итоге становиться увеличение штата сотрудников, способных делать сайты на битриксе. Дешевая рабочая сила. Чем больше штат, тем больше сайтов они смогут клепать.

И напоследок хотелось бы дать совет начинающим программистам. Не устраивайтесь на работу в web-студии, которые в своих описаниях вакансий упоминают слово «Битрикс». Если вы начнете свой карьерный путь с этого движка, то потом соскочить с него будет не просто. Пройдет года 2 и ваши друзья уже неплохо продвинуться в программировании, кто-то перерастет в проектировщика, а вы будете жить одними инфоблоками и не понимать что происходит внутри.Я сейчас не говорю о всех, но именно таких программистов я встречал часто. Конечно, все люди разные, кто-то может на работе использовать битрикс, но дома в целях самообразования тренироваться в других областях программирования. Но все же лучше набираться знаний на работе, где человек проводит большую часть своего времени.

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

job-interview.ru


Prostoy-Site | Все права защищены © 2018 | Карта сайта