26 марта 2016 в 21:32

Минусы Битрикса, или Битрикс глазами программиста

Beats By Bitrix В русскоязычном сегменте Интернета существует такой интересный феномен, как Битрикс.

Для обывателя — это такая серьезная система, «продукт», на котором нужно разрабатывать серьезные проекты: корпоративные порталы, интернет магазины и даже CRM системы. Все очень серьезно, почти как опыты нацистов над инопланетянами (на канале Рен-тв сразу после рекламы).

Для программиста, который прочитал хоть одну книгу про программирование, Битрикс — это так называемый «плохокод», просто-напросто огромное количество PHP файлов, написанных в разном стиле, которые подключаются «инклудом» и что-то там выводят.

Эта статья для обывателя (потребителя). Как правило, такой обыватель, прежде чем сделать выбор CMS, читает статьи под названием «плюсы и минусы Битрикса», которые пишут люди, далекие от программирования. Данная статья написана программистом, потому плюсов тут быть не может.

Итак, минусы:

1. Архитектура


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

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

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

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

2. Код


Это просто унизительно, продавать за деньги систему, в которой HTML код перемешан с JS, PHP и CSS. Ниже я приведу функцию «продукта». Чтобы ее поняли и люди, далекие от программирования, еще ниже будет пояснение. Эта функция — метод класса (!!!) ядра (!!!) Битрикса, который вызывается, как статический (!!!) и ему передается 21 аргумент по ссылке (!!!).

	function PrepareGetList(
		&$arIblockElementFields,
		&$arJoinProps,
		&$bOnlyCount,
		&$bDistinct,

		&$arSelectFields,
		&$sSelect,
		&$arAddSelectFields,

		&$arFilter,
		&$sWhere,
		&$sSectionWhere,
		&$arAddWhereFields,

		&$arGroupBy,
		&$sGroupBy,

		&$arOrder,
		&$arSqlOrder,
		&$arAddOrderByFields,

		&$arIBlockFilter,
		&$arIBlockMultProps,
		&$arIBlockConvProps,
		&$arIBlockAllProps,
		&$arIBlockNumProps,
		&$arIBlockLongProps
		)
	{


(пересчитал еще раз — 22, по штуке на каждого нового программиста, который дописывал этот метод)

Чем это плохо? Что чувствует программист, видя это? Объясню: вот приходите вы в банк, платите 200 рублей, чтобы вам заполнили платежное поручение (ведь вы занятой человек, у вас нет времени). Вы отдаете деньги, но эти бюрократы заявляют, что чтобы воспользоваться любой услугой банка, в том числе «заполнение поручения», вам нужно заполнить анкету: ИНН, номер паспорта и прочие многоциферные штуки. У вас возникает недоумение: но я же заплатил деньги, чтобы мне было комфортно и удобно, чтобы ничего не надо было заполнять? Но ведь у банка напротив вообще не нужно заполнять никаких поручений, можно просто бесплатно ввести один 4-значный код для проведения платежа!

Банком напротив являются бесплатные фреймворки, а вашим банком — расхваливаемый маркетологами платный Битрикс.

Вы не найдете ни одного программиста, который бы перешел с фреймворков на Битрикс.

3. Обман


Не хотелось бы писать тут слишком много. Скажу кратко: если вы выбрали 1С Битрикс, чтобы его просто так взять и связать с 1С своего предприятия стандартным модулем — у вас ничего не получится. И много чего другого у вас не получится просто взять и сделать стандартным модулем. У вас все получится, только если вы ничего не будете менять в скачанном архиве, состоящем из тысяч каких-то PHP файлов. Все доработки — это боль, тлен и тысячи трудочасов программиста, который знает программирование на уровне языка разметки и написания сценариев, а не архитектуры.

Заключение


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

Чтобы статья была менее провокационной, скажу также, что современным бесплатным фреймворкам наоборот, не хватает маркетологов: их продукты имеют высокий порог вхождения и доступны только узкой группе лиц, они никогда не станут народными, как Битрикс.
Илья @pistol
карма
36,5
рейтинг 0,2
Пользователь
Самое читаемое Разработка

Комментарии (510)

  • +28
    Хорошая критика, хоть и видно что наболело. Я бы еще с удовольствием почитал статью «Битрикс глазами системного администратора» или DevOps'а, в том же ключе и стиле изложения.
    • +55
      лучше не надо, если глазами программиста получилось без мата, то глазами сисадмина без мата уже не получится.
      • +1
        Да ладно, у меня один плейбук виртуалку под битрикс настраивает, написал за полдня. Единственное что, бесконечная рекурсия стека — это сразу идите лесом.
        Ну и переход на ssd под битриксом решает почти 90% проблем с ним с т.з. администрирования.
      • +1
        Для этого разработали bitrix_env при помощи которого можно очень быстро все развернуть. Разворачивал битрикс и на виртуалках и на дедиках и на шаред-хостингах. В основном все заводится сразу + есть инструмент для самодиагностики. Остается только подкрутить некоторые параметры для повышения производительности CMS.
        Большинство тормозов в тормозном Битрикс-сайте обычно приходят со сторонними разработчиками =)
  • –17
    Очередной холивар, в котором комментов раз в 20 больше, чем сама статья?
    • +68
      А кто в здравом уме будет спорить с ним, что битрикс — это дерьмо, непригодное к доработке и поддержке?
      Не будет холивара.
      • +2
        Наверно, лучше было бы написать: «Очередной пост...».
        P.S. хотел сделать акцент на количестве постов, а не на самом сраче.
    • –22
      Хочется отметить, что с точки зрения практически международной компании — все туташние комментаторы в т.ч и я обычные лузеры))
      Здесь почти не будет комментаторов с вебстудий, делающих на битриксе хорошие деньги — ну просто незачем. Зачем сотрясать воздух.
      • +6
        Хорошие деньги на Битриксе делает только 1С
        • НЛО прилетело и опубликовало эту надпись здесь
          • 0
            Это не просто две большие разницы, это две разные компании, которые существует каждая сама по себе.
        • +1
          А ничего, что только верстка (если заранее говорят что будет битрикс) стартует от 20 000 р.?
          Программирование (натяжка) тоже не ниже этой суммы
          • 0
            А какая связь между версткой и битриксом? Битрикс не накладывает никаких ограничений на верстку вообще. Она должна быть просто качественная и тогда редактирование "над сайтом" будет так же корректно отрабатывать. Никто никогда не тестирует верстку именно под битрикс.
            • 0
              факт остается фактом, если звучит слово "битрикс" — ценник умножается, виноваты те же маркетологи
              • 0
                Ну видимо вы столкнулись с одной или парой таких "студий" или фрилансеров. Я такой статистикой не обладаю. К тому же, при чем тут маркетологи: тоже не понятно.
                Может владельцы студий этих думают, что люди, хотящие битрикс обладают большим количеством денег?
          • 0
            А ничего что день работы верстальщика/программиста в нормальной студии стартует от этой суммы?:) Я имею в виду не то, что платят верстальщику, а то что платит клиент студии.
            • 0
              тихо-тихо! Давайте откроем холивар в какой-то другой теме в следующий раз, я сам фрилансер, часто спрашиваю на какую сумму люди рассчитывают. По статистике, если выбрали битрикс — готовы вливать еще от 50к, это не из потолка
              ЗЫ: за битрикс проекты берусь нехотя и редко, зачастую из-за хорошего куска пирога, который часто стает поперек горла из-за "до безобразия волшебной" CMS
      • +4
        Делать деньги и делать качественный продукт это частично совпадающие множества...
        • +1
          я до сих пор не вижу защитников хотя их они понимают, что их могут слить, потому нормального разговора увы… не получим.
      • +1
        Привет. Работал в Qsoft — битрикс унылая… ну дальше ты понял.
        • –1
          Так. Отметился) Давай следующего)
    • +7
      Вы не поверите!
      Статья — 1 штука.
      Комментариев (на данный момент) — 73 штуки!
      Комментариев в 73 раза больше! А то ли ещё будет...
      • +1
        Тут видимо намек на то что статья сразу заканчивается не успев толком начаться. Я уже устроился поудобнее визуально оценив размер портянки, а оказалось что большая часть контента это комменты.
        Поставил минус посту чисто потому что он очень короткий и никак не тянет на статью.
  • +6
    У меня был опыт выгрузки каталога продукции из 1С в 1С-Битрикс и Joomla. На тот момент, я долго думал стоит ли ввязываться в эту авантюру, ведь опыта с 1С у меня совсем не было. В итоге, интеграция с Joomla была готова через пару дней чего я не могу сказать о 1С-Битриксе...
    • 0
      Делали интеграцию 2 раза, проблем не испытали ни одного раза
      • 0
        Проблемы в высоком уровне вхождения и понимания этой системы (чем-то напомнило TYPO3).
        В нашем случае, у клиента была лицензия на версию продукта, который не умел интегрироваться с 1С.
        Прошло уже лет 7, возможно что-то изменилось.
        • 0
          Может быть стоило просто докупить соответствующий модуль?
    • +2
      Joomla и выгрузка из 1C? О боже...
      • 0
        Joomla один из самых популярных движков. Клиенты его любят, а откуда будет выгрузка каталога значения не имеет.
        • +1
          Битрикс и Joomla — аксиома Эскобара
  • –10
    Крик души, как и в случае с оперой? Я одного не понимаю, ну не нравится Вам Битрикс, зачем с ним работать, или деньги не пахнут? Так если деньги не пахнут, то смысл кричать о том, как все плохо?
    По своему опыту проблему интеграции 1с с Битриксом встречал только в случае:

    У клиента извращеный метод учета в УТ или УПП.
    Изначально 1с не было, и надо было сначала номенклатуру перенести с сайта в 1с.
    • +15
      Приходится писать и для Битрикса, так как договоры с партнерами не подразумевают отказа под предлогом "не нравится".
      В данном случае вовсе не крик души, просто нечем заняться в субботний вечер :)
      • +7
        > Нечем заняться в субботний вечер
        Перегрузите метод PrepareGetList, добавьте туда еще один параметр.
    • +15
      Так если деньги не пахнут, то смысл кричать о том, как все плохо?

      Например, чтобы в следующий раз не работать с тем что не нравится.
      Не бывает работы, которая нравится 100% времени. Но в наших силах максимально приблизиться к 100%. И донесении информации о плохих решениях -это один из способов(или основной?).
      • 0
        Менталитет у бизнеса зачастую не тот. Если 10 маркетологов говорят что битрикс хороший продукт, а 1 разработчик — что плохой, то кого послушают в первую очередь? Кто даст откат за выбор платформы?
        P.S.: для разминки, попробуйте доказать бизнесу что GET запросы нечего не должны изменять (в частности добавлять в корзину товар по ссылке), т.к. это противоречит протоколу.
        • +1
          К сожалению бизнесу зачастую плевать на то, что там где и как под капотом, это проблемы программистов "сделать чтоб работало".
          Разве что топ руководство очень сильно приближено к ИТ и специфике, и может аргументированно бвырать платформу црм для работы компании
          • –1
            Бизнесу и должно быть плевать на то, что под капотом. Бизнес — это деньги. И "не нравится программисту" — это не аргумент. Монетизируйте своё "не нравится", объясните бизнесу как вырастает стоимость поддержки и время простоя от плохих архитектурных решений и бизнес прислушается.
            • 0
              Если программисту аргументированно «не нравится», бизнес должен к нему прислушаться, а не настаивать на своем, но увы это почти всегда не так.
              • +1
                Именно. Но в статье аргументов нет — просто эмоции.
                Расскажите бизнесу, чем плох PrepareGetList с 22 параметрами. В статье написано только пр то, что "чувствует программист". Чувства — это не аргумент.
                • 0
                  Еще какой аргумент. Если программисту такой заказчик «впихнет» хреновый продукт — программист будет хреново работать, делать все «лишь бы работало», без энтузиазма и энергии (или заказчику придется это все компенсировать «молоком») и в конце концов просто уйдет с этого места работы. А заказчик пойдет искать «очередного фрилансера».
                  • –1
                    Незаменимых нет. Аргумент мне "не нравится" — это в первую очередь аргумент против того, кому не нравится, а не против продукта.
                    Если других аргументов нет, то я бы к этому прислушваться не стал. Конечно, бывают случаи, когда программист обладает очень высоким весом, подкрепленным предыдущим опытом работы с ним. Но это не такой уж частый случай. В большинстве случаев программист (особенно сидящий на поддержке сайта) со стороны бизнеса вполне обоснованно выглядит, как бездельник, который постоянно на что-то жалуется.
                    • +1
                      «Незаменимых нет. » вот именно отсюда все беды.
                      Работник думает «найду если чо работу», владелец думает «а пусть пилит вот на этой штуке, не нравится — пусть валит».
                      А то, что оба выиграют если попробуют найти общий язык — никто не думает.
                      • 0
                        В большинстве случаев мы (программисты) для бизнеса — чернокнижники с непонатными тараканами в голове. Можно сидеть и ждать, когда бизнес придет догавариваться (так бывает). Но эффективнее хотя бы попытаться использовать понятный бизнесу язык. Я с Битриксом не знаком, но было бы полезно увидеть статью, где указаны его недостатки без эмоций, а с нормальной оценкой стоимисти владения. И еще с другими продуктами бы сравнить...
                        • 0
                          Более эффектино будет если бизнес будет просто слушать своих разработчиков и доверять им.
                          Ведь бизнес не учит как и чем стоматологу лечить зубы. А вот в технологии сует нос, «там ведь на конференции сказали...», «первое место в рунете...» и т.д. В такой ситуации будет и битрикс (так как есть те, кому реально он нравится), будут и другие технологии.
                          • +1
                            Вы путаете холодное с мягким. Стоматология тоже бизнес, а стоматолог — это наемный работник. И главврач порой делает так, как нужно для бизнеса, а не удобно стоматологам.
                            Например, вам, как потребителю пофиг как плитку в ванной положили: с соблюдением всех технологий или нет, или там не ровные мазки цемента и если вдруг локально заменить несколько плиток: она вся осыпется. Пофиг, потому что стоило в два раза дешевле, выглядит внешне так же как и в два раза дороже и за 10 лет, когда она уже надоела, с ней не было проблем. Так и с сайтом.
                            Сложно поддерживать и дорабатывать? Так только не многие развивают сайты дальше, а огромное количество сайтов висят без изменения и потом разом через сколько то лет переписываются с нуля.
                • +1
                  Именно из-за чувств все стараются пересаживаться с лады калины на что-то иное, хотя ездить можно (и вполне хорошо) и на калине.
                  • 0
                    Вы не путайте личное удовольствие и бизнес. Спросите у директора таксопарка почему они Калину не закупают. И чувств там не будет — холодный расчет.
                    • +1
                      Бизнес — он бизнес только для владельца таксопарка, а для рядового таксиста — это работа, на которую он тратит большую часть своей жизни. Эти 8 часов он хочет ездить в комфорте, а не от сервиса к сервису, хочет чтобы в салоне у него музыка играла и ему было хорошо. Когда интересы бизнеса и работника сходятся (такое редко, но бывает) — вот тогда все в плюсе.
                      Программист хочет развития (нормальный программист), новых технологий (да, да, бизнесу это приходится проглатывать).
                      • 0
                        Ну вот я могу сказать, что ни один владелец таксопарка не будет вкладывать деньги и делать хорошо таксисту. Таксист ездит на хорошей машине, потому что это машина люкс и ездит на дорогие вызовы. И машины закупаются те, которые считает нужным. В первую очередь из-за расчета денег. Во вторую для пассажиров.
                        Меня в свою очередь спустили с небес на землю, когда в случаях проблем напрямую сводили с заказчиком и я ему доказывал, почему вместо небольшой правки (сайт же по мнению клиента работал) я потратил 60 часов на правки после рукожопого программиста.
    • +10
      По-моему, что у 1С, что у Битрикс основная идеология — получать деньги за поддержку. А чем лучше архитектура и код, тем меньше денег можно заработать на поддержке.
      Так что не удивительно, что они объединились. И мнение программистов их не интересует, потому что всегда найдутся готовые вкорячить 23-й параметр, которым до лампочки архитектура.
      • +2
        1С как бы не на поддержке программного кода зарабатывает. А на поддержке бизнес-логики в соответствии с текущим законодательством, это немного разные вещи.
        Аналогично и с битриксом — пользователи платят за известный бренд, за то что 80% потребностей «из-коробки» покрывает, и то что часть из оставшихся 20% можно кое-как докрутить через настройки, не меняя код. Архитектура, красота кода, соответствие ожиданиям программистов, заказчика волнует в последнюю очередь (по крайней мере пока на рынке есть люди, которые готовы за доработку браться).
        • 0
          Так поддержка и подразумевает бизнес-логику… Заказчики, которые заказывают код, — это исключительно редкий случай. На код им пофиг, а вот скорость и стоимость внесения изменений в этот код или донастройки другими путями в соответствии с изменениями бизнес-требований многих всё-таки интересует.
          • +1
            Либо я вас не понимаю, либо вы не понимаете как работает 1С и 1С-франчайзинг.
            1С сама по себе не занимается внедрениями, допилкой систем под заказчика и реализацией специфической бизнес-логики. Головная организация выпускает платформу и типовые конфигурации (которые пилятся под законодательство, исправление старых багов и использование новых механизмов).
            Идеология развития 1С, причем, явно указывает на то, что 1С как разработчик типовых хочет, чтобы в типовой код изменения не вносились вообще: это и новый механизм расширений и понятие "конфигурации поставщика" вообще.
            90% говнокода в конфигурациях это говнокод внедренцев, к которым компания 1С отношения практически не имеет.
            Из оставшихся 10 большая часть связана с доработками типа "нужно сегодня срочно внести код, который меняет расчет налогов с начала года, но так чтобы старые года считались по-старому", которые есть следствие особенностей законодательства, что приводит в частности к ужасному дублированию кода.
            Исходя из этого, разве что можно предположить теорию заговора в виде "1С специально пишет говнокод, чтобы фирмы-партнеры могли заработать денег".
            • 0
              Вы правы, я некорректно выразился, смешав в кучу и саму компанию и всех её партнёров. Хотя компания косвенно заинтересована, чтобы было больше 1С-программистов и специалистов по Bitrix. А чтобы их было больше, надо либо делать им удобнее, либо чтобы они могли больше зарабатывать. И в этом плане 1С, по крайней мере раньше, тяготела скорее ко второму пути.
      • +1
        Так и тех поддержка у них скверно работает, там баги с 2009 года висят.
        • 0
          А сколько денег Вы им предлагали за исправление этих багов? xD
          • 0
            найденные баги правятся в зависимости от приоритета бесплатно с обновлениями движка.
  • +5
    Посыл у вас правильный, но думаю стоило капнуть глубже (а возможно тут нужен человек, которому нравиться копрофилия) так как в таком виде статья выглядит скорей как розжиг очередного hollywar'a (критика есть, но она опирается на слишком малом количестве фактов). И нет, я ни в коем случае не выгораживаю битрикс, да упаси меня святой костыль и велосипед.
    • 0
      Да, вы правы, тут одни чувства. Статью хотел написать не для программистов, не смог придумать наглядные факты, понятные заказчику. Программисты и так все знают.
  • +10
    У меня есть 2 любимых коммента о Битриксе, показываю их заказчикам которые пытаются меня туда склонить.
    https://habrahabr.ru/post/247769/comments/#comment_8219131
    https://habrahabr.ru/post/247769/comments/#comment_8219179
    • +1
      У вас заказчики паттерны покупают?))
      • 0
        Попытка купить копейку с кузовом от бентли. Вроде всё красиво, но что-то не то.
    • 0
      • 0
        про http://php.net/manual/ru/ini.core.php#ini.auto-prepend-file
        видимо автор не в курсе — ну понятно че. главное веть очередной красивый фреймворк в вакууме изучить и применить.
        а не знать основы php и его настроек
  • –1
    Я когда то работал в одной сео компании, и нам нужно было писать софт для продвижения сайтов. И одной из задач была подмена метатегов, титлов, дескрпшенов, и еще много чего разного. И был написан для этого универсальный код с админкой. Ты страиваешь его в index.php, заходишь в миниадминку и все проблемы с сео по просту решаются в 2 клика. НО. Не с битриксом. В нем множество точек входа(в каждой папке свой index.php). и если у сайта много разделов, это нужно было ручками искать эти точки входа, открывать, и вставлять туда этот код. Куча дублей, тебя постоянно отвлекают именно на эту задачу. Для других движков все было просто, и автоматизировано.
    • 0
      Ну у битрикса и так сео модуль есть. Правда если забыть удалить дефолтные настройки при установке то да долговато вычищать со стриц какой то мебельный магазин или что там ещё)
      Да. У них страницы не хранятся в БД а в файлах и директориях. Которые нужно создавать самому. Что невыносимо объяснять для гос. Служащих в глаза не видевшего любые cms.
      -А почему именно индекс.пхп?
      -пожалуйста, просто запомните.

      • –1
        — для хранения информации в бд есть инфоблоки которые применяются для разделов статей, новостей и прочих
        там не надо создавать index.php, там создаются элементы в категории

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

        тогда и проблем не будет
        • +1
          как это не для того чтобы их создавали рядовые? а ктож тогда?)) эти кнопки первые в интерфейсе фронтэнда. Вот страницу "акции" через инфоблоки делать?
          • +1
            раздел создали на инфоблоке новости
            раздел создали на инфлоке статьи
            каталог создали на инфлоке

            элементы добавляются, разделы добавляются по кнопке, со со страницы раздела или элемента
            в чем проблема? какие еще index.php?

            пользователь захотел новый раздел не предусотренный в ТЗ? — идет изучает начальный курс по Администрированию битрикс

            а вот интересно что он будет делать в слуае с Simphony? наверное сразу сделаеть контроллеры и модели — веть это намного очевидее и понятнее чем прочитать мануал по контент менеджменту в CMS
            • 0
              Это когда у вас кто то регулярно что то добавлят, то, пожалуйста, инфоблоки отлично. Но зачем делать инфоблок ради страницы акции или контакты?
              • НЛО прилетело и опубликовало эту надпись здесь
                • 0
                  таки я так инфоблоки и понимаю) Яне понимаю зачем нужны инфоблоки для страницы "акции" (просто текст) или "контакты" или "о магазине"
                  • НЛО прилетело и опубликовало эту надпись здесь
                    • 0
                      Акции это не функционал — это описание текущей акции: купи носок — конфетка в подарок. Акционные товары и новинки отмечаются свойством true в 1С выводятся на сайте с другим оформлением.
                      image
                      А так создаются статические страницы с указанием имени php файла с расширением ".php", что совершенно не нужно знать пользователю.
                      • НЛО прилетело и опубликовало эту надпись здесь
                        • 0
                          Я не понимаю про какой горох вы пишите. Про какой чих и лезть в базу…

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

                          Если пользователь хочет поменять страницу не с визуальной части, а из под админки, разработчику тоже нужно предусмотреть эту возможность cms и закрыть просмотр директорий в админке? Там то вот он и увидит все index.php
                          • НЛО прилетело и опубликовало эту надпись здесь
                          • +1
                            А вы пробовали настраивать права доступа? говорят увлекательное дело, помогает выводить в админке и визуальной части «Эрмитажа» только то, что нужно…
                          • 0
                            ну увидит и что?
                            если он туда полез значит уже должен разбираться в этом разделе админки.

                            а остальные просто редактируют через интерфейс Эрмитаж и не парятся ни прокакие index.php
                      • 0
                        так кто же мешает создать раздел вместо страницы? кнопка на вашем скриншоте присуствует
                        там не надо .php и чпу нормальное получается /akcii/ вместо /akcii.php
                  • 0
                    О магазине — конечно же не нужны.
                    Но про акции вы сами пишите, что купи носок — конфетка в подарок. а могут быть и наоборот купи конфетку и носок в подарок. и это уже 2 элемента, а в нормальных магазинах каждую неделю по 4-15 акций. И для этого конечно же идеально подходят инфоблока. Все можно распланировать, подготовить и все будет работать отлично
            • 0
              Зачем битрикс сравнивать с симфони?
              Чтобы создать раздел в том же прессе никаких изучений начального курса не требуется.
              Там не возникает вопросов почему у страницы должно быть расширение php а имя файла латинскими буквами.
              Почему при создании раздела скрыто создается файл index.php в котором происходит правка. Почему в админке в управлении структурой попадаются именно эти index.php если человек создавал раздел.

              Пользователи не понимают этого вообще. И парить этой фигней получаетсят олько потому что у битрикса такая архитектура. Инфоблоки в бд, а страницы — файлы.
              • НЛО прилетело и опубликовало эту надпись здесь
                • 0
                  Про симфони я не писал. Да, сравнивал работу создания страниц в вордпрессе и битриксе. В последнем мне не нравится файловая архитектура хранения статики. Мы все же от своего опыта говорим потому лучше мне свой бред больше не нести.
                  • НЛО прилетело и опубликовало эту надпись здесь
                    • 0
                      Приведите пожалуста пример какой нибудь ещё cms где статические страницы православно лежат в php файлах а динамика в бд.
                      Совершенно не вижу проблем хранения статики в БД при использовании маломальского кеширования как не видит с этим проблем вордпресс или опенкарт или престашоп и т.п
                      • НЛО прилетело и опубликовало эту надпись здесь
                        • 0
                          А я вот нигде, с моей точки зрения, колхоза разделения статики как в битриксе нигде больше не видел. Ни в одной cms.
                          Про картинки это передергивание. Я не видел cms где картинки бы хранились в бд.
                          • 0
                            не согласен — подход со стрницами прост гениален и универсален.

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

                            — програмисты могут хранить контент в git
                            — пльзователь может делать страницы динамическими вставляя компоненты — в других системах нужно подключать плагины обработки контента шорткоды и прочие велосипеды
                            — верстку переносить очень просто — не придется изучать очередной шаблонизатор и засирать себе голову выдумааными способами и костылями как сделать очевидную вещь

                            я могу создавать и генерить статическую структуру каталога под сео без проблем — веть это всего лишь файлы и папки
                            дополнительные кеши не нужны — мне все закеширует php в opcache
                            • 0
                              Ну бросьте, где там гениальный подход? Это не дает никаких преимуществ. Просто если есть то есть свои фишки. Где ж еще не вкурсе про это гениальное решение? Я не видел cms с подобным подходом. перечисленные плюсы работают спокойно в том же прессе.
                              • 0
                                в woprdpress без плагинов кеширования не работают — а это лишние зависимости, глюки и тормоза в обновлении
                                да еще не везде работают плагины кеширования. mecache/redis не везде — а opcache есть везде и тут bitrix со своими статическими php рулит

                                в wp по нормальному еще можно использовать как то ядро без плагинов. то же могу сказать про bitrix
                              • 0
                                В чем гениальность? В своей простоте и прозрачности. Вы можете посреди системы, в каком-то каталоге третьего уровня вложенности, разместить вообще какой-то сторонний скрипт, не подключая битрикс и это все будет прекрасно работать.
                                При этом она настолько простая, что там нечему ломаться. А код, который закручен на сложной системе ЧПУ, чтобы была возможность по произвольному пути разместить произвольную текстовую страницу и еще чтобы эта структура удобно и красиво так же отображалась в админке и редактировалась....
                  • 0
                    ну так вам же выше сказали используете для этого инфоблоки тогда

                    берете инфоблок — 1 штука
                    пихаете туда все категории и типы материалов — Товары Новости Статьи и прочее
                    храните страницы в БД а не в файлах

                    и получаете архитектуру аналогичную вордпресс
                    • 0
                      Но обычно за такое по рукам бьют) Это называется как изгадить систему)
                      Я в свое время видел программиста на битрикс, который завел каталог в инфоблоке, но он каждый раздел выводил отдельным компонентом, настроенным на вывод только этого раздела и целиком на файлах продублировал структуру каталога. Вот это была жесть, когда человек нефига не понимает как с системой надо работать )
      • НЛО прилетело и опубликовало эту надпись здесь
      • 0
        Ну вы уж всех то гос. служащих не ровняйте. Хотя мой опыт контентного сопровождения битрикс-сайта муниципалитета не добавляет мне любви к этой ЦМС.
      • +1
        Простите, у меня всё в порядке с глазами или я РЕАЛЬНО увидел фразу "У них страницы не хранятся в БД а в файлах и директориях"?
        КАК с этим можно работать?
        • +1
          Для динамики есть инфоблоки — на них сделать можно что угодно. Они работают более менее и на этом весь битрикс. Но для статики есть возможность создавать страницы и папки прямо в файловой системе на сервере. Для этого есть большие кнопки в интерфейсе. То есть весь текст хранится в php файлах, в поместь в реальным php кодом (можно и в разрыв php вставлять, тогда визуальник показывает картинку с php значком, дескать тут php какой то в отличие от хидера и футера, которые слава богу не показываются) причем прямо в корне проекта. То есть назовете папку "blog" с index.php а потом и не вспомните системная она или ваша.
          • +1
            Тоесть это адская смесь статики и динамики?
            Страх и ад разработчика…
            По сравнению с этим жумла с вордпрессом просто единороги на радуге, получается
            • 0
              Да, в визуальные есть возможность кинуть компонент прямо на страницу. Он будет там опять же значком php отображен c названием компонента. А если открыть этот файл блокнотом, то там будет код в помесь с текстом. А компонент может быть фотогалереей или выводом новостей. Плюс в том что можно сверстать страницу непосредственно через какой нить php шторм и тут же залить) Это помоему единственный плюс.
              Битрикс эта помоему единственная система через визуальник которой можно положить сайт, починить который можно будет только через ftp.
              Но можно и выкрутится конечно. Вопроса наличия этого как части основного функционала это не снимает.
              • 0
                Теперь я понимаю, почему цены на товары в старой (текущей, пока, к сожалению), версии битрикса на одном из проектов которым я управляю надо было менять в 4х местах.
                Да, я сейчас пишу полностью новое приложение на RoR вместо этого поделия 10летней давности
                • 0
                  Не знаю, как там в старых версиях, но и без версии интернет магазина можно было бы сделать на инфоблоках товары с выводом свойств и цен более менее работоспособно.
                  • 0
                    Там битрикс года так 2007, если не старше. Как, в прочем ось, php и mysql :(
                    Поэтому я новое приложение и пишу с нуля максимально быстро
    • 0
      Решение банально, точка входа это шаблон или написанный модуль для битрикса, который подключается на все страницы. И вот мы получаем 1 точку входа.
      • 0
        А еще есть init.php
        • 0
          В котором иногда вырастает своя интересная структура с классами и кучей перехватчиков событий )
          • 0
            C дуру можно и хер сломать.
          • +1
            Потому что init.php только для самых простых случаев.
            А если у вас сткруктура методов и классов: запилите свой модуль (благо это дело 5-10 минут сделать общую обертку модуля даже с установщиком), разместите все свои классы в lib (и у вас появиться автозагрузка) и зарегистрируется все необходимые обработчики.
    • 0
      auto_prepend_file? Если апач — в главной директирии в htaccess можно прописать.
    • 0
      во первых — откройте для себя http://php.net/manual/ru/ini.core.php#ini.auto-prepend-file и другие основы PHP

      во вторых — в битрикс на текущий момент все отлично с вводом и подстановкой сео данных начиная с редакции «первый сайт»
  • +7
    1С битрикс создан гениями
    маркетинга
    • 0
      Я думаю это все Рыжиков. Все равно люди идут за харизматическим лидерами. Он великолепно ведёт презентации. Чем собстна руководствоваться еще потребителю? Мнением профессионалов которые хаят друг друга бесконечно в не компетенции?)) Для них это пьяный бред.
      • НЛО прилетело и опубликовало эту надпись здесь
    • –2
      У Вас в последнем слове буквы "ни" лишние :)
  • +5
    Лол, помню как недавно главный по битриксу с гордостью анонсировал "Композитный рендеринг", который, при ближайшем рассмотрении в Q&A секции, оказался скопипизженой технологией плагина к магенте. Как там называются консументы последнего уровня, которые питаются падалью от падальщиков, которые жрут других падальщиков?
    • 0
      Ладно что он взят о куда то это то вот вообще не волнует. Там же такой жескач появляется по техническим ограничениям работы функционала сайта.
    • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      Плесень)
  • 0
    С интересом прочитал бы статью, «Битрикс глазами Битрикс-прогарммиста».
    • +12
      Да куда там статью, я бы даже с интересом посмотрел на человека "Битрикс-програмиста" которому нравиться то, что он делает и он в этом абсолютно уверен(и на заключение психиатра при общении с таким программистом я бы тоже взглянул).
    • +2
      https://habrahabr.ru/post/190084/ — старая статья моего коллеги, написанная до того, как он перешел на Симфони.
      • 0
        Почитал, порадовался…
        Теперь я понимаю как пишут ВСЕ продукты…
        Судя по теме которую вы дали — принцип действует везде…
        Не надо оптимизировать код, код просто должен работать… если ПК не справляется — купите ПК мощнее… но код не при чем… )
        Печально это на самом деле…
  • +2
    Господи, я уже думал я один так думаю!
  • +12
    Добавлю из своей частной парктики времён кодинга под Битрикс и Юми… )))
    Продукты были написаны бородачами, не знакомыми с принципами не только ООП но и стандартов программирования. В то время, как профессиональные программисты начинают свою карьеру с фундаментальной теории, математики, логики, и стандартов кодинга (которые между прочим были еще в давние времена, примеров много, гуглите), так вот, в это же самое время быдлокодеры "получают результат" намного быстрее, игнорируя все возможные правила и стандарты. Читать, поддерживать и исправлять такой код невозможно, только если переписать. Но это долго, дорого, и не понятно зачем нужно, если "стандартная комплектация" работает "из коробки" без каких-либо настроек.
    Однако, я занимался именно тем, что называется "кастомные доработки", а это требовало изменений и модулей и даже частично ядра. Да, я делал патчи для ядра Битрикса, и хаки для Юми. И да, это работало. дичайшие костыли, заставляющие работать что угодно… но поддерживать это мог только я, и мои последователи, прошедшие 3-х недельный теоретический и 2-х недельный практический курс по работе с этим адом.
    Я не могу по ряду причин назвать компании, на которые я работал с этими технологиями, но каждый раз я им ненавязчиво предлагал с нашим-то количеством программисто-часов переписать всё в нормальном виде собственной системы управления с поддержкой и стандратами, блэкджеком и прочими сладостями.
    Руководству нравится 1с. Это для них успокаивающая мантра. Им нравится что всё работает и все работают. А несколько лет назад, когда и Битрикс и Umi вдруг ударились головой об железную батарею и решили внедрять bleeding edge в виде модульного и компонентного фронтенда я решил уйти из веба. Python и Ruby, Java, С++, Go — это то, что действительно приносит радость и удовольствие. А веб… пусть он останется таким
    • +3
      Ну не весь веб такой.
      Рад за Вас, не всем везет найти то, "что действительно приносит радость и удовольствие".
      • +1
        не весь. но повезёт всем, я узнавал :-) не стесняйтесь пробовать новое!
        • +1
          спасибо, надеюсь, мне, думаю, от части везет — я люблю php. От части, потому что я еще не на том уровне, как хотелось бы.
          • +2
            а я тоже любил php, просто уже года два как не пишу на нём ничего вообще. не знаю даже новостей особо про седьмую версию. и ларавель очень любил. но я никогда не ограничивался какой-то одной технологией или каким-то одним инструментом для достижения какой-либо задачи. да и задачи разные. начинал с html еще в глубоких догугловских времён, продолжал в саппорте на третьем (!) php и перле, да, тогда cgi были повсеместно. потом революция 4 php, css, js и понеслась… параллельно я всегда увлекался системным программированием, изучал с, asm, бог миловал — я миновал delphi и pascal, хотя прекрасно читаю и понимаю и этот код. потом был c++, java, python, ruby. сейчас rust и go. до функционального не дошёл. всему своё время :-)
            • 0
              а я делфи не миновал )))) и третий пхп помню, правда только с четвертого взялся за него
    • +1
      Зачем уходить из веба, если Python, Ruby, Go приносят радость и удовольствие? o_O Можно же писать на них, заодно и ставку поднять :)
      • 0
        строго говоря из веба сейчас сложно уйти. те же парсеры на вышеупомянутых языках вполне себе из веба достают данные. куда они идут дальше — это уже второй вопрос, но от веба всё равно не уйти. я не совсем корректно выразился, простите: я имел в виду сайтостроение и цэмээсо-фреймворко веб-программирование. короче всё то, где результатом твоего кода html )))
        • 0
          Python + Django, Ruby + Rails — все еще некрасиво и костыли без архитектуры? Что же вас так отталкивает от веб-программирования, где результат в виде html? :)
          • +7
            банальное соотношение времени к деньгам. трудозатраты на веб кодинг приносят меньше денег, чем та деятельность, которой я сейчас занимаюсь. плюсом к "забытию мной веб кодинга" стала еще скука: однотипные типовые решения, типовые костыли, типовые заказчики, типовые скучные шаблонные psd, скучная невалидная вёрстка, скучная переделка в бэм, дичайше скучное количество пакетных менеджеров во фронтенде (ну реально их столько, что скучно перечислять), ну и так далее… нет, кому-то это всё весело и круто, для кого-то это холивар вообще, а я просто вырос, и теперь люблю оливки :-)
            • 0
              спасибо, мотивы прекрасно понятны)))
            • +1
              да, есть такое, но, по моему, большинство поставленных недостатков, как то, типовые задачи и такие же заказчики, а то и хуже, однотипные решения и тд, могут присутствовать и в других сферах разработки, а решаются не уходом из профессии, а работой на свой проект(ы) в команде людей, которые делают так, чтобы было приятно с ними. Но это дорого, ибо тут или за бесплатно работать (а жить тогда за что?), или инвесторы, но их найди пойди… короче что об этом говорить, сами понимаете.
            • 0
              везде скучно со временем становится. я вот наоборот, в вэб ушел лет 10 назад.
            • НЛО прилетело и опубликовало эту надпись здесь
          • 0
            Да ладно, что Вы так агитируете :)
            Кстати, 8 лет работы с Rails позволяют мне сказать, что внутренности фреймворка никогда особо не отличались идеальной архитектурой. В какой-то мере он проседает под своей же функциональностью. И порой, чтобы понять как работает какой-то внешне простой метод, приходится загружать в кратковременную память файлов этак 15-20, часть из которых ещё и во внешних гемах. Хотя чаще всего можно просто использовать API-фреймворка, не вникая в реализацию.
            По поводу Django не могу сказать, но подозреваю, что там тоже не везде всё шоколадно.
            Конечно, это всё в 100 раз лучше Битрикса, но что-то я склоняюсь к мысли, что для веба лучше всего в архитектурном плане подходит как раз функциональное программирование. ООП там только мешается и создаёт лишнюю сложность.
            А по сути к серверу приходит HTTP-запрос — входные данные, которые надо пропустить через ряд обработчиков (функций), последний из которых вернёт HTTP-ответ.
      • +5
        Python и Ruby ничем не лучше PHP

        Go реально какая-то альтернатива. но PHP ему не заменить а как дополнение к PHP вполне сгодится
        • 0
          Не знаю про питон, не пользовался, а вот руби всем лучше php, имхо.
          • 0
            Ха. Внесу вам раздор)
            Мы с коллегой тоже как то вот крутили вертели ну и… вот php как остался вне конкуренции по популярности так и есть. Помоему у php так и нет конкурентов в вебе. Ну посудите сами, по каким критериям сравнивать? Давайте опустим особенности языка — синтаксис — это выбор каждого. Там даже не буду вникать, это разные плоды человеческого мышления — они ценны и не сравнимы как два человека-личности. Сам по себе руби без рельсов — могу наврать, но никому не нужен особо. Да, знаю есть там и десктопные попытки и т.п. Сам по себе руби — язык медленный. Думаю это не новость. Yii2 — близкий аналог рельс. По факту, джанго, рельсы, yii — все дергают друг у друга фишки т.е архитектура примерно современна у всех со своими особенностями.
            php просто бьет своей популярностью. А после выхода php7 вопрос, как я понимаю, наезды на тормознутость из за архитекутры тихонько тихонько да и пропадают.
            Ну и вот… рельсы… зачем непопулярное и заведомое медленное… только для ценителей японского искусства. Но не пропагандировать руби означает отсутствие роста комьюнити, за это ответственность не возьму)
            • 0
              Да я вообще ASP.Net-чик, для меня все динамические языки априори хуже. Но из них я пробовал руби — приятный язык для локальной разработки, когда всю программу можно охватить взглядом. Сложные решения не пробовал, так чтобы там десятки решений в солюшене, и т.п. И руби мне очень понравился, довольно выразительный. А вот от пыхи очень негативные воспоминания.
              • 0
                С аспешниками вообще очень интересные беседы. По моим ощущениям как у аспешников с 1С никами но чуть лучше.

                Я, например, вообще не понимаю как можно делать сайты на шарпе.)) Ну да да я понимаю, сайты для больших компаний. По сообщениям коллеги работающего в крупной конторе, кода они перешли с шарпа на рельсы, можно было увольнять половину аспешников в отделе. Долго работают. Или вот меня такое пугает еще:
                Куплю я себе мак и не смогу больше работать без винды.

                Или вот, например, как разобрать ответ json неизвестной структуры не подключая dll? После php на шарпе какие то невообразимо придуманные сложности вылазят. JSON в php просто… как я не знаю что во всех вообразимых комбинациях.
                Вот такие вот мысли порой появляются.

                Но, конечно, каких то ботов или веб службы да, на шапре пиф раф и готово. Да, используем так как очень удобно.
                • 0
                  Или вот, например, как разобрать ответ json неизвестной структуры не подключая dll? После php на шарпе какие то невообразимо придуманные сложности вылазят.

                  Во-первых я миллиард раз сталкивался с парсингом JSON, и ни разу не было такого, что структура была неизвестна :)
                  Во-вторых даже если, то просто
                  var obj = JObject.Parse(json);

                  JSON.Net — один из основных компонент шарпа, я не считаю это сторонней библиотекой, как не считаю использование STL ей.
                  Я, например, вообще не понимаю как можно делать сайты на шарпе.)) Ну да да я понимаю, сайты для больших компаний. По сообщениям коллеги работающего в крупной конторе, кода они перешли с шарпа на рельсы, можно было увольнять половину аспешников в отделе. Долго работают. Или вот меня такое пугает еще:
                  Куплю я себе мак и не смогу больше работать без винды.

                  ХЗ, у меня никогда не было проекта, который длился меньше двух лет. На них динамические языки имхо не оч. А стародавние проекты создавались еще на 3.5 в момент его появления, и тоже до сих пор поддерживаются. Так что варианта два: либо сайты из разряда фигак фигак и продакшн, либо разрабы просто профнепригодные, а технология тут не при чем.
                  Ну и нужно понимать, что если сайт на шарпе работает, то скорее всего в нем ошибок нет, при грамотном проектировании это почти невозможно. В динамическом языке результат появляется намного позже, и таких гарантий со стороны компилятора нет. Не даром тайпскрипты появляются и все прочее, хотя на екмаскрипте можно все намного быстрее разработать.
                  Впрочем, все эти доводы в пользу "долгих разрабов" это просто либо как я сказал — разрабы не очень, либо просто холивар на тему статика вс динамика. Лично я за статику.
                  • 0
                    Во-первых я миллиард раз сталкивался с парсингом JSON, и ни разу не было такого, что структура была неизвестна :)

                    Не поверите! Но мне мой знакомый аспешник 1 в 1 говорит!)))Я ему вопрос из жизни, а он мне "зачем тебе это нужно?"))
                    Видимо миры разные) Дело то простое — есть сайт посольства, написанный на каком то java фрейворке. Нужно автоматизировать загрузку анкет. Анкета валидируется на сервере. При неверных данных сайт выдает другой json для js скрипта. Но так как у нас бот, разбирать ответ приходится самостоятельно, а технология требует сначала описать структуру json а потом уже с ней работать. Проблем то конечно нет. Но после php вызывает чес за ухом и натянутую бровь)
                    Так то да, холиварить особо не зачем.
                    • 0
                      Я не говорю, что не нужно. Я говорю, что структура известна, по крайней мере один из нескольких вариантов. Ну и да, даже если, я сказал, вот есть JObject, проверяем какие-то поля, если допустим это JSON с ошибкой, то делаем что-то, если нет, то преобразуем в доменный объект и дальше уже с ним работаем.
                      • 0
                        Там такой тупой JSON что и варианты описывать грешно. Проще оказалось If с регулярочкой.
                        • +1
                          Парсить структуры JSON/XML регулярками неблагодарное дело имхо. Но в любом случае JObject просто представляет собой хэш-таблицу, и можно просто через obj["foo]["bar"] обращаться к любым свойствам. Но я уже говорил, почти всегда я юзаю DeserializeObject и все.
      • 0
        > если Python, Ruby, Go

        Я знаю на RoR один скрипт интернет-магазинов — SpreeCommerce. Можете подсказать ИМ-скрипты на Python и Go?

        Интересная ситуация, всем хочется писать на Python, Ruby, Go — но популярных продуктов я не них не вижу. Есть сайты, которые написаны на них. Но вот продуктов, которые можно было бы купить, развернуть на своём сервере, настроить и запустить, чья популярность и известность были бы сравнимы с opencart/magento/prestashop/bitrix/wordpress — нету. На питоне разве что джанга вспоминается.
        • +1
          Spree это гигант в мире Ecommerce для Rails, у него практически монополия. Обычно берут либо его либо пишут что-то свое.

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

          Ruby в отличие от Go/Python фундаментально по философии ориентирован на быструю разработку. Т.е. напихали в Gemfile нужных блоков, чуть-чуть добавили своего кода по принципу "кода мало — результата много" (т.е. Ruby и Rails специально на это заточены) — и вуаля проект готов. Да, он легко может потребовать более мощного железа чем например аналогичный проект на Python и тем более Go.

          НО! Для ecommerce задач стоимость железа зачастую смехотворна по сравнению со стоимостью разработчиков. Время также критически важный фактор. Меньше время разработки — быстрее финансовая отдача от ее результатов. Это позитивная обратная связь, т.к. прибыль можно опять пускать на разработку, раскручивая маховик.

          С этой точки зрения вести разработку на Python/Django тоже вроде бы достаточно интересно (поправьте меня, знатоки). А вот например Go/Node безнадежно проигрывают — спецов искать тяжело в виду их малого количества (особенно на Go), системы могут получаться более "хрупкими" и дорогими в плане поддержки, в силу юности платформы и меньшего числа best practices (это частая беда проектов на node как я их вижу, например).

          Итого получается что бизнесу очень часто реально выгодно либо брать PHP либо Rails/Django. А node/go/erlang это более нишевые решения. Они либо могут быть небольшой частью системы (чатик например когда надо прикрутить, или еще какой рилтайм функционал), либо основной систем другого характера (например, онлайн-гейминг).
          • 0
            Спасибо за развёрнутый ответ. Очень интересно.

            > Spree это гигант в мире Ecommerce для Rails, у него практически монополия.

            Вот это-то и интересно. Почему монополия? Почему один инструмент? Не востребовано? А почему? Вот на php для веба написана масса, просто масса скриптов для екоммерса.

            Ведь когда пишешь что-то своё, нужно реализовать массу рутинных вещей, заниматься которыми в общем скучно. Писать очередной модуль расчёта скидок по кастомизируемым правилам? Очередной модуль оплаты/доставки? Это правда интересно? Я вот не знаю ответа.
            • 0
              Тут мне кажется история во многом похожа на Rails. Зачем несколько инструментов, если есть один и классный, который на голову лучше других? Конкуренция это хорошо, но только не как самоцель.
              Ведь когда пишешь что-то своё, нужно реализовать массу рутинных вещей, заниматься которыми в общем скучно.

              Так а зачем писать "очередной модуль"? Возьмите подходящий gem или напишите уже один раз свой универсальный, который будете потом в новые проекты легко добавлять. Тот же самый Spree например тоже модульный, и часть его кода к себе в проект можно спокойно утащить. Самый яркий пример наверное — Payment Gateways. Или модели тех же самых заказов берите из Spree или какого-то другого решения и используйте. Массу рутинных вещей с помощью gems как раз и можно решить.
            • +1
              Как один из разработчиков Spree, отмечу, что монополии у Spree нет, да и не было.
              Всегда были альтернативы, в 2009-2010 был Substruct, в 2011 появился ror_ecommerce, сейчас есть Shoppe и Piggybak, а от Spree 2.3 появился форк Solidus. А вот то, что с 2010 года по сей день Spree удерживает лидирующие позиции среди конкурентов, — это правда :-)
              Ведь когда пишешь что-то своё, нужно реализовать массу рутинных вещей, заниматься которыми в общем скучно.
              По-моему устанавливать готовые модули/расширения ещё скучнее, чем писать собственные… Впрочем, чтобы не заскучать, придётся каждые пару лет менять область деятельности.
              • 0
                Скучнее, да. Но установить готовый модуль это полчаса, а сколько времени скучать при написании рутины…
            • 0
              Django Oscar это фреймворк интернет-магазина на Python Django, да вообще Django Framework на мой взгляд самый рассово чистый веб-фреймворк из (Python, Ruby, PHP) долго (ну кому как конечно) нужно вникать, зато когда вникаешь становится ясно что это всё очень хорошо и правильно, и покой)).
        • 0
          Для e-commerce на Python сейчас вроде в моде django-oscar.
          Что касается Go, на мой взгляд, у него другая ниша.
          • +1
            Да дело не в нише, дело в продуктах. Вон в комментарии выше упоминают node.js. Сайты на нём делают, знаю. Знакомые девелоперы есть. Вернее там SPA на связке Angular.js + node.js + Angular Materials (если не ошибаюсь — набор компонентов для ангулара по гайдлайнам гугл материалс).

            Но продукты-то где?

            Вот казалось бы — если тебе в кайф работать с нодой/питоном/руби — да возьми тот же битрикс и напиши аналог на новом инструменте — шустрый, лёгкий.

            Нету.
            • +1
              Правильно, потому что "коробочные" интернет-магазины покупают, если они на PHP и с минимальными требованиями к квалификации для установки/поддержки (читай — дешево обходятся).

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

              А если не PHP, то SaaS продавать можно. Уверен, есть SaaS для интернет магазинов написанные не на PHP, в т.ч. в России.
              • +1
                Уверен, есть SaaS для интернет магазинов написанные не на PHP, в т.ч. в России.
                Так это и не секрет. Как миниму InSales поверх RoR крутится.
            • +1
              Хах, попытки то есть и очень много. Но Вам зря кажется, что написание ecommerce-платформы — это задача из разряда "захотел — взял и сделал".
              Во-первых, нужен высокий уровень компетенции в теме.
              Во-вторых, нужно дофига свободного времени, либо финансирование разработки.
              В-третьих, нужна команда, в которой помимо программистов будет хотя бы дизайнер, и очень желательно маркетолог.
              Проще говоря, чтобы подвинуть PHP на рынке коробочных решений, должно захотеться компаниям, а не программистам.
    • НЛО прилетело и опубликовало эту надпись здесь
    • +1
      Веб приносит радость и удовольствие, но его нужно правильно готовить. Или как минимум не в котле битрикса.
  • +2
    Можно добавить ещё несколько «движков» для выкачивания денег из заказчика?
    • НЛО прилетело и опубликовало эту надпись здесь
  • +6
    Довольно странно относиться к Битрикс всерьез, тем более — как к «продукту». Битрикс — это культурно-историческое явление, замечательное не только количеством созданных рабочих мест для низкоквалифицированной раб. силы, но и прежде всего тем, что является прекрасным индикатором отсталости рынка, продолжающего его «хавать» в таких диких количествах. Уверен, что умные аналитики давно мониторят количество МегаБитриксов в эксплуатации, чтоб не пропустить момент, когда массовый рынок созреет для выхода настоящих высокотехнологичных продуктов. А пока что, да — каждая строчка «доработки сайта на Битрикс» не только убивает трех котят, но и уверенно отдаляет это светлое будущее ;)
    • +1
      Ох я не уверен, что рынок когда то там созреет для дзена вместо прибыли.
      • +3
        Дзен и прибыль вещи неразделимы, простой пример. Берём magento — час программиста дороже(большой порог входа), архитектура mvc(хорошо продуманна и построена), в комунити много расширений решающих 30% задач, 60% она решает из коробки, разработка модуля занимает от (1-8 часов). Битрикс — дешёвые программисты, архитектура говнокод, много расширений и т.д. Так что magento дешевле окажеться в поддержке чем битрикс. Но у второго маркетинг и начинающие программисты что перевешывает плюсы magento.
        • 0
          Меня сильно огорчает рынок cms для интернет магазинов. Просто гонит в адскую печаль. Мне вообще ничего не нравится.
          Из бесплатных что prestashop (нет из коробки модуля самовывоза, визуально легкий но адский дефолтный шаблон в over 5000 строк css это капец) что opencart — динозавр ( после сборки обточить напильником © ) пораждающий бесконечные сборки ибо мы в России.
          У нас просто выбирать нечего, если инет магаз да и с 1С — битрикс.все. Фрилансер смоется, еще найдешь, с магентой скорее хрен найдешь вообще кого.
          • +1
            на magento порог большой но и фрилансеры есть которые с ней "работают" правда в ковычках, после некоторых приходиться выпиливать кучу велосипедов от незнания cms. Но есть довольно неплохо владеющие люди этой цмс.
            • НЛО прилетело и опубликовало эту надпись здесь
              • 0
                Согласен, но в magento это тотально, самые распрастранёные, rewrite классов ядра, комунити. Не реализация api для работы в шаблоне(пихают всё в шаблон), нарушение MVC(в моделе бизнес логика, в контролере левые операция над html, в шаблонах та же бизнес логика) в общем всё в куче. Самое интересное цитирую
                Прямые запросы работают быстрее, это оптимизация скорости работы.

                Так ведь не докажешь что это "плохо", что orm не просто так для понтов там. Что с коробки есть репликация, и что если ты делаешь прямой запрос, то ты должен взять либо конект на чтение либо на запись, и при том ещё учесть что могут быть и другии конекты настроены.
                И тут повышаеться нагрузка и возрастает количество запросов к базе, блокировок строк и таблиц, и всё, м упираемся в прямой запрос который висит, или же после репликации делает запрос на базу для записи а не чтения, и начинаеться.
                В обще всегда, вызывало недовольствие такая штука, "Я умнее тех чуваков что написали эту cms" а после, начинаються возглосы магенто тяжело, много абстракций, и т.д. и т.п. Ну а на то что "я" наплевал на архитектуру, наплевал на обсерверы(которые к стати в magento реализованы на пределе перфекционизма), переписал кучу классов, всё тормозит и не работает и вообще magento г… но. Такая штука. Обновить невозможно…
                Я люблю magento на столько что, из cms работаю только с ней 2-х лет, в основном выбор из за цены(мой рейт от 1000 на фрилансе на Российском рынке), архитектуры(в основном разработка модуля какого нибудь парсера от 4-8 часов с сохранением товаров и т.д.)…
                И да мне пришлось 2 недели изучать, пробывать писать простой модуль, интеграции с amocrm(спасибо teamlead редкосная св был ну давал время на обучение), и только через месяц я начел понимать что делать хорошо а что плохо…
                п.с. Для меня сложно остановиться… Но так пожелание для тех кто говорит что сложно изучать, вспомним поговорку, глаза бояться руки делают.
                • 0
                  обсерверы(которые к стати в magento реализованы на пределе перфекционизма)
                  Если все так круто, то как в первой magento можно легко и просто задать очередность обработки конкретного события конкретными обозревателями?
                  • 0
                    буквально 3-мя строчками
                      <depends>
                             <Mage_Core/>
                      </depends>

                    обсервер, зависимости выполниться первым.
                    • 0
                      Но как быть если один обозреватель описан в global area, а другой во frontend, будет ли предложенный вами метод однозначно задавать очередность в этом случае для фронтэнда или очередность выполнения этих обозревателей будет зависеть от очередности обработки area?
                      Или допустим есть два (или больше) модуля и в каждом два (или больше) обработчика одного и того же события — как задать их очередность с помощью предложенного вами метода?
                      • 0
                        Но как быть если один обозреватель описан в global area, а другой во frontend, будет ли предложенный вами метод однозначно задавать очередность в этом случае для фронтэнда или очередность выполнения этих обозревателей будет зависеть от очередности обработки area?

                        Ну во первых вы можете задать несколько обозревателей для одного модуля и в global,frontend и adminhtml. Но зачем вам это делать и при этом ваш модуль при одном event'e изменяет одно и тоже свойство одного объекта одновременно, простите но это выдающийся пример как создать проблемы самому себе, и потом их решать, когда вы можете описать один в global.
                        Или допустим есть два (или больше) модуля и в каждом два (или больше) обработчика одного и того же события — как задать их очередность с помощью предложенного вами метода?

                        Ну не один трезвый человек не создаст, 3 одинаковых обсервера в одном модуле делающих одно и тоже. Так что способ рабочий.
                        • +1
                          3 одинаковых обсервера в одном модуле
                          читайте внимательно вопрос, там про разные модули.

                          Т.к. вы не ответили по сути на мои вопросы и начали демагогию про «трезвость» и т.п.,
                          то я сам отвечу:
                          • Очередность выполнения обозревателей зависит в первую очередь от очередности обработки area — предложенный вами метод не работает.
                          • Очередность в случае двух(или более) обозревателей для одного и тоже события в двух (или более) модулях с помощью предложенного вами метода задать не возможно.

                          Вы написали про
                          обсерверы(которые к стати в magento реализованы на пределе перфекционизма)
                          я показал вам что это не совсем так. Разбирать конкретные кейсы про проблемы с очередность обозревателей, о которых судя по вашему ответу вы даже не догадываетесь у меня нет ни малейшего желания — это займет слишком много времени. Да, у magento архитектура гораздо лучше чем у других ecommerce платформ, но я просто хотел показать вам на основе вашего же высказывания про обозреватели, что и она не идеальна и сделана далеко не «на пределе перфекционизма»- только и всего.
                          • 0
                            Или допустим есть два (или больше) модуля и в каждом два (или больше) обработчика одного и того же события — как задать их очередность с помощью предложенного вами метода?

                            Цитирую ваш вопрос, вы написали в каждом два или более обработчика одного и тогоже события. Перчитайте плиз. Поверьте это решает все проблемы которые могут возникать. т.к. на практике вам лишь надо чтобы ваш обсервер выполнился последним.
          • +2
            Для интернет-магазина не обязательно cms использовать. Фреймворк или фреймворк+админка (Yii, yupe, etc) тоже могут сделать магазин.И чем важнее и крупнее магазин, тем менее важна для него админка (постепенно данные уходят в Excel., 1C, ERP и т.д.).
            Там уже должны всплывать вопросы, не сколько строк в css, а как сделать фасетный индекс для фильтра.
            • 0
              конечно, если у вас по России сеть электроники, то cms точно будет палкой в колесе, но я же говорю про интернет магазины не крупного бизнеса.
              • 0
                С некрупным бизнесом еще интереснее.
                Во-первых: некрупный бизнес если не дурак и прислушается к разработчику, то поймёт, что на фреймворке нормальном сделать ИМ: раз: дешевле, два: быстрее. Ну и переплата за хостинг и поиск разработчиков.
                Во-вторых: некрупный бизнес (если это не партнёрка кепок-маек-кружек-чехлов) понимает, что он может выехать на особенностях своих продуктов, и сделать что то кастомизированное, в отличие от крупных магазинов, где всё типовое (с виду). И тут теряется время на переделывание того, что по идее переделываться не планировалось. Особенно это актуально для всяких разных бизнесов необычных или с нетиповыми каталогами: торты, цветы, ювелирка, доставка продуктов питания, доставка и сбор гамбургеров кастомных т.п.
                В-третьих, некрупному бизнесу пипец как важно SEO и юзабилити, удобство покупки. Я намекаю на битриксовскую скорость генерации страницы, 503 ошибки, генерируемые "из коробки" (я вот про это: http://i.imgur.com/bjkHhBI.png), переплата за хостинг, вынужденное включение кеша, которое приводит к бизнес-проблемам (цена не те, остатки не те, цена оптовая вместо розничной) и т.д.
                В четвёртых, некрупному бизнесу сложнее и дороже несколько раз сайт переделывать.А переделывать он будет, т.к. на битриксе он получит или шаблон за недорого, нормально работающий, но шаблон, или недорогую поделку на костылях и с проблемами, или работающее решение, продуманное и быстрое, но за огромные деньги (я про >миллиона рублей), которые ему не по карману на первых порах.
                Парадокс, но выехать на битриксе крупному бизнесу проще — есть решения именитых вендоров за круглые суммы, но работающие. Пусть костыли, пусть фильтры на яваскрипте сделаны (я про магазин леруа мерлен), зато работает.
                И для всего, что я сказал выше — есть исключение: для тех бизнесов, которым нужен сайт "чтобы был", ничего, о чем я написал выше не относится. Они заплатят денюжку, купят лицензию, сделают верстку, натянут на админку, и у них появится сайт "чтобы был".
                • +3
                  некрупный бизнес воспользуется сервисами типа ecwid merchium или будет генерить из экселя в статический каталог.
                  или возьмет ворпресс. и получит готовое решение.

                  и не нужны ему тут никакие фреймворки.
            • –2
              Вот только фреймворки не заточены под создание интернет-магазинов, сколько времени вы потратите на создание функционала, который в любом скрипте ИМ есть из коробки?
              • 0
                Фреймворки под конкретные задачи и не затачиваются, фреймворк это всего лишь инструмент, при помощи которого можно сделать все что душа пожелает.
                • 0
                  Это понятно. Вопрос был — сколько времени займёт создание функционала ИМ, который в соответствующих CMS есть из коробки.
              • +1
                Меньше, чем на выпиливание функционала, который не нужен, точно меньше на "натягивание" верстки, точно меньше на переработку дизайна, чтобы соответствовал возможностям самой системы, и на порядок меньше на поддержку.
                • +1
                  Зачем выпиливать ненужный функционал? Он сейчас не нужный, а через год нужный. То есть, хочется заработать денег сначала на удалении изкоробочного функционала, а потом на возвращении его обратно (по факту, раскомментировать закомментированное, а денег как за полноценную работу)?

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

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

                  Ещё один существенный момент — поддержку велосипеда на фреймворке крайне сложно передать другому подрядчику. Часто студия делает так — форкает фреймворк, делает новое название, дописывает какой-то код и продаёт это как собственную разработку — при попытке заказчика сменить подрядчика по сайту студия тычет пальцем в пункты договора мелким шрифтом. Типа, хотите сменить исполнителя работ — извольте заплатить нам за наш фреймворк 100500 мульонов.
                  • 0
                    Начинающий магазин так не делает. Он покупает готовую тему, натянуть которую на CMS — дело трёх минут.

                    Ну, если мы говорим про сайт "чтобы был", и закрываем глаза не семантическое ядро, юзабилити, конверсию (или делаем исходя из того, что есть, а не действительно по настоящему), тогда готовый шаблон — идеальное решение. Хочешь чтобы был сайт — получишь сайт и ничего кроме сайта.
                    Я имел в виду решение бизнес-задач сайтом, разумеется, а не некую "витрину с корзиной в Интернете", где забит ассортимент продаваемой продукции. Такие сайты хороши тем, что если есть отлаженная схема продажи в оффлайне, и хочется больше денег, вот и делается интернет-магазин, и даже пару продаж в месяц делает, критической частью бизнеса не является, а если сайт падает, то заказчик может об этом узнать через день-два. Обычная картина. Online-first тут и не пахнет. Такие заказчики могут сделать сайт на каком нибудь wix и не заметить разницы, наслушаться бизнес-молодости, намолотить несколько лендингов и делать туда контекстную рекламу. Просто когда через год-два захочется денег заработать, они всё равно придут к первому вопросу и сделают нормальный сайт на фреймворке.
                    • 0
                      Так.

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

                      Подавляющее большинство ИМ начинают по другому. Часто там сам владелец ИМ, как правило, не программист — берёт CMS, покупает тему на теморесте, докупает несколько модулей (или использует SaaS, евклид, инсейлс или что там ещё) и запускается, как есть и как сумел, или если есть немножко денег — ищет фрилансера. Чуть побольше денег — студию.

                      Если сайт не взлетел — ну, бывает. Если сайт взлетел и начал приносить прибыль — на сайт владелец начинает добавлять новые плюшки, что может — сам, что не может — фриланс или студия. Если сайт был на SaaS — переползают на свою CMS. На этом этапе на практике изучаются и сео и юзабилити и конверсия и т.д., что вы упоминаете.

                      Стали зарабатывать больше денег — перешли на ежемесячную поддержку — ставятся задачи, исправляются баги, проводится а/б тестирование, налаживается обмен между сайтом, складом и бухгалтерией. В основном тут отлаживаются цепочки поставщик-склад, склад-доставка-покупатель, общение с покупателем и т.д. Но всё ещё всё работает на CMS.

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

                      И следующим этапом всё переписывают на фреймворке.

                      > Просто когда через год-два захочется денег заработать,

                      Вот эти год-два и уходит на этот цикл — от SaaS/CMS до понимания, что и как делать на фреймворке.

                      Представьте, что вы только что получили права — сможете вы участвовать в гонках Формулы-1?

                      Разумеется, нет. Вам понадобится время на освоение профессии, на освоение болидов, трасс.

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

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

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

                      CMS + готовый шаблон + мелкие доработки позволяют запустить магазин в кратчайшие сроки и за минимальные деньги. Взлетит — появятся средства на фрейморк и команду прогеров, не взлетит — ну, потеряли 50-200к, переживём.

                      В идеальном мире всё так как вы говорите. Но живём в грубой реальности.
                      • +2
                        Хех. 200к стоит сделать нормальный магазин, не стотыщлямов. Будет уметь столько же сколько на битриксе, а уметь больше.
                        Дело в том, что меня действительно раздражает как данность, то что бывают в принципе такие вопросы, как:
                        "На какой CMS делаете?"
                        "Сколько стоит поддерживать сайт в месяц?"
                        Откуда у людей такие мысли? Когда мы скатились в ту дыру, когда бедный потребитель напуган, обработан и поставлен на такие рельсы?
                        Чувак, ты ставишь задачу, рассказываешь о проблемах, тебе делается продукт, который прекрасно работает. Это не CMS, она вообще не обязательна для нормальных решений, и не надо никому платить каждый месяц чтобы допиливать, пользуйся и зарабатывай, и не надо платить 300-400к, которые просят за средние сайты на битриксе. Но нет, бедный потребитель обработан, для него априори нужна CMS, это означает что априори понадобится поддержка. Не дай Боже ему присоветуют джумлу — сайт его через год начнет слать спам после того, как будет взломан, и вот и мучается, и платит, платит, платит, утешая себя тем, что он малый бизнес и всему надо учиться.
                        А всё оттого, что кто то когда то вбил в голову, что надо выбирать CMS.
                        Мог бы знающим ребятам дать денег за нормальный результат и его получить.
                        Вот и сталкиваешь несколько раз в месяц с людьми, которые "а мы уже лицензию битрикса взяли, ну и решили делать, а ребята много денег просят за доработки/пропали/сделать не могут", мучаются, жалуются, на полном серьезе ищут разработчиков на битриксе, на полном серьезе разбираются с проблемами, которые возникли, пытаются их решить и не могут.
                        С какого перепугу владельцу битрикса надо разбираться с "формулой 1"? С какого перепугу ему надо выбирать CMS? А библиотеки, язык программирования, паттерны проектирования тоже ему выбирать? Он не умеет работать с интернет-магазинами — неужели компания-разработчик не поможет?
                        Проблема тут есть и она печальна — заказчик вместо "сайт с фильтром, быстрой загрузкой и удобной корзиной" просит "сайт на битриксе". И получает не "сайт с фильтром, быстрой загрузкой и удобной корзиной", а именно"сайт на битриксе". Он должен за бизнес свой просить и его особенности, про проблемы и задачи, а не требовать вариант решения (CMS), которая с задачей то никак и не связана.
                        Дайте программисту проблему — получите путь решения. Дайте программисту путь решения — получите проблему.
                        • +1
                          Плюсанул бы, да не могу =) Маркетинговая стратегия (имхо) битрикса именно на это и нацелена. Они вышли на рынок не через разработчика, а через заказчика/менеджера/дядю. И этот дядя начинает диктовать разработчику как и на чем писать. Отсюда фигова туча конференций для «студий-партнеров», «менеджеров» и т.д. и совсем дохлые попытки понравится разработчикам минуя «откаты» от перепродажи коробок.
                          • –1
                            Потому что заказчик не дурак. Он понимает, что с битриксом, даже если ему наговнокодили, он всегда найдет другого фрилансера, студию, которая возьмется за его сайт.
                            А найти просто человека, который будет поддерживать сайт непойми как и кем: это сложнее и в итоге дороже.
                            А крупные магазины всегда имеют такой перечень задач вперед, что способны загрузить группу программистов на длительное время.
                            • +3
                              Заказчик не дурак в своей бизнес серде, а вот в технологиях в 80 % он как раз дурак.
                              Что ему красиво продали, то он и скушает. Скушает сам и заставит кушать всех, кто вокруг него. Увы и ах, заказчик в наших реалиях не видит в разработчике помощника своему бизнесу, он в нем видет лишь «тупого» испольнителя его хотелок, отсюда и «он всегда найдет другого фрилансера». Выше был комментарий про отсталость рынка — вот это и есть та самая отсталость.
                            • 0
                              прилетело НЛО и удалило эту запись
                            • 0
                              прилетело НЛО и удалило эту запись
                            • +1
                              По-моему найти человека, который разберется в WooCommerce и что то там дополнит — проще и дешевле, чем битриксовца, не находите?
                              • 0
                                При условии, что будете искать на англоязычных биржах — да, проще намного. Но многие же этого не умеют и бояться как огня. Со знанием английского тоже не все прекрасно.
                                • 0
                                  Нет, совершенно необязательно. WooCommerce — плагин для WordPress'a. Человек, который поднял пару тройку сайтов на WP — в МС разберется в течение одного дня.
                                  И не обязательно тут искать по англоязычным биржам, своих по-моему достаточно много.
                                  • 0
                                    Так-то да, толковых WordPress умельцев у нас хватает. А за рубежом еще и много людей у которых богатый опыт работы именно с WordPress, это получше будет все-таки. Ну и некоторым заказчикам обязательно проекты в портфолио с выбранной технологией подавай, опять-таки с этим проще зарубежом.
                        • НЛО прилетело и опубликовало эту надпись здесь
                          • 0
                            имел опыт работы с движком, на котором работает розетка. он платный сам по себе + платная поддержка.
                            за вашу платную поддержку разрабы скажут вам где и что фиксить или отправят в соотвествующий раздел документации, но не сделают это сами.
                            но нередко бывает и такое, что нужного раздела в документации нету, тогда по вашему запросу за пару-тройку дней или недель раздел заполнят)) вот такая documentation on demand))

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

                            как за тагое можно брать деньги, я не знаю… но на нем таки крутятся большие магазины (розетка, сокол, музторг и многие другие)

                            ЗЫ. чуть не забыл, зовется это чудо OWOX. От всей души советую не связываться)))
                        • 0
                          > Вот и сталкиваешь несколько раз в месяц с людьми, которые «а мы уже лицензию битрикса взяли

                          Знаете почему? Потому что купить лицензию битрикса у битрикса сейчас стоит 36к — а студии берут дороже. Хотя у них часто партнёрство с битриксом и они его берут гораздо дешевле. И с другими ИМ-скриптами ровно то же. Максимум студия продаёт скрипт за ту же цену, что и разработчики.

                          Заказчик же не идиот. Он видит цену лицензии в предложении студии и видит цену на сайте битрикса. Поэтому он сам покупает лицензию.

                          > не надо никому платить каждый месяц чтобы допиливать

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

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

                          > Это не CMS, она вообще не обязательна для нормальных решений,

                          Ок, какое нормальное решение есть? Вот у человека задача запуститься через месяц, вот ТЗ — там ниже комментатор по пунктам разложил. Сколько времени вы потратите?

                          Факт в том, что „сайт с фильтром, быстрой загрузкой и удобной корзиной“ на битриксе есть практически из коробки.

                          (я тут под битриксом понимаю не конкретно эту CMS, а любую, заточенную под ИМ — престашоп, мадженто и т.д.).
                          • 0
                            > Надо. Нормальный заказчик постоянно внедряет что-то новое, подсмотрел где-то у конкурентов фичу — хочет её внедрить, допиливаем. Расширяет ассортимент, понадобились новые характеристики для товара, добавляем характеристики — это в битриксе делается мышекликом, а в вашем фреймворке как? Переписываем фильтр с учётом новых характеристик.

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

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

                            например если нормально спроектировать фильтры, то при появлении новых характеристик придется поправить… ничего.
                            • 0
                              > придется поправить… ничего
                              Возможно. Я просто привёл пример. Будет не это, так что-нибудь другое.
                          • 0
                            На фреймворке говорить про оптимизацию можно начинать не от нескольких тысяч, а от миллиона-сотен тысяч.
                            К тому же сфинкс с фасетами прикручивается ну может быть за 4-5 часов. Да и без фасетов оно нормально шустро работает. Ни один битрикс-разработчик за 4-5 часов не приведёт "готовую" коробку к рабочему варианту. Просто по факту, когда в 9 утра есть свежеразвёрнутый битрикс, а в 14:00 — работающий фильтр, который можно тыкать. Про индексы молчу. Максимум галочку "использовать фасетный индекс" нажмет и пальцы скрестит.
                            И да, чтобы добавить новую характеристику товара не надо обращаться к разработчикам. А на битриксе — надо. Если надо добавить характеристику — заказчик пишет емейл исполнителю. Ну бывает так. Ну правда такая. Боязно же или банально не знают как это сделать — ибо если не ту галку нажмут — сайт сломается.
                            Как то раз гордый заказчик говорил — у нас на битриксе раз — и поставил, допустим голосование на страничку. Предложение хотя бы за 30 минут это сделать, продемонстрировать, поставить голосование на страничку — стушевался, ибо ну не будет он это делать. Дошло, что на каждый чих придется писать разработчикам. Даже на создание страницы иногда.
                            • НЛО прилетело и опубликовало эту надпись здесь
                              • 0
                                Фасетный поиск — http://bfy.tw/4yCH
                                не могу поставить ссылку=(
                                • НЛО прилетело и опубликовало эту надпись здесь
                                • НЛО прилетело и опубликовало эту надпись здесь
                                  • 0
                                    https://habrahabr.ru/post/229905/ вот пример.
                                    если в двух словах, то вместо сложных поисков в РСУБД используют elasticsearch, который для этой цели подходит идеально. выдачу еластика можно еще и подкрутить так, чтобы какието параметры были более важными, какието менее важными, в итоге мы получаем автоматическую сортировку результатов по релевантности. Работает это в разы быстрей чем с РСУБД, позволяет искать по любому количеству полей и любой их комбинации)
                                    • НЛО прилетело и опубликовало эту надпись здесь
                              • 0
                                Фасетный поиск — слова маркетолога.
                                Фасетный индекс — программиста. Нет, это не кеширование всех запросов. Это выдержать нагрузку поиска по фасетному фильтру, успевая отрисовывать страницу за 0.01-0.3 секунды.
                                Это elasticsearch, это реализация даже через тот же mysql, это может быть редис. Даже в битриксе он есть.
                                То, что mysql не делает индекс из коробки — ничего не означает. В чистом mysql такой индекс несложно делается.
                                Называть индексы кешированием это вообще без слов.
                                • 0
                                  делать это в мускуле вообще печально, так как мускуль не умеет в рейндж-запросы по двум полям с использованием индекса. На хабре гдето была статья про редис, но тот подход не прокатит для магазина с сотнями тысяч товаров.
                                  так что по сути это еластик серч (или аналог) или костыли)
                                  • 0
                                    Если быстрый коннект PHP <==> Mysql, можно что замутить. Допустим есть "цвет".
                                    Делаем таблицу facet_color, в ней столбец ключ и столбец, в котором индекс (прямо в тексте, через запятую ID товаров или JSON).
                                    Объединение массивов ID — на стороне кода. + handlesocket.
                                    В теории такая конструкция сможет заработать, но да, эластик или сфинкс проще гораздо.
                                    • 0
                                      эта конструкция и называется костылем. если вы продаете допустим мобилки, у них под 20 параметров. ваша конструкция это 20 таблиц, 20 запросов к ним и интерсект 20 массивов айдишников.

                                      а если юзер выбрал не один вариант каждого атрибута, то данных становится еще больше. чуть-чуть хайлоада,
                                      и все...)
                                      • 0
                                        Конечно, костыль. Но сравните 10 запросов к таблицам и запросы WHERE по 100 000 строкам всех мобильников. 20 запросов сложностью log(n) по таблицам размером 10-50 строк будет гора-а-аздо быстрее, чем один, но по 100000 строкам. Я не зря указал, что при наличии быстрого коннекта, например, если php и mysql на одной машине.
                                        А если надо строить фасеты (для каждой характеристики выводить в скобках сколько там количество будет если эту опцию выбрать), то обычный where одним запросом на параметр убивает систему.
                                      • 0
                                        А вообще так конечно делать никогда нельзя.
            • НЛО прилетело и опубликовало эту надпись здесь
            • –1
              начальная редакция битрикс стоит 2к рублей и содержит в себе фрейморк и готовую админку заточеную под пользователя. и решающую типовые 90% задач по управлению контентом.

              > фреймворк+админка (Yii, yupe, etc)
              за сколько денег вы сделаете админку такого же уровня с документацией и сколько лет будете ее поддерживать?
              • +1
                Строго говоря, админка, действительно позволяющая решать задачи за такое же время контент-менеджера (а не просто повторяющая кучу галочек и опций битрикса) + сайт, который выглядит как сайт на битриксе, но работает быстрее и лучше, будет сделан быстрее и дешевле чем на битриксе.
                Деньги + Время = такой же результат.
                • –1
                  тогда почему мы до сих пор не видим вашего чудо решения?
                  вы определенно стали бы богачом и порвали рынок.

                  • 0
                    Удобные админки рвут не рынок, а решают вполне определенные задачи для одной компании. Если конкретное решение удобно для конкретной компании, оно не рвет рынок и вообще на него не влияет.
                    А вообще на рынке сейчас есть конторы, которые делают "лучше и быстрее", чем на битриксе. Т.е. недорого и быстро дают решение на фреймворке.
                • –1
                  Пыль в глаза бросать нынче модно однако. Я бы рекомендовал поработать в админке битрикса с месяц на роли контент-менеджера в целом отделе такихже контенщиков. У которых в распоряжении только свой личный инфоблок с настроеными правами.
                  Ну или покажите факты, языками чешут нынче многие. Это как c Java, народ гнобит язык, гнобит его внутреннюю микрофлору… а что по факту? Тонны ПО на нем используется всеми, ежесекундно. Битрикс в первую очередь — это комерческая cms, и если у вас слабые нервы, пишите на бейсике, нервы съэкономите.
            • 0
              Вы ой как лукавите.
              Сколько времени с нуля (без всяких своих наработок за годы) на фремворке вы сделаете полноценный интернет магазин?
              1. чтобы там был полноценный каталог с каталогизатором. Бесконечное количество типов цен в зависимости от пользователя, групп пользователя, акций по времени, по сумме и т. п.
              2. Полноценная корзина, позволяющая себя выводить в разных местах (плавающая в шапке, большая: на отдельной странице).
                С возможностью редактирования позиций, применения купонов, автоматически добавлением разных бонусов по правилам.
              3. Оформление заказов с множеством служб доставок и оплаты (всякие транспортные компании, расчет посылок автоматически, платежные агрегаторы, типа робокассы и яндекс.кассы).
              4. Полноценная возможность администрирования заказов, с возможность разделить заказ контент редактором, слить два заказа, поменять в нем что угодно.
              5. Выгрузки автоматом в яндекс.маркет и т. п. подобные сервисы.
              6. Полноценная интеграция с 1С, с выгрузкой заказов и каталога. А еще лучше с обменом в реальном времени.
                и т. п. функционал.
                Сколько вы будите, грубо говоря делать сайт подобным днс, ситилинк или эльдорадо?
              • 0
                Можно поправки? А то опять лукавство.
                1. днс, ситилинк, эльдорадо с робокассой не работают. Это не сайты от 50 тысяч. Им важны 5%, которые робокасса берёт Они работают с эквайрингом конкретного банка. Учтите это, и то что "изкоробки" битрикс такое не умеет. В общем, уточните по поводу оплаты.
                2. днс, ситилинк, эльдорадо нуждаются в фильтре с пресловутыми фасетами. А миллионы комбинаций в фильтре приводят к тому, что закешировать это не выходит, то есть опять 4 секунды на генерацию страницы. Появляется нужда в фасетном индексе. Уточните, ведь это не сайт за 50 тысяч.
                  3, Почти самое важное. На сайтах вроде ситилинка/эльдорадо ведь не один макет и не два (я про дизайн-вёрстку), а 20-30. Это тот фактор, который влияет на стоимость недорогих сайтов и больших.
                3. 1С? всякие dns и уж точно юлмарт выгружают из ERP систем (у юлмарта была Ultima, а потом SAP). Идёт лесом изкоробочная "интеграция", а писать с нуля всяко быстрее, чем перепиливать существующее. Ну и как обычно — у сайта за 50 тысяч — XML из 1C распознать, у днс, ситилинк или эльдорадо — возможно, тоже, да не факт.
                4. Служба доставки? У таких сайтов ( днс, ситилинк или эльдорадо) не "интеграция со службой доставки", которую берут готовую из корзины битрикса и вставляют. Там своя система расчёта стоимости, которая персональная вплоть до конкретного магазина. Тут я ухожу от dns, которые доставкой не очень то занимаются, конечно, но не суть.

                Другими словами, уточните, что именно делается: указанные 6 пунктов или сайт, подобный днс, ситилинк или эльдорадо?
                После уточнения с удовольствием развёрнуто отвечу. Мне действительно любопытно, как на как битриксе можно сайт вроде dns поднять (не подменяя, конечно, кишки системы своим кодом, оставляя от битрикса только админку и API инфорблоков). Хуже только твиттер поднимать на джумле или хабарахабр на вордпрессе.
                • 0
                  На самом деле для обывателя магазины типа ситилинка, днс, эльдорадо ничем не отличаются от менее пафосного и дорого магазина. Зачастую люди приходят в студию за "клоном" ситилинка, например.
                  Эти же крупные сайты отличает то, что у них не собственная служба доставки, а используется ряд сторонних служб, то что не прямые контракты с разными службами оплат, а яндекс.касса, с их меньшим процентом.
                  К слову даже у не большой компании может быть огромный каталог больший, нежели эльдорадо или силитинк.
                  И почему вы считаете эквайринг конкретного банка чем-то очень сложным и крутым? Да битрикс не можем из коробки поддерживать эквайринги всех банков.
                  Открываем ситилинк: и что мы видим? А видим, что оплату картами они принимают через яндекс.деньги! Кроме того, оплата яндекс.деньгами, вебмани и через терминалы.
                  Меня, честно, как потребителя бесят сайты, которые мне позволяют оплатить только картой и только. У моей мамы нет ни одной банковской карты, но она активно пользуется интернетом. Значит они ее как покупателя потеряли.
                  1. Почему фасетный поиск не может быть в не дорогом магазине? В битриксе он есть в коробке.
                    Про макеты: я попросил оченить только код. На нормальном сайте должны прорисованы быть все более менее отличающиеся страницы. Верстальщик может их все поместить в один psd. А когда сайт программируется по макету главной и текстовой… Мягко скажем получается что-то, что лежит в голове программиста, а не то, что хотел заказчик. А заказчик требовательный или нет: это не зависит от уплаченной суммы денег напрямую.

                  Так что мои 6 пунктов не противоречат приведенным примерам сайтов. Я же не говорю сделать сайт для ситилинка, а говорю что сайт подобный ситилинку, но для "более простых людей", с меньшим объемом посетителей, меньшим количеством заказов, обменом в реальном режиме времени с 1C (чтобы поступивший на сайт заказ тут же улетал в 1С), а так же выгружались их 10 тыс позиций, по которому да: они хотят фасетный индекс. И про кладр не забудьте и богатую систему скидок. Это все внутрянка, которую мы не можем увидеть на таких крупных сайтах, типа эльдорадо, днс и т. п.
                  • 0
                    Про объемы заказов и товаров я не говорю. И совсем не про обывателя, который на сайте сидит.
                    Я говорю о том, что сайт, реализующий указанные 6 пунктов будет стоить тысяч 100-200, а сайт, вроде днс — на порядок больше. И не потому, что компания крутая, а потому что объективно задач для программиста больше, и я перечислил, каких.
                    Собственно, типовой магазин с типовой робокассой — это одни сроки и стоимость, а экваринг — другие. Это элементарно же даже в рамках типовой разработки на битриксе или покупки коробки — есть модуль или нет модуля.
                    По поводу оплаты только картами — посчитайте процент робокассы + комиссию вебмани или не дай Боже, SMS оплата, и покупка телевизора внезапно станет обременительной как для покупателя так и продавца. Большая маржа, заложенная в товаре, вполне может быть в культиваторах всяких и таких "крупных" товарах, но никто культиватор через вебмани не купит.
                    Это же элементарная разница между коробочным магазином с карточками товаров и корзиной, которую клепают из коробок для мелких бизнесов, и крупный магазин. Опять таки я про 1С спросил.
                    В общем, мой вопрос в силе. Если же по прежнему считаете, что крупным магазинам можно "толкнуть" ваши 6 пунктов, то мы просто по разному видим разработку и ценообразование. "клон" ситилинка, у которого также есть корзина и тоже из 1С товары берутся — это совсем не ситилинк. Просто потому что объективно задач больше, страниц больше, задачи сложнее.
                    Потому они на битриксах и не делаются, или делаются, но не на стандартных компонентах, где от битрикса ничего не осталось, только утешение заказчика в том, что у него якобы "продукт".
                    Вот пример: http://leroymerlin.ru/catalogue/stolyarnye_izdeliya/dveri/dveri_megkomnatnye/ посмотрите как фильтр работает, как URL меняется в зависимости от фильтрации и какие запросы идут в битрикс. Ой, а ведь их нет. Это не стандартный компонент (т.н. "умный фильтр"), который влёгкую устроит любой малый бизнес. А хотя визуально очень похоже.
                    • 0
                      пофильтровал, не увидел изменений url при использовании фильтра. увидел кучу ремареного кода и подключенный для фильтра ангулар
                      • 0
                        Вот именно. А типовой фильтр либо урл меняет, либо AJAX запросы делает. Вывод — это не типовое решение, и все нахваленные доводы вроде "а сколько времени вы будете делать фильтр, а в битриксе он готовый из коробки" внезапно идут лесом, так как стандартные битрикс компоненты (на сложных/крупных/нагруженных проектах) тупо выкидываются.
                        • 0
                          Вы это узнали у разработчиков данного проекта или просто додумали?
                          Причины у всех использовать что-то и как-то совершенно разные.
                          Вроде бы глянешь на хабр, море людей с техническим образованием, т.е. вам должны были преподать основной урок в институте или универе — нет голословности. Только факты, причем с доказательствами.
                          А почитаешь в любой из тем комментарии — порою как "бабы" на базаре семечками торгуют, лишь бы потрындеть
                          • 0
                            То, что аяксом данные не шлются — определяется на раз-два. Фильтрация фактически делается на клиенте. Спорить будете?
                            То, что стандартный компонент битрикса меняет URL или делает AJAX запрос — ясно любому, кто с ним работал. Спорить будете?
                            Всё, вот и вывод.
                            Если будете утверждать, что это всё таки может быть "изкоробочное решение", либо нужны доказательства, чтобы понять это, то я сделаю соответствующие выводы.
                            Да, конечно были причины не использовать стандартный компонент. Я их не знаю, но предполагаю, что те же самые что и у людей в комментариях пониже — производительность, например, или юзабилити улучшить. Да и не важно это по большому счету. Я ведь не об этом, а о "коробках".
                            • 0
                              Вы не можете утверждать, что за основу не был взят типовой компонент и на него не накрутили то, что мы видим.
                              Так же: фильтрацию делает не сам компонент, а API. API предоставляет модуль интернет магазина. Поэтому вы можете легко написать свой компонент, который будет фильтровать как вам нужно, используя уже существующее API.
                    • 0
                      Про платежные шлюзы: пустой разговор. Есть ситилинк, и там есть все эти оплаты. Никаких смс там нет. До 15 тыс вы может оплатить веб манями с комиссией 2,5 процента или яндекс деньгами без комиссии. О чем разговор и фантазии? Зачем вы меня убеждаете, что крупные магазины должны принимать только карты?
                      Прикрутить экваринг: это отдельная, легко отчуждаемая задача в рамках битрикса. Просто создаете еще одну платежную систему, скопировав исходники похожей и начинаете разбираться с API экваринга. От его замудренности и сложности и будет стоимость.
                      И вы полезли совсем в какие-то непонятные дебри и обсуждения. Я задал достаточно конкретный вопрос.
                      Постановка задачи "клон ситилинка" вообще не корректна, так как и я, ни вы понятия не имеем что там внутри, какие бизнес процессы возложены на сайт и т. п. Очень часто с виду простой сайт в себе тааааакое под капотом несет. Вы видите цены на сайте, а они, например, из миллиона разных параметров каждые три часа пересчитываются.
                      Поэтому вы и не можете оценить "клон ситилинка".
                      Именно для этого я указал, что подобные сайты, чтобы было понятно что у них "на лице" и добавил 6 пунктов, для понимания что под капотом.
                      Почему ситилинк с заведомо простым внутренним содержанием (базовая интеграция с 1С, а не то, что у них используется, с учетом огромного количества точек и городов) это более сложно?
                      Не вижу смысла как-то вам пытаться более лучше описать задачу: я вам об одном, вы о чем-то своем.
                      То, что я описал, тиражка битрикса за 35 тыс рублей уже имеет почти из коробки. Эквайринг банка, если известно API и более менее все понятно я вам за 10-20 тыс прикручу (и то такая цена, потому что из опыта, при интеграции с внешними системами почти никогда не бывает все гладко и просто)
                      И при чем тут лерой? Во первых есть понятия, типовой, написанный с нуля. Это у вас. А еще есть третье: кастомизированный. Так вот, типовой фильтр можно допилить. Я вам за пару часов прикручу к штатному фильтру ЧПУ (жалко, что уже это есть в тиражке) или собственный "аякс", а не типовой.
                      А рассуждать о том, чего вы не знаете (откуда вы знаете, как реализовано на лерое?)
          • 0
            Посмотрите отечественную HostCMS.
            В 6 версию завезли ORM (ActiveRecord), QueryBuilder, MVC.
            • –1
              Посмотрел ради интереса, я всегда нелюбил кучу if методы в over 400 строк. И хардкод на подобие этого.
                      // Timezone
                      $aTimezone = array('Africa/Abidjan', 'Africa/Accra', 'Africa/Addis_Ababa', 'Africa/Algiers', 'Africa/Asmara', 'Africa/Asmera', 'Africa/Bamako', 'Africa/Bangui', 'Africa/Banjul', 'Africa/Bissau', 'Africa/Blantyre', 'Africa/Brazzaville', 'Africa/Bujumbura', 'Africa/Cairo', 'Africa/Casablanca', 'Africa/Ceuta', 'Africa/Conakry', 'Africa/Dakar', 'Africa/Dar_es_Salaam', 'Africa/Djibouti', 'Africa/Douala', 'Africa/El_Aaiun', 'Africa/Freetown', 'Africa/Gaborone', 'Africa/Harare', 'Africa/Johannesburg', 'Africa/Kampala', 'Africa/Khartoum', 'Africa/Kigali', 'Africa/Kinshasa', 'Africa/Lagos', 'Africa/Libreville', 'Africa/Lome', 'Africa/Luanda', 'Africa/Lubumbashi', 'Africa/Lusaka', 'Africa/Malabo', 'Africa/Maputo', 'Africa/Maseru', 'Africa/Mbabane', 'Africa/Mogadishu', 'Africa/Monrovia', 'Africa/Nairobi', 'Africa/Ndjamena', 'Africa/Niamey', 'Africa/Nouakchott', 'Africa/Ouagadougou', 'Africa/Porto-Novo', 'Africa/Sao_Tome', 'Africa/Timbuktu', 'Africa/Tripoli', 'Africa/Tunis', 'Africa/Windhoek', 'America/Adak', 'America/Anchorage', 'America/Anguilla', 'America/Antigua', 'America/Araguaina', 'America/Argentina/Buenos_Aires', 'America/Argentina/Catamarca', 'America/Argentina/ComodRivadavia', 'America/Argentina/Cordoba', 'America/Argentina/Jujuy', 'America/Argentina/La_Rioja', 'America/Argentina/Mendoza', 'America/Argentina/Rio_Gallegos', 'America/Argentina/Salta', 'America/Argentina/San_Juan', 'America/Argentina/San_Luis', 'America/Argentina/Tucuman', 'America/Argentina/Ushuaia', 'America/Aruba', 'America/Asuncion', 'America/Atikokan', 'America/Atka', 'America/Bahia', 'America/Barbados', 'America/Belem', 'America/Belize', 'America/Blanc-Sablon', 'America/Boa_Vista', 'America/Bogota', 'America/Boise', 'America/Buenos_Aires', 'America/Cambridge_Bay', 'America/Campo_Grande', 'America/Cancun', 'America/Caracas', 'America/Catamarca', 'America/Cayenne', 'America/Cayman', 'America/Chicago', 'America/Chihuahua', 'America/Coral_Harbour', 'America/Cordoba', 'America/Costa_Rica', 'America/Cuiaba', 'America/Curacao', 'America/Danmarkshavn', 'America/Dawson', 'America/Dawson_Creek', 'America/Denver', 'America/Detroit', 'America/Dominica', 'America/Edmonton', 'America/Eirunepe', 'America/El_Salvador', 'America/Ensenada', 'America/Fort_Wayne', 'America/Fortaleza', 'America/Glace_Bay', 'America/Godthab', 'America/Goose_Bay', 'America/Grand_Turk', 'America/Grenada', 'America/Guadeloupe', 'America/Guatemala', 'America/Guayaquil', 'America/Guyana', 'America/Halifax', 'America/Havana', 'America/Hermosillo', 'America/Indiana/Indianapolis', 'America/Indiana/Knox', 'America/Indiana/Marengo', 'America/Indiana/Petersburg', 'America/Indiana/Tell_City', 'America/Indiana/Vevay', 'America/Indiana/Vincennes', 'America/Indiana/Winamac', 'America/Indianapolis', 'America/Inuvik', 'America/Iqaluit', 'America/Jamaica', 'America/Jujuy', 'America/Juneau', 'America/Kentucky/Louisville', 'America/Kentucky/Monticello', 'America/Knox_IN', 'America/La_Paz', 'America/Lima', 'America/Los_Angeles', 'America/Louisville', 'America/Maceio', 'America/Managua', 'America/Manaus', 'America/Marigot', 'America/Martinique', 'America/Matamoros', 'America/Mazatlan', 'America/Mendoza', 'America/Menominee', 'America/Merida', 'America/Mexico_City', 'America/Miquelon', 'America/Moncton', 'America/Monterrey', 'America/Montevideo', 'America/Montreal', 'America/Montserrat', 'America/Nassau', 'America/New_York', 'America/Nipigon', 'America/Nome', 'America/Noronha', 'America/North_Dakota/Center', 'America/North_Dakota/New_Salem', 'America/Ojinaga', 'America/Panama', 'America/Pangnirtung', 'America/Paramaribo', 'America/Phoenix', 'America/Port-au-Prince', 'America/Port_of_Spain', 'America/Porto_Acre', 'America/Porto_Velho', 'America/Puerto_Rico', 'America/Rainy_River', 'America/Rankin_Inlet', 'America/Recife', 'America/Regina', 'America/Resolute', 'America/Rio_Branco', 'America/Rosario', 'America/Santa_Isabel', 'America/Santarem', 'America/Santiago', 'America/Santo_Domingo', 'America/Sao_Paulo', 'America/Scoresbysund', 'America/Shiprock', 'America/St_Barthelemy', 'America/St_Johns', 'America/St_Kitts', 'America/St_Lucia', 'America/St_Thomas', 'America/St_Vincent', 'America/Swift_Current', 'America/Tegucigalpa', 'America/Thule', 'America/Thunder_Bay', 'America/Tijuana', 'America/Toronto', 'America/Tortola', 'America/Vancouver', 'America/Virgin', 'America/Whitehorse', 'America/Winnipeg', 'America/Yakutat', 'America/Yellowknife', 'Antarctica/Casey', 'Antarctica/Davis', 'Antarctica/DumontDUrville', 'Antarctica/Macquarie', 'Antarctica/Mawson', 'Antarctica/McMurdo', 'Antarctica/Palmer', 'Antarctica/Rothera', 'Antarctica/South_Pole', 'Antarctica/Syowa', 'Antarctica/Vostok', 'Arctic/Longyearbyen', 'Asia/Aden', 'Asia/Almaty', 'Asia/Amman', 'Asia/Anadyr', 'Asia/Aqtau', 'Asia/Aqtobe', 'Asia/Ashgabat', 'Asia/Ashkhabad', 'Asia/Baghdad', 'Asia/Bahrain', 'Asia/Baku', 'Asia/Bangkok', 'Asia/Beirut', 'Asia/Bishkek', 'Asia/Brunei', 'Asia/Calcutta', 'Asia/Choibalsan', 'Asia/Chongqing', 'Asia/Chungking', 'Asia/Colombo', 'Asia/Dacca', 'Asia/Damascus', 'Asia/Dhaka', 'Asia/Dili', 'Asia/Dubai', 'Asia/Dushanbe', 'Asia/Gaza', 'Asia/Harbin', 'Asia/Ho_Chi_Minh', 'Asia/Hong_Kong', 'Asia/Hovd', 'Asia/Irkutsk', 'Asia/Istanbul', 'Asia/Jakarta', 'Asia/Jayapura', 'Asia/Jerusalem', 'Asia/Kabul', 'Asia/Kamchatka', 'Asia/Karachi', 'Asia/Kashgar', 'Asia/Kathmandu', 'Asia/Katmandu', 'Asia/Kolkata', 'Asia/Krasnoyarsk', 'Asia/Kuala_Lumpur', 'Asia/Kuching', 'Asia/Kuwait', 'Asia/Macao', 'Asia/Macau', 'Asia/Magadan', 'Asia/Makassar', 'Asia/Manila', 'Asia/Muscat', 'Asia/Nicosia', 'Asia/Novokuznetsk', 'Asia/Novosibirsk', 'Asia/Omsk', 'Asia/Oral', 'Asia/Phnom_Penh', 'Asia/Pontianak', 'Asia/Pyongyang', 'Asia/Qatar', 'Asia/Qyzylorda', 'Asia/Rangoon', 'Asia/Riyadh', 'Asia/Saigon', 'Asia/Sakhalin', 'Asia/Samarkand', 'Asia/Seoul', 'Asia/Shanghai', 'Asia/Singapore', 'Asia/Taipei', 'Asia/Tashkent', 'Asia/Tbilisi', 'Asia/Tehran', 'Asia/Tel_Aviv', 'Asia/Thimbu', 'Asia/Thimphu', 'Asia/Tokyo', 'Asia/Ujung_Pandang', 'Asia/Ulaanbaatar', 'Asia/Ulan_Bator', 'Asia/Urumqi', 'Asia/Vientiane', 'Asia/Vladivostok', 'Asia/Yakutsk', 'Asia/Yekaterinburg', 'Asia/Yerevan',     'Atlantic/Azores', 'Atlantic/Bermuda', 'Atlantic/Canary', 'Atlantic/Cape_Verde', 'Atlantic/Faeroe', 'Atlantic/Faroe', 'Atlantic/Jan_Mayen', 'Atlantic/Madeira', 'Atlantic/Reykjavik', 'Atlantic/South_Georgia', 'Atlantic/St_Helena', 'Atlantic/Stanley',      'Australia/ACT', 'Australia/Adelaide', 'Australia/Brisbane', 'Australia/Broken_Hill', 'Australia/Canberra', 'Australia/Currie', 'Australia/Darwin', 'Australia/Eucla', 'Australia/Hobart', 'Australia/LHI', 'Australia/Lindeman', 'Australia/Lord_Howe', 'Australia/Melbourne', 'Australia/North', 'Australia/NSW', 'Australia/Perth', 'Australia/Queensland', 'Australia/South', 'Australia/Sydney', 'Australia/Tasmania', 'Australia/Victoria', 'Australia/West', 'Australia/Yancowinna',     'Europe/Amsterdam', 'Europe/Andorra', 'Europe/Athens', 'Europe/Belfast', 'Europe/Belgrade', 'Europe/Berlin', 'Europe/Bratislava', 'Europe/Brussels', 'Europe/Bucharest', 'Europe/Budapest', 'Europe/Chisinau', 'Europe/Copenhagen', 'Europe/Dublin', 'Europe/Gibraltar', 'Europe/Guernsey', 'Europe/Helsinki', 'Europe/Isle_of_Man', 'Europe/Istanbul', 'Europe/Jersey', 'Europe/Kaliningrad', 'Europe/Kiev', 'Europe/Lisbon', 'Europe/Ljubljana', 'Europe/London', 'Europe/Luxembourg', 'Europe/Madrid', 'Europe/Malta', 'Europe/Mariehamn', 'Europe/Minsk', 'Europe/Monaco', 'Europe/Moscow', 'Europe/Nicosia', 'Europe/Oslo', 'Europe/Paris', 'Europe/Podgorica', 'Europe/Prague', 'Europe/Riga', 'Europe/Rome', 'Europe/Samara', 'Europe/San_Marino', 'Europe/Sarajevo', 'Europe/Simferopol', 'Europe/Skopje', 'Europe/Sofia', 'Europe/Stockholm', 'Europe/Tallinn', 'Europe/Tirane', 'Europe/Tiraspol', 'Europe/Uzhgorod', 'Europe/Vaduz', 'Europe/Vatican', 'Europe/Vienna', 'Europe/Vilnius', 'Europe/Volgograd', 'Europe/Warsaw', 'Europe/Zagreb', 'Europe/Zaporozhye', 'Europe/Zurich', 'Indian/Antananarivo', 'Indian/Chagos', 'Indian/Christmas', 'Indian/Cocos', 'Indian/Comoro', 'Indian/Kerguelen', 'Indian/Mahe', 'Indian/Maldives', 'Indian/Mauritius', 'Indian/Mayotte', 'Indian/Reunion', 'Pacific/Apia', 'Pacific/Auckland', 'Pacific/Chatham', 'Pacific/Easter', 'Pacific/Efate', 'Pacific/Enderbury', 'Pacific/Fakaofo', 'Pacific/Fiji', 'Pacific/Funafuti', 'Pacific/Galapagos', 'Pacific/Gambier', 'Pacific/Guadalcanal', 'Pacific/Guam', 'Pacific/Honolulu', 'Pacific/Johnston', 'Pacific/Kiritimati', 'Pacific/Kosrae', 'Pacific/Kwajalein', 'Pacific/Majuro', 'Pacific/Marquesas', 'Pacific/Midway', 'Pacific/Nauru', 'Pacific/Niue', 'Pacific/Norfolk', 'Pacific/Noumea', 'Pacific/Pago_Pago', 'Pacific/Palau', 'Pacific/Pitcairn', 'Pacific/Ponape', 'Pacific/Port_Moresby', 'Pacific/Rarotonga', 'Pacific/Saipan', 'Pacific/Samoa', 'Pacific/Tahiti', 'Pacific/Tarawa', 'Pacific/Tongatapu', 'Pacific/Truk', 'Pacific/Wake', 'Pacific/Wallis', 'Pacific/Yap',      'Brazil/Acre', 'Brazil/DeNoronha', 'Brazil/East', 'Brazil/West', 'Canada/Atlantic', 'Canada/Central', 'Canada/East-Saskatchewan', 'Canada/Eastern', 'Canada/Mountain', 'Canada/Newfoundland', 'Canada/Pacific', 'Canada/Saskatchewan', 'Canada/Yukon', 'CET', 'Chile/Continental', 'Chile/EasterIsland', 'CST6CDT', 'Cuba', 'EET', 'Egypt', 'Eire', 'EST', 'EST5EDT', 'Etc/GMT', 'Etc/GMT+0', 'Etc/GMT+1', 'Etc/GMT+2', 'Etc/GMT+3', 'Etc/GMT+4', 'Etc/GMT+5', 'Etc/GMT+6', 'Etc/GMT+7', 'Etc/GMT+8', 'Etc/GMT+9', 'Etc/GMT+10', 'Etc/GMT+11', 'Etc/GMT+12', 'Etc/GMT-0', 'Etc/GMT-1', 'Etc/GMT-2', 'Etc/GMT-3', 'Etc/GMT-4', 'Etc/GMT-5', 'Etc/GMT-6', 'Etc/GMT-7', 'Etc/GMT-8', 'Etc/GMT-9', 'Etc/GMT-10', 'Etc/GMT-11', 'Etc/GMT-12', 'Etc/GMT-13', 'Etc/GMT-14', 'Etc/GMT0', 'Etc/Greenwich', 'Etc/UCT', 'Etc/Universal', 'Etc/UTC', 'Etc/Zulu', 'Factory', 'GB', 'GB-Eire', 'GMT', 'GMT+0', 'GMT-0', 'GMT0', 'Greenwich', 'Hongkong', 'HST', 'Iceland', 'Iran', 'Israel', 'Jamaica', 'Japan', 'Kwajalein', 'Libya', 'MET', 'Mexico/BajaNorte', 'Mexico/BajaSur', 'Mexico/General', 'MST', 'MST7MDT', 'Navajo', 'NZ', 'NZ-CHAT', 'Poland', 'Portugal', 'PRC', 'PST8PDT', 'ROC', 'ROK', 'Singapore', 'Turkey', 'UCT', 'Universal', 'US/Alaska', 'US/Aleutian', 'US/Arizona', 'US/Central', 'US/East-Indiana', 'US/Eastern', 'US/Hawaii', 'US/Indiana-Starke', 'US/Michigan', 'US/Mountain', 'US/Pacific', 'US/Pacific-New', 'US/Samoa', 'UTC', 'W-SU', 'WET');

              И вообще непонятно зачем есть же метод DateTimeZone::listIdentifiers();.
        • НЛО прилетело и опубликовало эту надпись здесь
          • 0
            да ну :o_O
            • +2
              Это стоимость часа, озвучиваемая студией. Программист получит процент с этих денег. Или вообще зарплату.
              • НЛО прилетело и опубликовало эту надпись здесь
                • +1
                  Заказчику, конечно, без разницы.

                  Однако, я встречал на елансе рейт за работу с мадженто в районе 150-180 баксов за час. Это в районе десятки на нынешние деньги.

                  P.S. Минус влепил не я. У меня кармы нет.
                  • НЛО прилетело и опубликовало эту надпись здесь
                    • 0
                      Да, возможно, что единичный. Но средний рейт где-то около ста баксов. Если по старому курсу это было сопоставимо с битриксом, то по новому — в два раза дороже. Для российских владельцев магазинов на мадженто.

          • 0
            Это где столько Битрикс-программисты берут? 2200 уже считается дорого.
      • +1
        Когда-нибудь обязательно созреет… не для дзена, а для банальной эффективности. Пока рынок развивается экстенсивно, пока риски от говнокода и "затраты" на толпы студентов несопоставимы с прибылью (получаемой отнюдь не благодаря Битриксу), конечно ничего не изменится. Но как только накопится критическая масса клиентов, для которых CMS станет mission critical компонентой, а не развлекаловом, как сейчас — вот тогда хотелось бы запастись попкорном и понаблюдать за "руководством, которому нравится Битрикс"… будет, хотя и не долго, но ОЧЕНЬ смешно :)
        • +1
          Инертность такой машины очень высока. Я думаю это возможно только лишь коммерчески выгодной для студий альтернативе, когда будут падать продажи самого битрикса, но сколько ждать ее? вроде многие понимают ошибки. И есть альтернативные cms но все так же печально...
          Когда нибудь и солнце выпарит океан, а эти строки сотрутся в космическую пыль с цифровых носителей… ночь, тишина, космос, хоспади какой нахрен битрикс...
        • 0
          Ситуация на рынке давно меняется. Простенькие магазины все чаще открывают на SaaS-конструкторах, коих уже переваливает за 40 штук.
          Это позволяет экономить на старте. Чаще всего возможностей таких платформ хватает для ведения среднего по размерам бизнеса.
    • НЛО прилетело и опубликовало эту надпись здесь
      • 0
        Благодарю за доверие, но это уже давно не моя война. Лет, эдак, двадцать тому, был грех — сделал. Именно такой, как Вы описываете, только там еще в комплекте "ключ от квартиры где деньги лежат" и поэтессы на заднем сидении шли, и стоило это, как Запорожец, и ездило, как Мерседес. Только вот рынка для такой затратной разработки как тогда не было, так и по сей день не сформировалось. Так что, спор, собственно, ни о чем — я так и написал: никому не нужна… на этом рынке!
        К счастью, в мире полно других рынков, на которых "моя высокотехнологичность" продуктов не просто нужна, но является основой конкуренции и выживания. Не только в переносном, но и в прямом смысле слова — физического выживания потребителя, за что этот потребитель готов адекватно платить, а не только ныть, мол, "сделайте за пять копеек, шоб работало как за тыщу, а вот тогда мы посмотрим". Вот когда реально понадобится, тогда и появятся соответствующие продукты… а до тех пор продолжаем следить за сериалом Битрикс-Камасутры :)
  • +5
    Попробуйте другие "интерпрайзные" CMS, они вообще не кастомизируются, это как собранная и законченная машина, на ней можно делать только то, что задумал производитель. Отсутствие кастомизации в CMS это еще больший ад чем непродуманная архитектура, в битриксе все можно хакнуть и перехакнуть.
    Все это связано с тем, что CMS пишут не для программистов, а для пользователей, да и еще обычно на коленке. Для программистов пишут фреймворки.
    • +1
      В magento сделал observer на event и кастомизируй всё что хочешь от админки до фронта, просто легче взять и захардкодить чем в архитектуре разобраться и сделать так как это требует архитектура последнего.
      • 0
        Система событий в битриксе присутствует, может не так все элегантно, но можно кастомизировать через события очень многое.
        • +4
          Существует, беру я событие onBeforebasketAdd — нужно в админку выводить артикул товара, когда менеджер видит заказ — не работает.
          Почему? Ответ: в стандартный компонент корзины не использует вызов, который кастомизируется этим событием. А нафига оно тогда?))
          Я понимаю что это частный случай но… но… нельзя вывести манагеру просто так артикул товара в админку.)
          • 0
            кто мешает добавить любые свойства товара при добавлении в корзину? все решается за 5 минут и отображается в админке. зачем использовать в данном случае события?
            • 0
              Битриксовое свойство 'артикул' отсутствует в списке свойств добавляемых в корзину. Его просто нет. Это прям как глагол исключение. Всем можно — ему нельзя.
              • 0
                в инфоблоке можно завести любые свойства в нем можно хранить что угодно в том числе и артикул и настроить в компоненте чтобы ложить их в корзину.
                и даже без программирования.
                • 0
                  Кто спорит то. Инфоблок только эти свойства получает из 1С. И свойство CML article отсутствует в списке добавляемых в корзину.
                  • 0
                    вам только что написали, что любые свойства элемента инфоблока можно добавлять в корзину. при том, что даже я как проектный менеджер, а не программист смог в этом разобраться за 10 минут и добавил в заказы, штрихкоды, внешние коды и артикул товара
                    • 0
                      CML2_ARTICLE — такое свойство есть у вас в списке характеристик добавляемых в корзину? Это стандартное свойство выгружаемое из 1С.
                      • 0
                        да, конечно есть. и да, оно уходит при экспорте заказов и отображается в заказах.
                        • 0
                          Реально?)
                          Вот тут?
                          image

                          А мне поддержка так ответила:
                          28.10.2015 12:26:08
                          Добрый день.

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

                          А у меня его нет в списке. :-(
                          • 0
                            какой список-то? вы же пишите, что вы программист. кто вам мешает добавить свойство при вызове компонента
                            Скрытый текст
                            <?$APPLICATION->IncludeComponent(
                            «bitrix:catalog.element»,
                            «ajax»,
                            array(
                            «IBLOCK_ID» => «46»,
                            «ELEMENT_ID» => $_REQUEST[«ELEMENT_ID»],
                            «ELEMENT_CODE» => "",
                            «SECTION_ID» => $_REQUEST[«SECTION_ID»],
                            «SECTION_CODE» => "",
                            «HIDE_NOT_AVAILABLE» => «Y»,
                            «PROPERTY_CODE» => array(
                            0 => «TORGOVAYA_MARKA»,
                            1 => «rating»,
                            2 => «vote_count»,
                            3 => «vote_sum»,
                            4 => «CML2_ARTICLE»,
                            5 => «CML2_BAR_CODE»,
                            6 => «STATUS»,
                            7 => «STRANA»,
                            8 => «TSENA»,
                            9 => «KOLICHESTVO»,
                            10 => «SKIDKA»,
                            11 => «NAZNACHENIE»,
                            12 => "",
                            ),

                            «OFFERS_CART_PROPERTIES» => array(
                            0 => «CML2_ARTICLE»,
                            1 => «CML2_BARO_CODE»,
                            ),

                            «ADD_PROPERTIES_TO_BASKET» => «Y»,
                            «PARTIAL_PRODUCT_PROPERTIES» => «N»
                            ),
                            false
                            );?>

                            • 0
                              Мы наверное с вами о другом, свойство CML2_ARTICLE существует и выводится во фронтенд прекрасно. Вопрос в том что его нельзя положить в корзину и после заказа увидеть в админке в заказах, не прибегая к коду. Вешаем событие на добавление товара в корзину, запрашиваем артикул по ID товара, кладем артикул в доп свойства заказа/товара. Нельзя через интерфейс это натыкать.
                              • 0
                                что ж вы такой недоверчивый-то
                                https://yadi.sk/i/1j9mT8NmqYNF3
                                • 0
                                  так есть почему.)
                                  Заголовок спойлера
                                  Александр Борисович | 28.10.2015 15:38:54

                                  Значит если я хочу чтобы в админке заказов менеджер видел еще и артикул товара, то логика вешать на событие добавления в корзину добавление артикула к товару нормальная?
                                  Сотрудник поддержки: Юрий Свиридов | 29.10.2015 10:45:42

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

                                  Можете использовать это событие OnBasketAdd.
                                  С уважением,
                                  старший специалист техподдержки
                                  Свиридов Юрий.
                                  • 0
                                    Вы можете верить во все, что угодно, но у нас нет ни одного обработчика по OnBasketAdd. Проект работает с августа 2013 со всеми обновлениями.
                                    • 0
                                      Верю, у меня тоже обновления. Буду смотреть. дело еще в том что у меня два магазина с обновлениями. На одном код работал, на другом нет. Оказалось, версии модуля интернет магазина разные.
                                      Вот так. Обновления обновлениями, а баги параллельные.
                      • 0
                        насколько я сталкивался с интеграцией 1С
                        коды могут быть вообще любыми и не обязательно CML2_ARTICLE (и в этом его основная беда конечно) и получаются из 1С при первичном импорте из 1С
                        но то какие своства ложить в корзину вместе с товаром настраивается где то в компоненте каталога или в корзине

                        • 0
                          CML2_ARTICLE жестко прописанное и не удаляемое свойство. Это типа константы при импорте из 1С. Всегда есть и конечно же есть любые другие пользовательские свойства, только артикул там не хранится, не дублировать же, так как он лежит в своем свойстве CML2_ARTICLE.
    • 0
      Примеры таких "интерпрайзных" CMS будьте добры.
      • 0
        DotCMS проверено на личном горьком опыте http://dotcms.com/. Выглядит все красиво, но битрикс кажется ангелом после этого. Хотя казалось бы, оно написано на Java, а не на PHP, но дело далеко не в языке.
    • +1
      А в моем волшебном мире нормальный Enterprise давно на Sуmfony и Zend :)
      А архитектура построена по принципам DDD.
      • 0
        DDD — дай дорогу дураку?)
    • НЛО прилетело и опубликовало эту надпись здесь
      • 0
        У фреймворков много недостатков. Я бы искал нормальную CMS или самопись.
        Список недостатков:
        Нету админки — это самая большая.

        И остальное тоже в стиле джуниора с парой лет опыта.
        Конечно, если всю жизнь писать лапшу html+пхп то смысла от абстракций никогда не найти. Но всё приходит со временем.
        • НЛО прилетело и опубликовало эту надпись здесь
  • 0
    Могу только этим возразить
    https://www.youtube.com/watch?v=PQKhDyG5las&feature=youtu.be&t=62
  • –7
    Слушайте, ну если вы не умеете готовить Битрикс — мы все вам сочувствуем, но не более того :) Справедливости ради, я год работаю с большим сайтом на Битриксе, проблем у этой CMS хватает, но, как показывает опыт, значительно больше проблем у тех, кто в среднем под неё разрабатывает. Это, в свою очередь, вызвано неприличной простотой получения всяких медалек типа "Администратор Битрикс", "Программист Битрикс" и т.п. на их сайте: достаточно ответить на два десятка вопросов, и вот новый "сертификат" в резюме.

    Ещё справедливости ради, я эту вашу функцию первый раз вижу, и сходу даже в ядре найти не смог :) У нас обычно код выглядит так:


    <?php $APPLICATION->IncludeComponent("medaboutme:meteodoctor", "fullsize", [
        "CITY" => isset($city_id) ? $city_id : NRegion::GetUserCityID(),
        "SHOW_RECOMMENDATION" => 'Y',
    ], false); ?>

    А уже в самом компоненте аккуратно разложено по полочкам обращение к внешним интерфейсам, обращение к инфоблокам, кэширование, шаблоны — каждый со своими стилями, скриптами, картинками, которые Битрикс собирает вместе и выстреливает пользователю. 300-400ms на генерацию средней страницы при прогретом кэше — неплохой, я считаю, результат для CMS, которой 15 лет как минимум. Да, конечно после Laravel писать под Битрикс иногда грустно, но на то мы и профи, чтобы хорошо делать то, что нам не всегда нравится.
    • 0
      Laravel — это там где 6 разных роутеров на выбор дают? Вроде и Laravel а по факту 6 разных сайтов) Свобода — иногда печально)
      • –1
        То есть по остальным вопросам у нас разногласий нет, я так понимаю? :)
        • +1
          Мотивация практически любого человека — снижение уровня страха неопределенности будущего. Поэтому каждый живет в своем слое комфорта. Комфорт задается правильным, как нам кажется, поведением по отношению к реальности. Если наши ожидания от работы оправдываются — %programe_name% хороший, если нет — плохой. Поэтому все кто живут с %programe_name%, его защищают, что логично. Ведь они защищают право их реальности быть таковой так как страх никогда до конца не пропадает.

          Однако, мы путаем это бесконечно с качеством продукта, которое действительно можно оценить по использованию best practice. Так как это продукт эволюции логических систем.
          • НЛО прилетело и опубликовало эту надпись здесь
      • +1
        Один, но двумя способами (как всегда у ларки), т.к. это элемент контейнера. Один способ через статический "фасад" на этот самый объект контейнера, второе — получение через DI и использование как переменную с объектом роутера.

        И то и другое имеет право на существование, но почему-то народ очень сильно привязался именно к "статике", которая и не статика ни разу, а лишь проксик на объект.

        Вы с симфони перепутали — там yml, xml, конфиги, да что угодно можно в качестве роутера использовать.
        • 0
          я скорее роутер попутал с реализациями RBAC. Кто-то мне сообщал прелести работы лаварельщиком при поддержке сайтов с 6-тью разными rbac
          • +2
            В ларке нет RBAC, тупо потому, что это привязка к БД в первую очередь. А сервер-сайд фреймворк не должен зависеть ни коим образом ни от БД, ни от фронтэнда, т.к. это фрейм, а не CMS.

            В ларке "из-коробки" используется ACL (в котором, к слову, очень круто применена идея с DI, меня по крайней мере порадовала), который намного гибче но и более низкоуровнев (т.е.писать нужно больше, нежели в RBAC). Так что опять мимо.
            • 0
              Я бы сказал, что там почти ABAC, нежели ACL.
              • 0
                Ой, да. ABAC конечно же.
    • +3
      300-400ms это долго особено для генерации, и ещё учесть что страница(html,css,js) будет грузиться, это все 1-2 секунды. Да и не в времени разница.
      • +2
        — Зяма, а кто этот Эйнштейн?
        — Сара Марковна, как можно, это же автор теории относительности!
        — А что это за теория?
        — Ну как бы вам объяснить… Вот двадцать волос — это много или мало?
        — Не знаю. А при чём тут теория относительности?
        — Так вот 20 волос на голове — это мало, а 20 волос в супе — это много. Всё относительно, понимаете?
        — И с этой хохмой ваш Эйнштейн таки едет в Одессу?

        Страница, на которой мы беседуем, генерируется 200ms, DOMContentLoaded у неё наступает через 3500ms, Load — через 5.

        У нас эти цифры — 380, 3200 и ~7000. html, css и js минимизированы и gzip-нуты на стороне сервера. Можно лучше, но в целом тоже неплохо, на уровне, скажем так.
        • +2
          Ну скажем так, небудем мериться временем загрузки, т.к. сервера разные, ну а 300 — 400 это очень долго, тут есть куда рости.
        • 0
          На php7 тестировали время?
        • +3
          Вы шутите? Неплохо? Это провал я бы сказал. Даже Битрикс в своих инструментах вам покажет «очень медленно». Вот он типичный Битрикс разработчик. а вообще до 1с в наше время это нормальный результат. дольше пользователь ждать не будет.
    • 0
      $APPLICATION->IncludeComponent — это всего-лишь "loadView", он же инклуд. Сомнительный повод для гордости, что там разложены по полочкам какие-то обращения к внешним интерфейсам :)
      • 0
        Тут сложная история: конкретно этот компонент — адски развесистый, у него штук 9 шаблонов для разных случаев жизни, в половине их есть result_modifier.php, плюс языковые ресурсы, плюс структурное описание для вставки пользователем через админку. Минут пять я думал, как бы это всё показать, не придумал. Но это (компонент) хороший законченный продукт, который в принципе можно с минимальными затратами времени, даже не оформляя как модуль, перенести на другой сайт на Битриксе и он там заведётся. Он документирован, легко поддержива