Как стать автором
Обновить

Комментарии 175

Когда-то давно мы внедрили у себя такое правило «1.49N»* — если предстоят выходные длиной N дней, никакие новшества ни под каким предлогом не внедрять в течении 1.49N дней. Мы ничего не внедряем в рабочие процессы уже с 15 декабря на протяжении 4 лет. И мы не трогаем продакшн в любые дни, кроме вторника и половины среды.
___________________________________
*1 рубль 49 копеек — цена чекушки водки во времена СССР.
Много кто так делает.
вторника и половины среды — это понятно (хотя у нас можно до середины четверга), но понедельник чем не угодил?
Потому как после выходных действует правило N дней (ничего не трогать N дней). Мы заметили, что куча народу откладывает свою работу в нашей системе на «В понедельник» и «После праздников». Поэтому на понедельник у нас приходится повышенная пользовательская активность. Аналогично с окончанием праздников.
Мерси.
Но ведь если совмещать правила «1.49N до» и «N после», то при стандартных выходных (N=2) между ними остаётся только 5-N-1.49N = 5-2-2.98 = 0.02 дня, когда можно что-то трогать?
Я когда-то был профи битрикса и скажу, что бОльшая часть компонентов сделана из говна и палок.
Ох, как много передано в одной строчке. Я насчитал 4 антипаттерна.
href="<?= CUtil::GetAdditionalFileURL(SITE_TEMPLATE_PATH . "/css/jquery.ad-gallery.css") ?>"/>

Не могли бы Вы перечислить их?
short tags, глобальные переменные, singleton, да и вообще использование php в html не очень хорошая практика, давно придумали шаблонизаторы, например twig
Это кстати можно всё применить и шаблонизатор подключить. Но у разработчиков на битрикс так типа «не принято». Сколько понадобится времени/ресурсов строк кода, на то чтобы всё это заюзать и потом использовать? +к порогу вхождения, если это реализуют в ядре и нельзя будет иначе, а это значит меньше специалистов, выше цены, да некоторые конторы просто разорятся.

Наверно этим битрикс и отличается от многих других фреймворков, cms, — он удовлетворяет потребности рынка, а не эго программистов. Он не для «красивых» систем, в нём практически нет места новым подходам и технологиям. С точки зрения разработки как «культуры» он ужасен, но с точки зрения бизнеса, соотношения деньги/время/качество это идеальный вариант. Качество в данном случае — не качество кода или архитектуры, а качество обслуживания клиента, удовлетворения его потребностей.

+ habrahabr.ru/post/153225/

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

Не получится ли так, что посмотрев на стоимость лицензии, разработки, заказчик вообще выберет WordPress + практически готовое решение на шаблоне за 60$? На перекрашивание которого потратит несколько часов фрилансера? А не Битрикс?

Да рынок находится на таком уровне, он совсем недавно вышел из зачаточного состояния.
90% заказчиков подумают что это бесплатное говно, и вообще блог, а им нужен магазин, а битрикс это дорогое — значит хорошее и сайт красивый на русском и что-то про 1с, а 1с — это вам не хухры-мухры. У битрикса очень сильный маркетинг, если бы они направили все силы своего рекламного отдела или кто-там у них на аудиторию разработчиков, а не бизнес, вы бы были без ума, а они без денег :)

Тут плавно подходим к фундаментальным вопросам что такое хорошо, а что плохо и что лучше, много денег у твоей семьи или суперкод которого никто не видит и не поймёт кроме пары коллег, в ущерб своему материальному благополучию и где этот баланс? Тут я думаю пусть каждый решает сам.
И да «прыщавого компьютерщика с засаленными волосами» каким-бы специалистом он не был, никто слушать не будет, а вот серьёзный дядька Рыжиков на презентациях дело говорит. Я бы кстати с подозрением отнёсся к специалисту который мне советует сэкономить на его услугах, а предложение взять бесплатную cms выглядит именно так. «Скупой платит дважды», тупой трижды но такой поговорки почему-то нет.
Беспроигрышный вариант. Послушать серьезного дядьку — купить решение — все проблемы свалить на разработчика.
Есть правда серьезные дядьки, которые уже купили и напоролись, но так то ж у них свои бестолковые разработчики были. Даже если это официальные интеграторы.
Хороший вопрос. Супер код, в конечном итоге, будет следствием отсутствия ряда проблем: отсутствия изжоги разработчиков, позитивного опыта клиентов ну и т.д.

Вот возьмем Magento. По статистике (сейчас не найду, извините) самый популярный фреймворк для e-shop. Архитектура в достаточной мере «супер». Изначально так спроектирована. Следствие — и распространненость, и достаточное количество коммерческих решений. Тоже индустрия, причем с деньгами там разработчики шаблонов по 80$ за штуку. Хотя бы за счет количества продаж. И никакой шаблон магазина на Magento за 80$, извините, не сравнится с тем, что я вижу в маркетплейсе Битрикса тыс. за 15 рублей. И ведь поднялась рука у Magento'вцев взять и переписать все на версию 2, делая еще лучше.
Зачем в шаблонах нужны программисты? Заюзал twig, который прекрасно знают верстальщики, и стоят они дешевле.
Затем что часто сайт делает один человек он и верстальщик и программист и архитектор и сам себе проджект менеджер и иногда ещё и дизайнер и стоимость его труда равна средняя стоимость сайта по рынку/затраченное время.
Это в студиях, внедряющих Битрикс? Ужас какой.
В студиях часто просто программисту дают проект. Вася делает полностью этот сайт, а Петя этот. У программиста паралельно 2-3 проекта у менеджера 2-3 программиста и 10 клиентов. Разделение труда конечно имеет место быть, студии тоже разные бывают.
А где здесь синглтон и как вы можете называть short echo tag антипаттерном, если (цитирую)
Starting with PHP 5.4, short echo tag <?= is always recognized and valid, regardless of the short_open_tag setting.
Recognized не значит правильно. Вон goto, который запилили в одной из предыдущих версий (вроде 5.3) тоже recognized.
В yii2 в View слое во всю используют short_open_tag. И сторонних шаблонизаторов там нет, хотя подключить можно. И назвать это антипаттерном у меня язык бы не повернулся.
Это антипаттерн в чистейшем виде.
short_open_tag в большинстве своем отключен.
И лично мне непонятно, зачем команда Yii так издевнулась над своим комьюнити.
Я расскажу вам секрет: начиная с версии 5.4 запись <?= — не short_open_tag. Она доступна всегда.
А теперь посмотрите статистику по версиям PHP и удивитесь.
Да, не спорю, конкретно Yii требует 5.4.
Но не Yii единым.
Интересная логика называть антипаттерном новые возможности языка. Может у вас и трейты антипаттерн? И неймспейсы вы не юзаете, их же в 5.2 не было
Можно вопрос? Какие плюсы дает использование шаблонизатора в html вместо php?
Это вопрос, о котором спорят годами ) Лично я всегда придерживался мнения, что PHP — сам отличный шаблонизатор.

При решении специфических задач, конечно, можно прикрутить дополнительный. К примеру, если есть команда верстальщиков, которые уже знают Twig, но вообще никак не знают PHP. Или если хочется использовать БЭМ на сервере, можно использовать BH для PHP.
Как по мне, так не о чем тут спорить. Для чего может понадобиться костыль, который в разы хуже по функциональности исходного инструмента, да к тому же сильно усложняющий разработку фронтэнда? Разве что для раздутия бюджета.
Знаете, я тоже так думал, а потом увидел огромные по популярности проекты типа phpbb 3.1.2. Там просто адовое количество шаблонов с логикой иф иф иф иф и с кучей адового html.

Для разработки и правки шаблонов просто достаточно посмотреть в документации, что делает данный шаблон, если не понятно по названию. Читаемость в разы выше, чем нативный разноцветный код и соответствененно верстка.
Это дает изоляцию разработки тем для форума независимо от кода ядра и имен всяких переменных, которые могут менять по настроению. То есть темы живут отдельно, ядро тоже.
Я считаю в проектах размаха шаблонов как у phpbb это вполне оправдано. Там глаза сломаешь на простом php читать столько шаблонов. В остальных… где шаблонов не так много… шаблонизатор нафиг не нужен, как мне на сегодня кажется.
Мне кажется, отсутствие возможности размахнуться художествами в коде — не особенно плюс, хотя и вынуждает держать логику отдельно от шаблонов.
Так я про что. Вот элементарный пример
Заголовок спойлера
<!-- IF S_DISPLAY_JUMPBOX -->

	<div class="dropdown-container dropdown-container-{S_CONTENT_FLOW_END}<!-- IF not S_IN_MCP --> dropdown-up<!-- ENDIF --> dropdown-{S_CONTENT_FLOW_BEGIN} dropdown-button-control" id="jumpbox">
		<span title="<!-- IF S_IN_MCP and S_MERGE_SELECT -->{L_SELECT_TOPICS_FROM}<!-- ELSEIF S_IN_MCP -->{L_MODERATE_FORUM}<!-- ELSE -->{L_JUMP_TO}<!-- ENDIF -->" class="dropdown-trigger button dropdown-select">
			<!-- IF S_IN_MCP and S_MERGE_SELECT -->{L_SELECT_TOPICS_FROM}<!-- ELSEIF S_IN_MCP -->{L_MODERATE_FORUM}<!-- ELSE -->{L_JUMP_TO}<!-- ENDIF -->
		</span>
		<div class="dropdown hidden">
			<div class="pointer"><div class="pointer-inner"></div></div>
			<ul class="dropdown-contents">
			<!-- BEGIN jumpbox_forums -->
				<!-- IF jumpbox_forums.FORUM_ID neq -1 -->
					<li><!-- BEGIN level -->   <!-- END level --><a href="{jumpbox_forums.LINK}">{jumpbox_forums.FORUM_NAME}</a></li>
				<!-- ENDIF -->
			<!-- END jumpbox_forums -->
			</ul>
		</div>
	</div>

<!-- ELSE -->
	<br /><br />
<!-- ENDIF -->



Тут как ни крути а логика считай всегда лежит только в одной строчке. Для копипаста это очень удобно, чем нативно. Тем более там половина условий которых я не понимаю, не интересовался, и со временем запомнить и вспомнить их куда легче. Особенно, если они годами! не меняются. Помоему, со смарти переезд в обозначениях не изменился.
Ну, конкретно этот шаблон (кстати, что это за шаблонизатор?) — совершенно не читаемая каша. Уж лучше было бы применить немного PHP для улучшения читаемости — скажем, составлять длинные списки классов с помощью массивов.

Есть же отличные примеры правильной шаблонизации на чистом PHP — посмотреть на Yii, Kohana или любой другой MVC-фреймворк.
phpbb 3.1 переписали на симфони. Говорят, это теперь твиг) примеры на чистом php есть, а форумов нет)
А как переписать это шаблон на php, если ядро меняется. Логика у форумов примерно ясна, чо то скрыть, че то показать.
Понимаете, если кто-то не умеет писать читаемые шалблоны, то это не проблема языка — это проблема разработчика. Phpbb написали почти 15 лет назад, и говорить на его примере о плюсах шаблонизаторов просто некорректно.
15 лет назад написали и с тех пор его никто не трогал. Да?)))
Переписали его на симфони в прошлом году. Тут понимаете, если никто ничего не пишет, то и проблем нет. Читаемость шаблона, вопрос сложный. Причем на столько, что я его все таки оставляю на совесть компетентности разработчиков, которые как вы сказали 15 лет назад заварили кашу. Они этим занимаются, они получают фидбек, они двигают развитие.
  1. short tags в php-шаблонах — не антипаттерн
  2. глобальных переменных в этой строчке нет, только объявленная константа
  3. синглотона тут тоже нет, есть вызов статического метода из класса-хелпера CUtil
  4. про шаблонизаторы спорно, но использование php-шаблонов уж точно не антипаттерн
Short tag в php это <? ?>, а конструкция <?=?> не является шоттэгом, это аналог <?php echo $somevar; ?> и она вполне валидна.

SITE_TEMPLATE_PATH — это константа, а не глобальная переменная.

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

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

Единственное, что может подкрепить этот вывод — использование в текущем высоконагруженном битрикс проекте из него только API. Все остальное — самостоятельные компоненты, тщательно поддерживаемые кешами (можно насчитать их как минимум трех уровней — статики на поддомене, хтмл-кеш, мемкеш из общего). И все это надо всегда контролировать и держать на пульсе, ибо вылет одной системы в нагрузку убивает все остальное. И да, я умею готовить битрикс, раз все это все еще работает.
О, а вот это уже очень интересно. Можете рассказать подробнее?
Мог бы, но что именно интересно и о чем рассказать?
А вот чтобы не было обвинений в голосновности, просто перечислить наиболее серьезные проблемы и каким образом пришлось обходить.
Очевидно, что автора статьи пытаются потроллить ссылками на доки. В случае реального опыта это уже сложнее.

Я никогда не стремился что-то осуждать. Поэтому в голове не откладываются неприятные моменты, оставляя место лишь best practice. Которое потом применяя находишь вновь и вновь причины делать именно так.

Задача: вывести example.com/best-feature/ в best-feature.example.com
Правильное решение задачи: использование мультисайтовости (множества доменов на одной копии ядра). Будет на доп. домене промо-страница с фоточками, но все равно так как основная редакция «Бизнес» то и доп. лицензию надо докупать «Бизнес» — 17000 рублей. Дальше создаем новый сайт, привязываем к папке /best-feature/ и все готово.
Как решено на практике:
<?php $_SERVER["DOCUMENT_ROOT"] = '/valid/path/of/example.com/';
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
// it worked!

+ конфиг nginx, у которого root стоит /valid/path/of/example.com/best-feature

Проблема не серьезная, просто неприятная с организационной и правовой точки зрения.

Другая задача: организовать показ баннеров со счетчиком
Проблема: битрикс открывает сессию для каждого гостя со всеми вытекающими последствиями
Решение: считать не битриксом

Задача: корректное обновление html-/композитного кеша
Проблема: кеш-тайм, установленный, пусть даже для стандартного компонента — работает так, как задан кеш-тайм. То есть, полугодовая новость, у которой тоже время жизни кеша 3600 секунд (например) — будет обновляться при входе в нее. Работает эта фишка посредством отдачи html-кеша + javascript-запрос с ?bxrand={timestamp}. Далее какими-то дебрями включается работа Cache Dependies, при котором происходит детектирование наличия измененных данных, чтобы кеш обновился по факту изменения данных ранее тайм-аута в 3600 секунд. И здесь начинается самое интересное — на 2-3 миллиона новостей, с разным cache time от 100 до 3600 секунд сколько уйдет ресурсов на проверку наличия изменений (я не говорю об истечении ttl даже). Отвечу сам — с онлайном в 10к юзеров будет идти порядка 20-30 запросов на наличие изменений.
Решение: заблокировать к черту запросы с ?bxrand= и научить «срочные» компоненты, изменения в которых критично отобразить сразу — чистить за собой по изменению. cron_events раз в 1/5/30/60 минут могут предложить одни из более глубоко копавшихся в битриксе. Разумеется добавив свой скрипт апдейт_чекера. Увы, работает эта тема нестабильно. С одной стороны разобравшись с вылетом CEvent:Util() not found по запуску в cli режиме получаем потенциальную возможность работы более 1/5… а дальше не важно скольких минут. Запуститься дубликатом, сожрать все процессы php5-fpm (достаточно одного в каждом форке, чтобы они не завершались и висели в ожидании пришествия). Или обратная ситуация — когда его излишняя работа вызовет массовое перегенерирование того, что истекло по обычному ttl.

Задача: быстро принять и обработать более 100 запросов в секунду с гарантированным 1-3 запросом в базу (чтение, чтение, запись).
Проблема: банальнейшая — при общей нагрузке черта с два любой типовой компонент битрикса справится с этим.
Решение: а нужен ли битрикс? Пусть наш скрипт работает без него. Читать данные мы будем один раз, сохранив далее их в memcache, проверим (потратим процессорное время) и при успешной проверке запишем все в… монгу. И когда момент приема запросов пройдет (длится фиксированный период времени) — спокойно вторым скриптом все разберем и разложим по полочкам в битриксе. Да, можно и скрптом на основе битрикса юзать мемкеш, но эта архитектура мне кажется чем-то убийственным. Highload-инфоблоки не предлагать. Как иначе сделать это на битриксе я не знаю.

Все постепенно приходит к тому, чтобы использовать битрикс в режиме асинхронного хранилища контента, занимаясь кешированием и выборкой самостоятельно (своими средствами). Когда настанет момент, что есть лучшее хранилище самого разного контента и его выборки лучше чем битрикс (с точки зрения контент-менеджера прежде всего). Тогда мы сможем от него отказаться. А пока платим за две бизнес-лицензии, используя лишь админку и api.
Спасибо — очень интересно. Особенно последняя задача. Получается, что купив самую дорогую редакцию и надеясь на полноценное решение, по хорошему останется только админка и API?

А можете написать что-то отдельным постом, а то хочется в карму отблагодарить, а без публикации не дает.
На самом деле не жалко этих денег. Просто потому что я бы сам делал тот же самый функционал API и админки дольше. Если бы вообще смог повторить -). А требовать что-то еще — бессмысленно. Битрикс справится с любой задачей, которую он призван решить. Будто то интернет-магазин, блог, новостной портал. Причем не только функциональную задачу, но и задачу бизнеса. Проблемы начинаются тогда, когда: 1) не хватает штатного функционала — пишем свои решения; 2) нетипичная нагрузка — нельзя полагаться на массовое решение, когда твоя задача и решение специфично и единственна в своей реализации; 3) программирует битрикс начинающий разработчик — не по документации/правилам/паттернам/здравому смыслу. Во всех остальных типичных случаях он по моему мнению лучше других аналогов.
Касательно отдельного поста — думаю я часть большого количества людей, желающих идеалистично написать на хабр какой-то пост, но всегда терзают сомнения в полном разборе/понимании затрагиваемой темы. Поделиться есть много чем. Как идеями, так и чем-то законченным. Но всегда останавливают как причина выше, так и комплекс несостоятельности своей манеры передачи информации. Уж извините)
> Решение: считать не битриксом
> Решение: а нужен ли битрикс?
> Решение: конфиг nginx + лицензию надо докупать «Бизнес» — 17000 рублей
для начала — Что за проект? Под какие задачи создавался? Под какого заказчика? (если что-то из этого можно рассказать)
Далее: на какие модули архитектурно разбили проект, какие технологии кроме Битрикса прикручивали? Сколько серверов, в конце-концов? как организовали мониторинг?
может быть какие-то модули с маркетплейса Битрикса использовали? — тоже было бы интересно.
Проект действующий, многосторонний, рассчитанный на аудиторию в более 10 млн уников в месяц. Заказчик — мой работодатель) Это все, что я… хотел бы рассказать. Простите)

Архитектурно: CloudFlare (бизнес), nginx, php5-fpm, Percona, Ubuntu, munin на одном сервере 14 ядер по 2 ГГц, 32 Гб оперативки, 1 ТиБ место — хватает. Это веб-сервер. Другие серверы есть и похуже, что-то очень сильно получше — не имеют значения в обсуждении. Они больше заняты обработкой в live-режиме большого контента и раздачу большого контента. Веб-сервер с ними не взаимодействует, кроме статистики munin забрать, да пары мегабайт данных в 5 минут.
Модули с маркетплейса да — минимизация админки. К сожалению, у нас задачи вне рынка маркетплейса. Примеры таких задач: получать картинки с iTunes и Last.fm, взаимодействовать с сотовым оператором по поступающим смс (с программной логикой ответа — опционально), связь с каким-то оборуованием, отправляющим что-то на адрес в режиме raw, post, json — по-разному, банковский билинг (альфа, киви только сейчас), рассылки новостей (попробуйте сделать ее битриксом хотя бы на 10000 получателей), аплоад файлов весом по 200-400 Мб, массовый ресайз картинок в 4 формата, выдача json-ов для разных устройств от мобильных приложений, до медиацентров DuneHD, генерация rss. Все это нетиповые задачи, которых точно нет в маркетплейс, а что есть, с тем особо и не хочется разбираться и лучше сделать самому. Не сказал бы что это все какой-то космолет. Просто ставятся задачи и решаются. Битрикс хорош тем, что у него низкий уровень вхождения по изучению начинающим программистом. Решения в маркетплейсе расширяют штатный функционал или делают какую-то все таки типовую работу (чаще всего связанную с магазинами), которую проще купить, чем написать. У нас проще написать, ибо потом разбираться с чем-то не хочется. Плюс, покупая решение я боюсь в нем увидеть выкидыш зла, которое потом нельзя использовать. Кстати, забыл, есть одно установленное решение — интеграция со службой доставки СДЕК. Но его купили только потому что его стоимость была дешевле, чем чистое время писать интеграцию самим. Да и какой-то дальнейшей доработки функционала доставки не предусматривалось.
Очень интересно.
Да, задачка, конечно, не «под Битрикс» и понятна описанная вами выше ситуация с нагрузками. Низкий поклон за труд :)

А очереди на обработку-конвертацию на чём реализуете?
Очереди нет. Есть параллелизация. Три демона ждут обновление специальных ключей в мемкеше и по этому событию выполняют задачи, сохраняя/отправляя/передавая результат необходимым сервисам. В итоге все получатели получают информацию максимально быстро, в зависимости от сложности необходимых обработок. Реализовывать очередь — необходимо что-то вроде ноды, наверное. И вообще, всегда боюсь любых очередей, поэтому даже не старался исследовать этот вариант.
Похоже ваш твиттер вас выдал www.radiorecord.ru/bitrix
Угадал?)
Я знал, что найти через меня ссылку на проект чрезвычайно просто. Таким образом заинтересованный человек получил бы нужное с минимумом движений, а вот все остальные мимо проходящие — поленились бы. Этим и объясняется мое желание умолчать о проекте. Спасибо, что отнеслись с уважением к моему желанию.
С вашего позволения поделюсь своим опытом.

У нас например были проблемы с производительностью, вроде уже всё что можно переоптимизировали, посещаемость высокая, битрикс тяжёлый, тогда ещё mysql сервер(сейчас mariadb) не выдерживает.
Есть у битрикса вот такая проблема в архитектуре idea.1c-bitrix.ru/takeout-countersshowcounter-in-a-separate-table/ счётчик просмотров хранится в той же таблице/строке что и элемент, из-за этого mysql-кэш запросов фактически не работает. Написали свой модуль отложенного обновления счётчиков просмотра, битриксовый counter из нагруженных страниц выпилили.

Битрикс хранит данные о просмотренных баннерах в cookie пользователя, прям данные а не какой-нибудь id посетителя, в нашем случае(много баннеров) получается очень большая строка превышающая максимально допустимый размер cookie, соответственно ряд баннеров показывается больше чем нужно одному посетителю. Пока вижу только вариант писать свой модуль для ротации баннеров, м.б. основываясь на существующем.

Нельзя так просто взять и написать в getlist(api) то что тебе нужно. Простой на первый взгляд запрос к бд через api может легко сгененрировать 100 mysql запросов с join'ами, из-за одного казалось бы невинного параметра в фильтре, иногда лучше выполнять доп.обращения к бд через api в цикле, нагрузка получается ниже.

Использование стандартных компонентов стандартным образом на высокой посещаемости просто уложит сервер, т.к. они проверят права на чтение текущего посетителя, учтут все бизнес процессы и документооборот, создадут отдельный кэш для именно этой маски доступа и выведут ссылку «все» в постраничной навигации, потом даже честно попытаются показать все 65000 новостей поисковикам которые её проиндексировали. 90% того что там написано ненужно так что всегда стоит сделать копию и выпилить 100 лишних строк или написать полностью свой компонент.

Обновления на продакшене — это просто ад. Битрикс не даёт списка изменений, нельзя нормально сделать diff, всё что мы зачастую видим «Незначительные исправления», которые порой выливаются в значительные ошибки в своих нестандартных компонентах(без которых как вы поняли выше никак).
Всё вышеописанное, конечно имеет смысл, но в том случае, когда на битриксе уже есть продолжительное время работающий проект.
Так, например, с banki.ru было. Недавно у них «стукнуло» 2 миллиона уников в сутки, насколько мне известно :)

Но это всё не отменяет того, что «знал бы прикуп...»
Вы правы. Использование Битрикса — сложилось исторически. Сначала студия, потом был программист, потом его сменил я. Но, к сожалению, я не могу сейчас ответить что бы я выбрал много лет назад, идеально зная то, что есть сейчас. Даже с нятяжкой не придумать того, что могло бы его заменить. Да и, может быть я бы вообще решил бы бросить веб-разработку, зная в ней предел стоимости работы и осознавая в чем порой приходится ковыряться. Вероятно, пошел бы учить что-то более низкоуровневое и более типизированное, объектное)
Это очень круто. Но зачем? Это равносильно созданию проблем самому себе и героическому их преодолению.
Зачем что? Свои компоненты? Они нужны тогда, когда требуется функционал совершенно специфический. Например, панель работы дежурного/диджея для отображения текущего трека (кратко: играет лайв микс из Traktor, метаданные треков в силу миксования между панелями могут высылаться любые из активных — поэтому эта панель должна отображать все из активного). Или другой пример, раздел полуновостей музыки. Они могут интегрироваться с новостями, всплывающими виджетами, содержаться во множестве (артисты, альбомы, треки — как угодно могут связываться друг с другом) — стандартным компонентом это можно реализовать, но с большими доработками. А свой компонент суть — контроллер, который подготавливает данные из базы (модели), шаблон компонента — уже представление для страницы раздела, попапа или какого-то виджета. Да даже для банальной задачи страницы со списком новостей и детальная страница новости — свой компонент. Почему? Потому что в этой новости кроме самой новости могут быть различные виджеты, попап-галереи, аудиотреки и тетрис. И при этом совершенно не нужен функционал хлебной дорожки, постраничной навигации, эрмитаж тем более, фильтров и остального прочего. Эта как раз та ситуация, при которой типовая задача требует в себе бОльшей гибкости (ага, шаблон представления этого компонента работает в режиме десктопной версии, версии для WebView, версии json) при этом, даже само наличие доп. возможностей может сделать выстрел в ногу.

Так что свои компоненты — единственный правильный выбор при разработке любых нетиповых хотелок заказчика/руководства именно потому, что код максимально минифицирован и в нем нет того, что не работает. Так или иначе — доработка стандартных компонентов под хотелку — максимальная скорость (не всегда) для выполнения задачи. И превращается после адекватного периода использования и доработок это все в ад, который надо полностью стирать и переписывать с нуля. И хорошо, если этот ад независим от остального — так нет же! Сколько фриланс задач я не смотрел — всегда в каком-то шаблоне представления компонента идет прямой вызов апи и по результату выдачи апи в foreach'е вызывается еще какой-то из любимых стандартных (+ доработанных) компонентов, далее это все загружается по ajax (да, jQuery Ajax, а не чем-то с HistoryAPI) и надо чтобы корректно работала кнопка «назад» в браузере. И ссылка была постоянной на результат этого бреда. Ну и композитный кеш там внедрите, а то тормозит как-то…
Я полностью поддерживаю идею с отказом от реализации нестандартной функциональности через стандартные компоненты, абсолютно очевидно, что попытка такой реализации приводит к разведению болота в коде.

Вопрос в том, зачем вообще использовать в таком проекте Битрикс?
Ответил в ветке выше, процитирую себя же:
Все постепенно приходит к тому, чтобы использовать битрикс в режиме асинхронного хранилища контента, занимаясь кешированием и выборкой самостоятельно (своими средствами). Когда настанет момент, что есть лучшее хранилище самого разного контента и его выборки лучше чем битрикс (с точки зрения контент-менеджера прежде всего). Тогда мы сможем от него отказаться. А пока платим за две бизнес-лицензии, используя лишь админку и api.

Если подскажете выход или направление в какую сторону посмотреть — буду благодарен. Я — пока не нашел чего-то лучше.
Я не в курсе, честно говоря, как в текущих версиях, но во времена, когда я работал с этой CMS идеология хранения контента в ней была не лучшей: редактирование статических страниц подразумевало непосредственное изменение php-файлов на жестком диске, админка инфоблоков была приспособлена только для новостей и каталогов.

Опять же, не очень понятно, как на Битриксе строить процесс деплоя: контент хранится прямо в файлах — о контроле версий можно не мечтать; структура данных описывается настройками инфоблоков — она является непереносимой.

Мы разрабатывали админку точно под необходимую бизнес-логику. Сначала использовали фреймворк Kohana, потом перешли на Yii.

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

Дополнительным плюсом этих решений является инфраструктура для юнит- и интеграционных тестов. Битрикс же является просто нетестируемым. Я даже не уверен, что его ядро покрыто тестами.
Ну статичный контент в файлах как раз очень хорошо поддается версионности. Проблема может возникнуть когда в статичном файле помимо include header и footer существует какой-то еще код. Тогда Битрикс его может «преобразовать».
А вот версионность базы — это беда. Для случая когда в php-коде встречается текст есть штатный функционал подключения языка, при применении которого даже в шаблоне нет ни единой фразы текста. То есть, с этим все ок, вроде, кроме версионности базы.

Что касается деплоя:
1) работаем на копии
2) утверждаем обновление
3) на продакшене запускаем скрипт миграции, который создаст/изменит инфоблоки и его свойства и далее забирает новые/измененные файлы с git. Опционально, подставляет значения ID созданных инфоблоков/свойств в параметры вызова нового функционала.
4) Готово

С тестами — пропасть. Множество файлов ядра имеет какие-то нетехнические комментарии, TO-DO и много просто закомментированных функций, которые были активны до обновления. (люблю иногда полистать git diff после обновления)
на продакшене запускаем скрипт миграции, который создаст/изменит инфоблоки и его свойства и далее забирает новые/измененные файлы с git. Опционально, подставляет значения ID созданных инфоблоков/свойств в параметры вызова нового функционала.

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

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

Изменение настроек инфоблоков скриптом — это выход, но мне кажется, что уж очень это замороченный способ. Особенно с учетом подстановки ID инфоблоков прямо в код, где добавляются компоненты (кстати, он потом коммитится, как соотносится с dev-копией?)
В идеале, нужно всё же вынести все данные в базу, чтобы контентщик не менял файлы.
Ну а если уж меняет — то при выкатке почему не делать коммит? это можно даже автоматизировать.

ID инфоблоков, свойств НЕЛЬЗЯ вставлять в код числом! Это первое правило. Только через символьные коды.
Я уже подзабыл, как в таком случае производится связывание компонента и блока? Кажется, там есть символьный код.
У стандартных компонентов есть параметр, через который можно передать именно символьный код. Иногда можно даже подставить его в параметр ID и компонент сам преобразует к нужному виду.

В своём же коде, конечно, нужно использовать гуляющий по интернетам класс CIBlockTools.
Статика на то и статика, что изменяется от случая к случаю. Поэтому если по очередном git status я вижу изменения в статичном файле, смотрю diff и комиччу его отдельно. Это редко и не вызывает проблем. По крайне мере если бы я был в настроении настраивать оптимизацию рабочих моментов, то начал бы далеко не с этого -)
Все равно же это лишняя трудность. Ее можно оправдать тем, что несложно с ней справиться, но я придерживаюсь мнения, что никогда не нужно оправдывать неудачные решения.

Опять же, Битрикс поддерживает модель наивной разработки на PHP — когда каждый файл является страницей. Это плохо как с точки зрения разработки, так и с точки зрения безопасности.
когда каждый файл является страницей

Это феерический бред битрикса.) Людям невозможно объяснить что такое index.php и почему его нужно создавать и почему допустив ошибку в этом шаблоне можно положить сайт., а исправить уже через ftp.
а ошибка в файле init.php? любая ошибка в этом файле кладёт сайт(ы) на раз-два. исправить можно только через ftp, ssh, или через другой сайт (если повезло, и ошибка init.php произошла в отдельном сайте, а не в глобальном init.php).
Да нет, просто открыть страницу в визуальнике в исходном коде, где кинутый какой нить компонент. Он же там вроде так php кодом и лежит… ну подправляют не так и белая страница. Визуальник в битриксе отдельная песня.
За последнее время я вижу уже несколько статей с неоднозначными отзывами о продуктах 1С. К чему бы это?
Если вы намекаете на проплату, то я хотел бы узнать адрес кассы :)
Присоединяюсь к вопросу. У меня накопилось много претензий к продукции 1С, чувствую, стану миллионером.
Даже не подумал про это. Может все-таки дело в общем подходе.
Не знаю, несколько лет не работал с битриксом, недавно потребовалось помочь хорошим знакомым. Залез в новую версию — там то же самое, т.е. лапшекод с логикой в шаблонах, около 100 параметров для подключения среднего компонента и т.д. и т.п.
«Наболело». Ну и импортозамещение, мать его.
«За последнее время я вижу уже несколько статей с неоднозначными отзывами о продуктах 1С. К чему бы это?»

Наверно к тому, что вы веткой ошиблись. Битрикс не является продуктом 1С.
Просто из интереса, на что перешли сейчас?
На ERP/WMS системы :)
У меня сложилось впечатление, что автор возмущается на Битрикс, потому что не умеет с ним работать. Если бы автор имел больше опыта работы с этой CMS то большинства проблем можно бы избежать.

P.S. Сам я никогда на Битриксе не писал из-за боязни вот таких вот ситуаций. Есть большое количество более предсказуемых в работе CMS. И если интеграция с 1С не является одной из главных задач проекта, то у Битрикса не так много преимуществ перед другими популярными e-commerce движками.
Если бы у автора было больше опыта работы с Битриксом, то он бы отговорил заказчика от этой cms.
По поводу отговорить заказчика.

Возможно что-то поменялось, но примерно в 2007(+-1) году я работал в небольшой студии. Мы продавали Битрикс. Именно продавали, как оказалось. Я как-то пришел к директору и спросил: Зачем? Зачем мы делаем сайты на Битрикс? Это же полное фигня, а не система. На что получил очень ясный ответ:

/сразу скажу что цифры выдуманы, так как точных цифр не помню, но они точно передают смысл/

— Вот смотри, возьмем Битрикс. Битрикс для клиента стоит 200К из которых 50К вернутся в студию (зависит от статуса партнерства), разработка еще 200К, из которых реально уйдет на производство только 100К. Итого прибыль для студии 150К.

А теперь возьмем самописную CMS (такая тоже была). Ее никто не купит, поэтому тут навара нет. Разработка обойдется заказчику в 150К, из которых прибыль студии только 50К.

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

Поэтому отговаривать заказчика никто не будет. И разговаривать с руководством студии тоже бесполезно — они себе не враги.
Битрикс лишь на 80% херня, на остальные 20% — просто невыносим. Не знаю даже, стоило ли описывать проблемы так подробно, когда голый дистрибутив весит полгига, а в шаблонах при этом добрая доля логики. Попоболь действительно со всем: от компрессии до адекватной работы под чем-либо, кроме апача. Клиенты понимают все, но интеграцию с 1С ставят во главу угла.

А вы случаем не копались в их патентованном «композитном сайте»?
Это «композит» можно сделать на любой системе на nginx — кешировании и быстрой генерации страницы + сжатие css и javascript. Будет ещё эффектнее.
и лого убирать за 300к не придётся
Кстати да, довольно забавно звучат рекламные слоганы об «ускорении сайта в 100 раз». Естественно что статичный файл уделает динамически генерируемую страничку и разрыв будет просто огромным.
Ваш провал свидетельствует только о вашем непрофессионалолизме. Не нужно идти на поводу у заказчика (вы ведь не говорите ему, как лучше продавать металлоконструкции) и браться разрабоатывать продукт на платформе, в знании которой вы не уверены, и уж тем более применять к ней привычные процессы работы, а потом говорить, что git тормозит.

В своё время я наступил на те же грабли, тоже ныл в блоге по поводу кривизны Битрикса, и пару лет назад я бы с вами даже согласился. Но со временем я понял, что проблема была не в заказчике, не в моём начальстве, настоявшем на изпользовании неизвестной мне платформы, и даже не в Битриксе. Проблема была во мне, в том, что я не смог убедить руководство, что такой подход закончится плохо.
А у меня руководство бессмыслено в чем то убеждать :)
С Битриксом вполне сносно можно работать в .git, нужен только довольно грамотно составленный .gitignore (есть несколько примеров на github).
Еще из полезностей:
github.com/matiaspub/bxApiDocs/ — этот репозиторий можно склонировав единожды подключать к своей любимой IDE чтобы работали автокомплит и документация
github.com/rhamdeew/Bitrix-API-snippets — сниппеты для sublime text
Есть у этой системы возможность объединять и сжимать css и js файлы, подключенные правильным образом.


А почитать мануалы по работе с системой и отключить этот функционал в настройках главного модуля? joxi.ru/4zANbEdsw0MMA9
Если заказчик стал жертвой маркетологов Битрикса — переубедить не удастся, а проблем потом будет немерено
Работал с битриксом и моё мнение: Если битрикс из коробки не решает 85% ТЗ, то лучше брать другую систему.
Гит порой задумывался очень надолго, индексируя множество файлов.

А вот это странно, вы о папке local и gitignore слышали, что нибудь?
> Если битрикс из коробки не решает 85% ТЗ, то лучше брать другую систему.
Вот да — аналогичный вывод (тоже работал). Единственный неприятный ньюанс — заранее неизвестно, что будет потом. Вот решает битрикс, скажем, 90% ТЗ, а потом заказчик захочет ещё какого-нибудь существенного функционала. Ну, первого разработчика, допустим, это может и не коснётся. Но кто-то другой влипнет :)
Я не сразу догадался, но методом исключения выяснилось, что при отсутствии $_REQUEST[‘ajax’] мы получали NOTICE, который почему-то отключал дальнейшую работу Битрикса. При добавлении проверки isset каталог заработал.

Только спустя много лет работы с PHP, я начал понимать почему не любят программистов PHP (работал один в команде, в течении лет 6ти)
На PHP ушел с C++
Сейчас на Java работаю.
Так вот. Всю жизнь вписывал в index.php set_error_handler чтобы скрипт падал при любом Notice и подобной лабуде, либо выдавал нужные для отладки данные, но не шел дальше. Стал это делать после довольно большого проекта на PHP, который разрабатывался больше года. И чем больше вещей можно было завернуть в классы, тем больше вещей в эти классы заворачивалось. (хоть какая-никакая типизация).
Сейчас работаю с людьми, которые ставят @ вместо isset и проверки на null. Это убивает :)
в 1С всё сделано через BX.js, которая тоже мало где описана.

На всякий случай для Вас и других читателей оставлю эту ссылку, вдруг пригодится — dev.1c-bitrix.ru/api_help/main/js_lib/index.php
Не буду говорить, что Битрикс — это плохо или обратное.
Но эту статью могут увидеть те люди, которые попали в похожую ситуацию. Может быть их спасут вот эти ссылки:
http://dev.1c-bitrix.ru/api_help/
http://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&INDEX=Y
http://dev.1c-bitrix.ru/community/webdev/
«Ваш провал свидетельствует только о вашем непрофессионалолизме». — Полностью согласен.
Если битрикс такое говно, то почему на нём было решено делать магазин?

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

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

dev.1c-bitrix.ru/user_help/content/iblock/components_2/catalog/catalog_element.php
В настройках компонента «bitrix:catalog.element»,
Параметр ADD_PROPERTIES_TO_BASKET — Добавлять в корзину свойства товаров и предложений ADD_PROPERTIES_TO_BASKET [Y|N] При отмеченной опции становятся доступными настройки выбора свойств товаров и предложений для передачи их в корзину и заказ.

Результаты поиска, по задумке дизайнера, должны были делиться на три вкладки

Я бы поставил 3 компонента search.page(либо объединил их в комплексный) с разными настройками «Где искать».
Либо просто вот это решение установить marketplace.1c-bitrix.ru/solutions/infospice.search/

И тут мы сами того не подозревая загнали себя в угол. Битрикс передает параметры пагинации в гет параметрах PAGEN_1, PAGEN_2

dev.1c-bitrix.ru/community/webdev/user/35986/blog/12074/
bxapi.ru/src/?module_id=main&name=CDBResult::GetNavParams
global $NavNum; // номер пагинации предыдущего списка элементов

Или вот решение marketplace.1c-bitrix.ru/solutions/orion.infinitescroll/

наши «любимые» костыли

Похоже что опечатка, кавычки лишние.
dev.1c-bitrix.ru/user_help/content/iblock/components_2/catalog/catalog_element.php
В настройках компонента «bitrix:catalog.element»,
Параметр ADD_PROPERTIES_TO_BASKET — Добавлять в корзину свойства товаров и предложений ADD_PROPERTIES_TO_BASKET [Y|N] При отмеченной опции становятся доступными настройки выбора свойств товаров и предложений для передачи их в корзину и заказ.


Вы уж простите, но я не понял как бы мне помогла настройка компонента детальной карточки товара при добавлении товара в корзину. У меня товары добавлялись в моем скрипте используя только методы api, в компонент это никак не попадало. То есть CSaleBasket::Add метод не добавлял свойства товара, о чем я и написал
Судя по посту, на начало проекта, опыт работы с битриксом у вас стремился к нулю, а начало работ было где-то за около «неделю до Нового Года». Так может это ваш опыт и ваша оценка времени чуть не погубила ваш НГ?
Я не считаю, что это был провал. Я описал те трудности, с которыми мы столкнулись и которых не ожидали. Если бы мы не работали раньше с Битриксом, то конечно не начали бы проект на нем. Не всегда проект на Битриксе это интернет-магазин. А у последнего есть свои особенности. Я свято верю, что кто-нибудь имеющий отношение к созданию Битрикса читает посты о нем и увидит, что у сообщества есть трудности при использовании, и постарается сделать эту систему проще доступнее и удобнее.
> Я свято верю, что кто-нибудь имеющий отношение к созданию Битрикса читает посты о нем и увидит
Судя по статьям на хабре про тюнинг мускуля, архитекторы битрикса тут есть.
Но это все равно ничем не поможет. Очень наивно полагать что они не знают проблем битрикса.
А проблема у него одна — это тонна говнокода. Такое разгрести и превратить в благоухающую поляну с единорогами не получится. Только если выбросить все и писать заново и с самого начала хорошо.
Но на такое они не пойдут, ибо итак все покупают, и есть армия «сертифицированных битриксоидов» которые умеют есть старый кактус и не израниться насмерть.
Плюс еще не понятно от чего они зарабатывают больше от лицензий за сам битриск или от курсов по битриксу.
Главная проблема в том, что вы вообще не понимаете как работает битрикс. Но пытаетесь с ним работать как с другой cms. В итоге появляется франкенштейн, который вообще не понятно как работает и, наверняка, как только на сайт пойдут клиенты — он ляжет под нагрузкой просто потому, что забили на кэширование или еще что-нибудь не так сделали, как надо.
А потом — «битрикс плохой», ага.

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

Любимый код из шаблона с маркетплейса — всегда его вспоминаю — это запрос списка разделов 1-го уровня каталога через GetList, внутри цикла по результатам — запрос списка подразделов раздела (через GetList, ага), а внутри второго цикла — третий запрос с циклом. Ну красота же! Хочется взять обнять и у... плакать
Автору для полного (не)счастья не хватило всего пары вещей: валюты, скидки.
Когда у вас у разных SKU могут быть цены в разных валютах, а на некоторые SKU дана скидка — вот тут начинается настоящий взрыв мозга. А потом этот взрыв догоняет ударная волна в виде фильтрации по цене в умном фильтре с учетом валют.
На самом деле все эти задачки решаемые, но не так быстро и просто как хотелось бы.

Хочется спросить автора сколько в итоге человеко-часов программиста было потрачено
3х + мультиязычность.
Комбо!
Немного о себе: Сам лично нашел 2 бага в битриксе один пофиксили второй попросили ждать лучших времен

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

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

Про клиентов: Почему в России много битрикса? в году этак 2005, наш манагер которая все жаловалась на то что программисты ленивые пришла как то с диском битрикса и сказала, вот оказывается есть система когда вы (то есть мы программисты) ненужны, здесь все есть уже и махала перед нашим носом диском.
Ну, это примерно тоже самое, что php-программист, возьмет задание сроком в неделю, но выполнять его придется на другом ЯП, до селе не известном герою.
Продукт конечно кал, но большинство ваших проблем можно было решить с помощью сторонних компонентов и поиска в гугле (у гугла не только первая страница работает).
Когда-то, когда я зеленым новичком начинал свою карьеру в маленькой веб-студии, я помимо воли получил опыт по созданию сайтов на Битриксе: по «натягиванию шаблонов», интеграции с 1С, созданию типового сайта, на котором первая партия доработок выливалась в трагедию в трех актах. Поэтому, когда я продолжал карьеру в другой веб-студии, где у меня уже было право голоса, у нас установилось правило всеми силами отговаривать клиента от Битрикса, а при невозможности этого заламывать нереальную цену. По правде говоря, было страшновато, что кто-нибудь согласится-таки, и я рад, что те времена позади, и Битрикс угрожает мне разве что в кошмарных снах.

Позже, уже имея опыт во всех этих паттернах и прочих эджайлах, я вернулся к коду Битрикса… Я сочувствую людям, которым приходится с этим работать, разбираться в документации и хранить в голове знания по «API» этой платформы. И никак не могу я понять, героизм ими движет или мазохизм.
Он хорошо продается, так как разрекламирован, заработать на проекте легче, «присоседившись» к бренду. С точки зрения бизнеса больше преимуществ использовать его, чем с точки зрения технологий.

Не раз видел, когда клиенты (новички в сайтах) задумываясь о сайте — первым делом покупали Битрикс, а потом уже искали исполнителя.
Это-то яснее ясного, но какая мотивация у исполнителей, которые, явно имея способности в деле программирования, выбирают такую специализацию? Мне кажется, сейчас в IT не такая бедственная ситуация, чтобы хвататься за любое дело, лишь бы приносило какой-то доход. Да и не самое это прибыльное из любых.
С точки зрения пользователя, Битрикс очень удобен в управлении, быстрой настройки с точки зрения пользователя контента и т.д. Поэтому сначала берут битрикс, а потом ищут разработчика. Клиенту все равно, он найдет и другого подрядчика, который разработает сайт.

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

Ну а я, как разработчик скажу — пока клиент платит, мы делаем. Смысл сидеть без работы из-за своих предубеждений — развиваться необходимо постоянно и в разных направлениях, на случай того, какая работа попадется с хорошим бюджетом.
Было бы интереснее, если бы автор спокойно перечислил проблемы с которыми он столкнулся, и показал свои решения проблем, пояснил бы кодом.
Это была бы большая польза для читателей, работающих с Битриксом, которых немало.
(профессиональный) читатель имел бы возможность делать выводы сам.
А так сплошные эмоции, из серии «мы пообещали сделать за один день, но не успели, так как не знали как оно всё работает, но виноваты не мы а сложный, непонятный, глюкавый Битрикс».
Из контекста статьи подразумевается, что у автора, как и в других cms — идеальный код, отсутствие багов и т.п.
Я так понимаю больше всего автора беспокоит один из недостатков, присущий многим системам:
«Фатальный недостаток»
Вобщем судя по статье автор считает себя — Д'артаньяном ;-)
Ну вы сделали массу выводов обо мне, не знаю на чем основанных. Код для решения проблем я местами привел, проблемы с которыми столкнулся перечислил. Зачем же писать обо мне кучу всего другого, что вам почудилось. Я нигде не писал, что я гугу программирования и мой код идеален, а вот Битрикс всё испортил.
Я нигде не писал, что… вот Битрикс всё испортил

Как Битрикс чуть Новый Год не погубил

=)
Послушайте, ну это, неконструктивный, простите, базар.

Лет восемь назад, мой товарищ, который работал в IT крупной страховой компании, выбирал решение для корпоративного портала. И, после долгих консультаций, остановился на .Net. Мы все спросили — почему? Почему не PHP, он же так крут, и вообще, свободный и замечательный? На что он ответил — для .Net есть методология, есть курсы, есть стандартизированные специалисты. А на PHP каждый пишет как хочет, каждый новый прогер ругает предыдущего и переписывает все под себя, и ни масштабировать, ни поддерживать реально большой проект невозможно.

Вот тут ругают, типа, кривой битрикс.
Да, есть момент коммерческой составляющей при внедрении. Работать «только с битриксом» выгоднее, чем поддерживать зоопарк CMS.
И сейчас интегратор и заказчик стоят перед той же «вилкой» — выбрать непонятно что или выбрать коммерческую CMS? C более-менее коммерческой CMS, на которую есть поддержка, есть «хоть как-то» сертифицированные специалисты, есть курсы и интеграция с 1С — пусть внедрение стоит в два раза дороже, выбирают именно ее.

Я — программист по образованию, владелец интернет-магазина на Битриксе. И сейчас, когда мне надо сменить поддержку или заказать доработку, я делаю это без страха, что услышу: «Ооо, что за @#%^ здесь все писал? Надо все переписывать....»
Я не хочу в этом во всем разбираться, я хочу заниматься своим бизнесом.

Да, я заплачу за другую систему, столько же, сколько за Битрикс.
Которая будет быстрее, проще во внедрении, проще к доработкам чем Битрикс.
Но дайте мне ее, и кусочек уверенности в том, что завтра ее не выбросят на помойку и будут вменяемые цены и что мне не надо будет по всей стране разыскивать секретную секту специалистов именно по этой CMS, если вдруг развалится та контора, которая мне все внедряла, или меня начнет динамить поддержка?

Почему все говорят — да зачем вам учет в Excel, возьмите 1С — тиражное заточенное решение?
Почему пользуются не Блокнотом, а Evernone — тиражное заточенное решение?

Все, как бы, ругают, но никто не предложил вменяемой тиражной альтернативы?
Кто скажет
— выбросьте Битрикс, возьмите __________ — тиражное заточенное решение?
Странно, что вы без страха меняете, мне один битрикс-разраб говорил, что кодинг-стандарты отсутствуют как класс, и каждый новый разраб велосипедит как хочет
Окей, начну издалека.
Он декларировал возможность проведения множества действий из админки, что эти изменения никак не фиксируются в физическом коде, не попадают в систему контроля версий и т.п. Не могу сказать, как это называется в терминах битрикса.
В итоге заказчик привязывается к существующему исполнителю, а при смене — каждый новый разраб тупо всё переделывает, так как возможности разобраться практически нулевые.
Если бы можно было обойтись без людей, давно бы обошлись.
А накосячить и подилетантить можно везде.
Особенно доставляет аргумент «мне один битрикс-разраб говорил»
Шикарно!
Странно, что вам доставляет этот «аргумент».
Вполне допустимо то, что я не общался со всеми существующими разрабами
Доставляет фейсбучность аргументов.
По моему мнению, вы сделали свой вывод о методологии разработки продукта, основываясь на мнении одного «разраба».
Корректнее, на мой взгляд, ссылаться на опыт, исследование или статистику.
Да, я сделал свой вывод основываясь на мнении одного «разраба».
О чём я и писал в первом комментарии.
Что не так?
Покажите мне опыт, исследование или статистику.
Я, например, ознакомился чего пишут по поводу кеширование idea.1c-bitrix.ru/?tag=4566, всё печально, как на мой взгляд
Точка зрения бизнеса и точка зрения разработчика всегда не совпадала во многом.
Тут как понимаю человек написал пост со вторых позиций.
А с первых понабежали критиковать.
Битрикс говно.
Вы знаете, когда мне начинают «настойчиво предлагать» сделать это на Битриске, я привожу очень простой и доходчивый для клиентов пример.

Пример очень простой:

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

У Microsoft все их сайты сделаны на ASP.NET, и подняты под Windows Server (и будут подняты, даже если от Linux они будут работать раза в 2 эффективнее)

Сайт компании Oralce (разработчиков Java) безальтернативно работает на JSP (Java Server Pages)

При этом основной сайт 1С на Битриксе не работает.

Вопрос: вы действительно хотите поднимать свой сайт на Битриксе, даже учитывая тот факт, что сама 1С на своём главном ресурсе от его использования отказалась в сторону чужой технологии?

Насколько плоха должна быть технология, чтобы производящая её компания не применяла на своём самом главном сайте?


Обычно подавляющее большинство после этого от идеи Битрикса отказываются, а оставшиеся фанатики — просто выявляются (и отправляются в другие места — ибо с ними при разработке больше потеряешь).
А на чём сайты Битрикса?
Согласно wappalyzer.com/ работает сайт 1С-Битрикс. На Битриксе также работают Связной, Эльдорадо, Евросеть, Банки.ру. Хотя уверен, что очень-очень сильно перепиленные и в силу ряда серьезных причин.
Уже не работают новый m-video, roem.ru.

Как вы тогда можете объяснить подобные ссылки?
www.1c.ru/rus/products/1c/predpr/budget.jsp
www.1c.ru/news/newslist.jsp
www.1c.ru/news/info.jsp?id=19357
www.1c.ru/news/press.jsp

Скорее всего он поднят (по крайней мере его ядро) на Java Server Pages.
www.1c.ru и www.1c-bitrix.ru — разные фирмы, разные сайты.
С таким же успехом можно утверждать что рука и нога это два разных человека.
Компания одна, и она называется 1С.

Также как и в случае с Microsoft — вполне возможно что .NET Framework разрабатывается отдельным подразделением, и может быть — даже отдельной компанией. Но это — продукт Microsoft.

Возьмём тот-же Oracle: Java это не их разработка, но на сегодня Sun принадлежит компании Oracle. И именно на ведущей технологии Sun и работает сайт Oracle именно на JSP, а не на, например Ruby
Так — в первом комментарии я не до конца въехал в ваши слова: сайт Битрикса действительно поднят на Битриксе. Но вот сайт 1С — компании, которой принадлежит Битрикс — на нём не работает.

И это, на мой скромный вгзляд — лучше всего характеризует качество и его практическую ценность продукта под названием «1С Битрикс».

Microsoft, например, пересаживает своих сотрудников уже на вторые бета-версии своих операционных систем. И речь не о тестерах, а о полноправных работниках.
Яндекс.Деньги принадлежат Сбербанку. Яндекс.Деньги обязаны быть переписаны на технологии Сбербанка?

Или Ebay, купивший Magento должен срочно запустится на Magento?

1C же скорее характеризует нежелание модернизировать сайт в целом. Хотя и на это может быть 100500 причин.
Ну сайт евросети я бы не сказал что сильно перелопачен. Не знаю как сейчас, но когда его только переносили на битрикс, присутствовал при этом процессе. Особых извращений и чего то необновляемого там как то не наблюдалось. Да, очень много чего пришлось кэшировать, поиск был по сути написан свой, ибо вариант из коробки просто никак не удовлетворял требованиям. Но в целом несмотря на ужасы, баги как в процессе разработки, так и в самом битриксе, неадекватно оцененную нагрузку и прочее что постоянно преследует крупные проекты получилось более менее адекватно.
То есть тогда это выглядело тихим ужасом, а если смотреть через n лет. То сейчас битрикс и более глючен, и с документацией хуже. И на простых проектах всплывает гораздо больше извращений.
Вот как минимум поиск же. :)
Выяснить в процессе, что тебя что-то не устраивает и вкладываться в оплату труда разработчиков, которые покрутят то там, тот тут совсем не здорово.
Не хочу защищать битрикс, даже стыдно как то ;)
Но там была очень специфичная задача, которая через битрикс решалась определенным способом, который делал битриксовый поиск ОЧЕНЬ МЕДЛЕННЫМ. то есть до 15 секунд на запрос. Что при имеющийся нагрузке даже не смешно. А если вы делаете проект под себя, то практически со 100% вероятностью вам придется доработывать что то. Нет конечно есть более менее типичные задачи. Но почему то людям постоянно хочется через какое то время что-нибудь допилить. Да метод copy-paste различных сниппетов поможет, да можно подкрутить отдельные параметры, поправить стили. Ну а дальше чуть чуть дописать js код, поправить по нескольким статьям код, поспрашивать на форумах/stackoverflow и иже с ними что и как делать. Но по сути в данном случае вы заменяете труд разработчиков своим, либо же обращаетесь для решениях этих задач к другим.

Вечное состояние «все устраивает» возможно только для того что не развивается. ;)
Для большинства проектов коробочные продукты подходят на 99%. И чаще всего на этот 1% изначально люди могут и плюнуть. Но пока что «хочу купить универсальное решение, которое будет идеально подходить мне» это утопия на мой взгляд.
Не, конечно нет универсального решения. И даже топ-продукты со стоимостью лицензий в десятки-сотни тысяч долларов/евро все не дают все возможности, если точно знать чего ты хочешь.

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

А при выборе надо исходить из оценки потребностей и затрат. Составить табличку с требованиями и заполнить. Так где заполнить нельзя — проставить стоимость доработки в деньгах и времени.
На «все устраивает», я так понимаю, никто и не рассчитывает.
Если бы кто-нибудь предложил коммерческую платформу со скиллами, которые есть у Битрикса, т.е. такую, которая была бы удобна для бизнеса, и еще бы при этом была удобна программистам — я бы перешел.
Но сейчас, когда мне нужно делать еще 5-7 сайтов под разные продукты, для описания которых тесен формат интернет-магазина, а продвигать их надо, мне предлагают на выбор — битрикс или чистый HTML??? Я скорее закажу битрикс.
Даже при имеющейся разнице в цене.
«Убийцу Битрикса» никто не предлагает.
«убийцы битрикса» регулярно появляются, только большинство не понимает, что до того момента как они станут убийцами им надо лет 5-10 выпускать обновления, обновлять документацию, создавать сообщество, допиливать новые фичы. Что процесс этот не быстрый. У всех логика, вот сейчас сделаем удобную платформу и все потянутся, и мы заработаем миллионы. Не понимая что люди ленивы и не кинутся на непонятного новичка, неся клиентские деньги. Да и усилий приложить много надо пока по функциональности приблизишься к коробочным решениям. В общем много усилий, опять же маркетинг. Но будем надеяться что появится наш герой убьёт битрикс, и сам станет им ;)
Согласен, быстро только Hello Word! пишется, и тот может быть с багами.
Это как выйти замуж га генерала — выйти за молоденького лейтенатнта, и помотаться с ним по дальним гарнизонам.
Мне — хотя бы вменяемый капитан. До генералов дорастают не все.
А при чем тут 1С и 1С-битрикс?
Это 2 разные кампании. Просто Битрикс видимо решил, что продукт продвинется быстрее, я хз…
Это ерунда. 1С Битрикс является частью компании 1С.
В комментарии выше я уже написал что мы не имеем права считать руку и ногу двумя разными людьми — как бы этого не хотелось навязать нам различным маркетологам
Поясню подробнее.

из википедии:
«Компания «Битрикс» основана в 1998 году группой специалистов отдела интернет-технологий и финансовых телекоммуникаций АКБ «Инвестбанк» под руководством Сергея Рыжикова.»

«В 2007 году компании 1С и Битрикс объявили о создании совместного предприятия ООО «1С-Битрикс» (доли партнеров равны и составляют 50 %). Новая компания получила право распространения продуктов компании Битрикс на территории Российской Федерации. Финансовые детали сделки не разглашаются. При этом условия работы партнеров Битрикс не изменились[1]. Западное направление (рынок англо- и немецкоговорящих стран) компания Битрикс развивает самостоятельно, без компании 1С[2].»

Компания 1С имеет долю в 50%, но не владеет 1С-Битрикс, а поэтому считать их одной компанией неправильно.

из википедии:
«На 2010 год, по заверениям самой же компании, «1С» владела или имела доли более чем в 300 ИТ-компаниях в России, СНГ и за рубежом (к примеру, во Вьетнаме).»
Что вы предлагаете как альтернативу?
Кстати, пожалуй самый важный вопрос в комментах...)) Сам владею сайтом на Битриксе аж с 2004-5 года, где он обновляется последовательно кажется аж с 4-й версии..)) Так вот, хотелось бы понять, а что есть такого хорошего на рынке, что имело бы столь всестороннюю интеграцию с 1С? Давайте по честному — для среднестатистической конторы, коей в том числе является и моя, принципиально важны три вещи — удобство интеграции с 1С, простота работы с контентом через веб-интрефейс для непрофильных сотрудников, независимость от конкретных персоналий разработчкиов. Причем приоритеты у меня лично идут именно в таком порядке. Что сейчас на рынке есть такого, что позволяет без заморочек развернуть некую b2b или b2с систему (магазин, витрину, сборщик заказов) c дефолтным обменом заказами и каталогами/справочниками с основными типовыми конфигурациеями 1С? Де факто УТ, КА, и УПП 1С — отраслевые стандарты в системах внутреннего учета. Если задача стоит не в организации сайта-визитки, а относительно функциональной системы работы с заказами клиента, подразумевающую относительно прозрачную миграцию оных во внутреннюю ERP — то я как бы не очень понимаю, что предлагает автор в качестве альтернатив?
На самом деле, это действительно хороший аргумент ЗА. Но, мне кажется, те, кто хочет развернуть без сильного разработчика платформу, которая без написания кода интегрируется с 1С должен четко понимать, что ему не надо хотеть выходить за возможности стандартных компонентов и визуального конфигурирования. Битрикс — категорически не для написания кода.
А я думаю, что мало кто решается на типовой отраслевой продукт сразу имея задачу максимально его кастомизировать под внутренние бизнес-процессы. Очевидно, что Битрикс — система для тех, кому нужно интегрированное решение из коробки. То, насколько он тяжел, велик, неповоротлив, ресурсоемок, и прочее давно уже притча во языцах. Это не секрет даже для самых непродвинутых пользователей. Проблема в том, что у нас очень странный перекос в этой сфере. Вроде бы очевидно, что есть жутчайший дефицит решений, позволяющий создавать легкие web-расшинения и обмены для типовых конфигураций 1С, с другой стороны никто этим особо не занимается. Есть ощущение, что подавлюящее большинство любых cms решений создаются под какие-то совершенно неотраслевые задачи, типа примитивнейших интеренет-магазинов телефонов, либо узкоспециализированных, и на мой взгляд, трудномонетизируемых ниш а-ля шаблонов-конфигураций под ТСЖ, и т.п. Вот я, например, классический дистрибьютор. Кроме, непосредственно, торговли есть целый ряд аспектов, необходимых к автоматизации, как то сервисный центр, продвинутый CRM, хелп-деск с трекером, система автоматизированного взаимодействия b2b. Ничего этого на рынке нет — я имею ввиду комплексного решения. Посмотрите готовые решения от того же Битрикса — странно, но специализированных решений для средне-крупноторговых предприятий там нет. А это, замечу, одна из самых многочисленных категорий фирм, обороты которых лежат в тех диапазонах, в которых компания уже может себе позволить потратить на решение данных задач десятки тысяч у.е., если это будет консолидировать все бизнес-процессы в единой точке.
отличный комментарий.
Четко, по делу.
Извините что не плюсую, кармы не хватает.

Давайте еще вспомним что Битрикс изначально — не разработка 1С. Это купленная фирмой 1С разработка, затем «с нуля» переписанная но увы что та что эта — ад на земле.

И еще я неприятно но ожидаемо встретил здесь в каментах — неприкрытые оскорбления в адрес автора поста. Это сейчас модно во всех сферах жизни — сваливать вину на человека. Мол-де «ты сам, вот ты сам, виноват в том-то и том-то».

Парень пишет о продукте, тут же переключение идет на его личность. Причем если бы он написал какой-то полезный пост о Битриксе (я говорил что БУС говно но все таки допущу — полезные посты и о нем можно писать) то набежали бы как раз другие люди говоря что БУС говно или он знает его недостаточно.

Таким образом в ложе такого Прокруста не попасть просто. Что бы не написал, найдется кто угодно и хорошо если только один — кто скажет что «ты ущербен» а не продукт.

Автору советую — Вы ведь сами упомянули нормальные фреймворки. Laravel скажем. Работайте с ними, постигайте. И забудьте бус как страшный сон.
Автор не может существовать в отрыве от заказчика. Заказчику нужно готовое решение, которое, как он считает, за свои деньги встает и работает. Сразу. Автор придя к заказчику с фреймворком будет посслан, либо будет также предложено развернуть проект «за неделю».
Да тут так и есть…
Поставил битрикс и работай…
Там 3 файла основных: header, файл страницы (Index.php) и footer (они грузятся как и др CMS поочередно). Но можно оперировать свойствами, компонентами, модулями и т.д. Ну да — компоненты у них не идеальны (часто сам переписывал их, но их можно переписать без боязни того, что они через год-два перестанут работать), у них много запросов (НО каждый компонент располагает только той областью данных, что ты запросил)…

Я периодически работаю с битриксом, и раньше тоже думал так же, пока не изучил глубже его. Такая же CMS, только проще с точки зрения пользователи (она мне напомнила политику windows в то время — все можно посмотреть, многое можно сделать мышкой, вся статистика открытая)…

Код открытый, они не прячут его далеко, просят не переписывать ядро (как и в др. CMS по сути), а дописывать свой. Они развиваются, и если кто смотрит развиваются в правильном направлении — развивают инет-магазины, корп. портал (битрикс24) именно для клиентов.

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

Автор я считаю не прав: он сунулся в «область», которую не изучил, и «проклинает» разработчиков, которые разрботали больше, чем он сам… Если сантехник полезет электрику?, а электрик в сантехнику?, хотя они оба работают в ЖКХ…

ЗЫ:
Мне как-то написал один разработчик — «если не можешь решить проблему, не стоит городить огород, лучше час-два походи и подумай — решение придет»
Битрикс изначально — не разработка 1С. Это купленная фирмой 1С разработка, затем «с нуля» переписанная

Простите, а где вы берёте такого рода информацию? Выше 3 раза, со ссылками на википедию, указано, что 1С к разработке Битрикс не имеет _никакого_ отношения?
Вопрос разработчика: «Где уместно использовать Битрикс?» Ответ тим-лида: «В анекдотах».
Ок. Битрикс это индустрия. Продукт позволяющий зарабатывать людям. Это прелестно. Но индустрия может легко развалится. Достаточно будет прилично поднять стоимость лицензий, изменить (ухудшить) условия работы с партнерами, не слушать клиентов и разработчиков.
Время проснуться. Ибо сейчас настает время, когда сайты перестанут делать.
Вам надо научиться в первую очередь переубеждать заказчика.
К примеру у Opencart синхронизация с 1C наверно на порядок лучше чем у самой битрикс (правда отдельным модулем). Всё проще, быстрее и надежнее. Тем (шаблонов) просто немерено, модулей — на любой вкус. Система управления проста и отзывчива, что даже «блондинки» с ней справляются. А цены разработки — смешные, даже по сравнению с Presta и Magento.
имхо: даже сайты визитки и обычные сайты (не говоря уже про интернет-магазины) делаю на opencart, ушел с wp и joomla совсем.
Извините, с опенкартом сравнивать просто не разумно. Вот просто не разумно. Там интеграция пишется только одним парнем. И все модули там пишуться каким то конкретно человеком. А что там шаблонов и модулей на любой вкус, про шаблоны карта еще можно поспорить у кого хуже. Карт динозавр, даже второй версии. Чтобы его заставить работать под российский рынок, там пилить и пилить.
Ну не правы вы, уж извините, пока поверьте на слово, у вас не достаточно информации, я с opencart работаю уже 4 года :) Сам разрабатываю, продаю модули и ситуацию знаю не по наслышке. Могу в ЛС вас проконсультировать по всем вопросам касающимися opencart
К примеру модулей интеграции с 1C валом, даже бесплатные есть, и вполне нормальные.
Видели русскоязычное сообщество opencart (посещаемость не хуже хабра) ;)? opencartforum.com/files/
В русскоязычном сегменте opencart как e-commerse система обошла всех уже по популярности, вот такой факт, который надо признать
НЛО прилетело и опубликовало эту надпись здесь
Нету ничего больше просто… нету
Вот только litecart.net приглянулся да вот не адаптирован к.России немного.
НЛО прилетело и опубликовало эту надпись здесь
преста лучше карта? cs-cart не найду сообщества для открытой версии. Readyscript платный.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Отсутствие версионирования и миграций БД серьезно докучает, когда разработчиков больше одного.


Истину говорите! Очень странно, что за столько лет, Битрикс так и не внедрил этот функционал в свой продукт… :(
Вставлю свои «5 копеек» как менеджер проектов.

Я за годы работы перепробовал на проектах самые разные CMS — и самописные, и с открытым кодом, и платные. И могу сказать, почему предлагаю в итоге российским клиентам Битрикс (при том что долго избегал его из-за сложного для клиентов интерфейса админки и отзывов о нем разработчиков) и вряд ли в ближайшие годы начну предлагать что-то иное.

Если коротко:
1) относительно высокая (по сравнению с бесплатными CMS типа Joomla или PrestaShop) квалификация разработчиков
2) легкость нахождения разработчиков, несравнимая наверно ни с одной другой CMS — в сочетании с первым пунктом для меня это главный плюс
3) большое кол-во магазинов, сделанных на Битрикс — им всем обычно требуются те или иные доработки, это нормальная ситуация для любого магазина. Это, в свою очередь, означает большой рынок, на котором востребованы мои услуги.
4) регулярные обновления, плюс учет в них российской специфики — первым не может похвастаться ни одна самописная CMS, вторым ни одна зарубежная
5) уверенность клиентов в том, что это надежная CMS — из-за того, насколько Битрикс разрекламирован и какие крупные проекты сделаны на нем. Клиенты знают, что эта компания вероятнее всего останется на рынке и не исчезнет в ближайшие несколько лет.
6) наличие широкого функционала «из коробки». Это зависит от редакции, конечно — но при прочих равных. Например, удобно сдавать проекты по «Монитору качества» или проверять их настройки по «Сканеру безопасности».

И у меня-то как раз нет такой мотивации, как у описанного тут выше в ветке директора IT-агентства — «продать побольше и заработать с этого побольше, и пофиг на клиента». Я кучу времени потратил, сравнивая разные варианты. В итоге остановился на Битрикс и совершенно не жалею — наоборот, думаю о том, что мне стоило сделать это намного раньше.

И контроль версий с выкатыванием кода из репозиториев на сервер (автодеплой) в итоге на Битрикс я настроил без труда — мне в общем и неважно, Битрикс это или нет — просто код в репозитории, с которым имеют дело мои разработчики.
  1. Знание битрикса не означает повышенную квалификацию. Человек вполне может начать с битрикса и по мануалам научиться клепать визитки, но не будет знать основ, а с учетом архитектуры битрикса еще и впитает извращенные представления о том, как все должно работать
  2. Разработчик, который знает только 1 систему и неспособный разобраться в другой — сомнительный персонаж даже для фриланса, молчу о коммерческой разработке
  3. В комментариях ваше написано, какой ценой доводятся крупные проекты до нормального состояния
  4. Обновления — исправления косяков разработчиков и заплатки. В добавок сомнительное преимущество — имея отлаженный рабочий проект, мне к примеру не нужно обновлять ничего, если все работает. Битриксу это выгодно — можно иметь приличные суммы с клиентов, при этом не выпуская в обновлениях ничего критичного
  5. Пока маркетологи работают — эта уверенность останется. Вот им уважение, хорошо делают свою работу
  6. Недавно нужно было сделать интернет-магазин. Сначала сделал на битриксе, и до тех пор, пока функционал подходил, все шло хорошо. Дошло дело до партнерской программы, а она только в редакции бизнес начинается, переход с малого бизнеса — вроде 17к. После взвешивания всех за и против перешли на OpenCart — в результате получили все нужное бесплатно, плюс ко всему интеграция с 1с работает куда быстрее

Исходя из моего небольшого опыта, могу сказать, что битрикс — далеко не серебряная пуля, которую можно впаривать клиентам. Хотя все зависит от того, какие проекты вы впариваете. Если Ваш типичный заказ к примеру новостной сайт, то имея натасканых на битриксе разработчиков вполне можно ставить это на поток. Тогда действительно вы дадите клиенту то, что он хочет
Битрикс не надо рассматривать как идеальное решение для разработки, он никогда не будет удовлетворять всем потребностям разработчика, потому что он сделан не для разработчика, а для бизнеса. Это прежде всего коробочный продукт, который покрывает 95% потребностей малого и среднего бизнеса из коробки, при этом достаточно добавить немного магии и будут покрыты оставшиеся 5% потребностей.

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

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

Всё вышенаписанное справедливо для типовых потребностей, если у вас нетиповые задачи, то вам попросту не надо использовать подобные коробочные решения — пишите с нуля под свои задачи.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории