Технологии кластеризации — повышаем надежность и производительность веб-проекта

    Добрый день, коллеги!

    Сегодня хочу рассказать о технологиях кластеризации, которые появились в 10-й версии платформы 1С-Битрикс. Также разберем, какие важные задачи они позволят решить Вам, как руководителю веб-проекта и как эффективно использовать данные технологии, если Вы — разработчик. В конце статьи рассмотрим конкретные архитектуры работающих веб-кластеров на платформе 1С-Битрикс, в т.ч. ресурса www.1c-bitrix.ru.

    Но прежде — постараемся объективно ответить на вопрос — в каких случаях все же целесообразно для реализации веб-проекта выбирать фреймворк или коробочное решение, а в каких — создавать веб-проект «с нуля».

    Разработка веб-проекта «с нуля»


    Казалось бы, процесс разработки веб-проекта «с нуля» выглядит относительно простым и ведущим к успеху:
    1. Проектируем и оцениваем объем работ
    2. Набираем команду веб-разработчиков, верстальщиков (возможно, дизайнеров)
    3. Программируем, верстаем, тестируем
    4. Наполняем веб-проект контентом
    5. Запускаемся
    6. Поддерживаем и развиваем веб-проект

    Но… на практике:
    1. Вам потребуются квалифицированные системные аналитики и технические эксперты для проектирования и оценки объема работ, которых на рынке мало, а стоят они дорого
    2. Нужно набрать команду квалифицированных веб-разработчиков, которых на рынке мало, а стоят они дорого
    3. Нужно выбрать и настроить эффективный процесс разработки, в т.ч. снабдить команду инструментами типа трекера, среды разработки, системы контроля версий и т.п.
    4. Чтобы быстро наполнить веб-проект контентом нужно… разработать «админку» для всех видов контента, а это дополнительное время и деньги
    5. Потребуется тесное взаимодействие с квалифицированными системными администраторами для настройки серверов и софта, организации резервного копирования и мониторинга, аудита безопасности
    6. Нужно выбрать и внедрить инструменты для «передачи» доработок веб-проекта от команды разработки в «прямой эфир» — для этого используют, например, системы контроля версий и/или инструменты непрерывной интеграции

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

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

    Разработка веб-проекта на базе фреймворка


    Выбирая фреймворк, Вы, в теории, сокращаете риски и сроки разработки. Действительно, ведь я использую что-то типа каркаса/фундамента, на который «нанизываю» нужный мне функционал веб-сайта. Но многие риски, к сожалению, остаются:
    • Теперь вам нужны «особые» эксперты, хорошо знающие фреймворк, для проектирования и оценки трудозатрат. При разработке на базе BitrixFramework можно довольно просто «прокачать» сотрудников — путем их бесплатной сертификации по нашим курсам, после чего они смогут, в принципе, достаточно точно оценить объем, сложность работ и определить, что нужно писать «с нуля», а какие решение можно использовать в готовом виде.
    • Фреймворки обладают разным уровнем вхождения, поэтому для работы c популярными «академичными» фреймворками, типа ZendFramework,Symfony, Yii — Вам потребуются программисты более высокой стоимости и квалификации, чем, например, для работы с BitrixFramework (на базе которого работают продукты и решения 1С-Битрикс), использующим простые архитектурные концепции и паттерны, понятные большинству разработчиков начальной и средней квалификации. Для ускорения ввода разработчиков BitrixFramework в строй, поможет прохождение курса «Быстрый старт разработчика».
    • Технологический процесс разработки веб-проекта на базе фреймворка, как правило, мало чем отличается от разработки «с нуля». Однако, некоторые фреймворки, например BitrixFramework, предоставляют удобные инструменты аудита и мониторинга качества разработки: монитор производительности, SEO-аудит, средства отладки.

    image
    image
    Средства отладки платформы 1С-Битрикс: некачественная разработка на фреймворке — не пройдет :-)
    • Для быстрого и удобного наполнения веб-проекта контентом некоторые фреймворки предлагают средства автоматизированного создания «админок» (полуфабрикат, на базе которого можно, в принципе, ускорить создание некоторых типов административных страниц). В BitrixFramework имеется встроенный функциональный и довольно удобный административный интерфейс, допускающий кастомизацию под нужды проекта. Например, можно сделать свою «админку» по добавлению новостей или обработке заказов.
    • Для нагрузочного тестирования веб-проекта перед запуском фреймворки иногда предоставляют технические инструменты создания нагрузки и аудита. В BitrixFramework имеются эффективные и популярные среди клиентов встроенные подсистемы аудита аппаратно-программной конфигурации и создания нагрузки.

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

    Расширение возможностей — благословение или проклятье?

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

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

    Тем не менее, иногда все же может оказаться, что задачу на фреймворке реализовать сложнее и дольше, чем написать «с нуля», и Вы об этом узнаете уже в процессе разработки :-). В этом случае фреймворки, как правило, предоставляют возможность модульного расширения. В BitrixFramework вам нужно будет создать модуль, реализующий нестандартную логику. Писать модуль обычно дольше, чем создавать обработчик события, но при этом достигается максимальная гибкость. Написать модуль относительно просто, но возможно такой модуль уже написан — поэтому стоит предварительно «порыться» в marketplace.

    Разработка веб-проекта на базе коробочного решения


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

    Дополнительно, коробочное решение, являясь как бы «историей успеха» и «книгой рецептов», помогает Вам, как заказчику проекта, «пощупать» практические примеры реализации бизнес-задач. А разработчикам коробка позволяет изучить «исходники» решения, чтобы продублировать его, либо сделать лучше :-). Частый кейс при использовании коробки: «Сделайте также как тут и тут, чтобы в админке управлялось аналогично как там».

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

    Для каких типов веб-проектов окажутся полезными технологии кластеризации платформы 1С-Битрикс?


    Если Вы уже используете или планируете вести разработку на фреймворке/коробке 1С-Битрик то, скорее всего:
    • Ваш проект имеет сложную бизнес-логику и объемный функционал, который хорошо ложится на возможности платформы 1С-Битрикс
    • Вы хотите снизить риски и увеличить скорость разработки, за счет использования промышленного фреймворка BitrixFramework
    • Вас волнует устойчивость веб-проекта к высоким нагрузкам (миллионы хитов в сутки) и простой веб-сайта в течении часа просто недопустим, т.к. грозит серьезными убытками и ударом по репутации

    Именно для обеспечения высокой доступности и производительности веб-проекта на платформе 1С-Битрикс в 10 версии появилась возможность задействовать в продукте популярные и эффективные технологии кластеризации:

    1) Вертикальный шардинг (вынесение модулей системы на отдельные серверы MySQL). Теперь можно вынести интенсивно используемые модули «Поиск» и «Веб-аналитика» на собственное «железо».
    image
    image

    2) Репликация MySQL и балансирование нагрузки между серверами. Теперь можно распределить нагрузку на СУБД веб-проекта на группу серверов, добавляя их при необходимости. Технические подробности можно почитать тут.
    image
    image

    3) Распределенный кеш данных (memcached). Надежное и масштабируемое кэширование критически важно для высоконагруженных проектов. Технические подробности тут.
    image

    4) Кластеризация сессий между веб-серверами. Эта необходимо при работе группы веб-серверов за балансировщиком. Почему мы храним сессии не в memcached — об этом напишем отдельно :-).
    image

    5) Кластеризация файлов веб-серверов. Это необходимо для автоматической синхронизации контента между машинами. Технические подробности тут.

    Особое внимание хочется обратить на то, что технологии кластеризации используются на уровне ядра платформы 1С-Битрикс и дорабатывать код веб-проекта — не нужно! (каждый раз когда пишу про это, не верю, но… это так и есть на самом деле) Разумеется, при необходимости можно в коде задавать, с каких именно серверов репликации осуществлять чтение/запись — но это необходимо подавляющему меньшинству веб-проектов.

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

    Кластерные архитектуры работающих веб-проектов на базе 1С-Битрикс


    Самый интересный раздел статьи — рассмотрим, наконец, конкретные примеры действующих веб-кластеров на платформе 1С-Битрикс.

    www.kupibonus.ru — бесперебойная доставка услуг

    Внедрение веб-кластера провел наш сертифицированный партнер «Linemedia», г. Москва. Редакция платформы – «Бизнес веб-кластер».

    Веб-проект ежедневно посещают несколько сотен тысяч пользователей, также дополнительную нагрузку генерируют партнёры проекта, имеющие доступ к проекту через API Kupibonus. Активная двухсторонняя интеграция с бэк-офисом «1С: Предприятие», интенсивные каналы взаимодействия с внешними сервисами.
    За счет внедрения веб-кластера обеспечена высокая производительность и отказоустойчивость не только публично части, но и внутренних бизнес-процессов и API. Внедрение прошло в довольно короткие сроки – две недели.
    image

    www.komos.ru — электронная биржа

    Внедрение веб-кластера провел золотой сертифицированный партнер «Профессиональные Интернет-решения», г. Ижевск. Редакция платформы – «Веб-кластер».

    Веб-проект является высоконагруженной площадкой для проведения электронных торгов группой компаний — «КОМОС ГРУПП». В состав группы входит 13 крупнейших предприятий, производящих продукты питания в Удмуртии и Пермском крае. Полученная в результате торгов стоимость предложений составила почти 5 млрд. рублей менее чем за год. За счет внедрения веб-кластера обеспечена высокая производительность и отказоустойчивость, легкая масштабируемость электронной торговой площадки.
    image

    www.1c-bitrix.ru — это мы

    Веб-кластер размещен на группе EBS/EC2 машин в облаке Amazon. Достаточно большой объем статического контента. Высокая нагрузка как на публичную часть, так и на интеграционное API (marketplace), а также систему обновлений. За счет перехода на веб-кластер обеспечена высокая производительность и устойчивость, быстрое масштабирование в случае необходимости.

    Мы хотели использовать встроенный в облако балансировщик, но пока, по причине его «негибкости», используем для этого отдельную машину. Бэкапы делаем в S3 встроенной в облако удобной технологией снепшотов, для резервного копирования raid10 на базе EBS разместили на нем XFS и, для целостного снепшота, «фризим» ее используя утилиту ec2-consistent-snapshot. Статику постепенно выносим в облако и CDN. Большинство рутинных операций: поднять машину в случае нагрузки, переключение нагрузки, бэкапы и т.п. — заскриптовано на API amazon.
    image

    В настоящее время несколько веб-кластеров готовятся к запуску у отечественного облачного провайдера Оверсан-Скалакси. Мы о них обязательно напишем и нарисуем.

    Наши ближайшие технологические планы в области облаков и кластеризации

    На прошедшей недавно партнерской конференции мы анонсировали, что сделаем в ближайшем релизе платформы 10.5, который выйдет осенью, поддержку облачных хранилищ: Amazon/S3, Google Storage, технологий хранения данных в Microsoft Azure.

    Также, в версии 10.5, мы хотим предложить нашим клиентам решение, делающее их веб-кластер максимально надежным и… абстрагированным от облачного провайдера — чтобы в случае серьезных проблем в облаке/ДЦ, веб-кластер продолжил бесперебойно обслуживать клиентов в другом регионе облака/на другом континенте:
    image

    Cluster grid (это пока одно их рабочих названий технологии)

    Мы с интересом смотрим на новейшие облачные технологии кластеризации и видим в них немалый потенциал для обеспечения надежности и производительности веб-проектов. Лучшие технологии мы будем продолжать реализовывать в платформе 1С-Битрикс — делая их полезными и доступными для наших многочисленных клиентов.

    Желаю всем технологической удачи, оптимизма и до новых встреч в нашем корпоративном блоге!

    Ссылки:

    Александр Сербул, руководитель направления контроля качества интеграции и внедрений 1С-Битрикс
    Метки:
    1С-Битрикс 67,02
    Компания
    Поделиться публикацией
    Комментарии 101
    • –1
      — это не круто.
      • –3
        делать готовые решения сложных проблем? действительно
        • +4
          Сам не знаешь почему? Или что тебя останвоило написать развернутый комментарий? Когда я вижу пост в пару десятков абзацев, с графиками и картинками, с ссылками и примерами, доказывающими почему Битрикс — это круто, и тут же первонаха, который всем объявляет что это не круто, я сразу понимаю: автор коммента — мудак.
          • 0
            На личные оскорбления переходить не стоит, а коммент получился неоднозначный из-за отсутствие картинки, которую потом разместил ниже ссылкой. Имелось ввиду что волнистая красная линия на тех же пресловутых графиках — это не круто.
            • –1
              Тогда извени, в этом контексте коммент преобретает совсем другой смысл. Впрочем всеравно такие комменты писать… видно же, что ты и статью то не дочитал прежде чем комментировать, я могу ошибаться, но все это выглядит как популизм.
        • +3
          Картинка не вставилась sanneo.ru/habr/redline.png
          • +11
            Ну наконец-то, добро пожаловать на хабр! Пару лет назад пытался тут писать про битиркс, с тех пор вообще писать не могу)
            • –4
              Так надо было про битрикс писать.
              • +3
                спасибо за дельный совет
                • –3
                  Пожалуйста, а то про биртиркс никто не знает просто.
              • +6
                Видимо такая судьба всех на хабре, кто пишет про битрикс
                • 0
                  +1 :) Вот только в карму не могу, т.к. свою потерял после поста о магазине на битриксе :)
                • +2
                  Удобно, что можно через админку настроить целый кластер, причём на любом ржавом ведре (несколько дешёвых vps, например) но вот пока не до конца понятно, насколько хорошо/плохо то, что такие вещи решаются на таком высоком уровне.
                  Возможно, в амазоновском облаке, например, таких проблем и не будет, и будет оно работать всё равно быстрее и не будет громадного набора настроек.
                  • +2
                    «Громадный набор настроек» мы (Битрикс) планируем минимизировать, выпустив в ближайшее время новые версии виртуальной машины и веб-окружения Битрикс — с поддержкой веб-кластера.

                    Будем включать в пакеты все необходимые инструменты для построения кластера. А также — мастеры для удобного конфигурирования нод кластера и репликации всех настроек между серверами.

                    Мы рассказывали об этих планах на прошедшей партнерской конференции: conf.1c-bitrix.ru/summer2011/agenda/1399/
                    • +2
                      Да, слышал, спасибо. Что можно сказать точно — своей виртуальной машиной вы делаете огромное одолжение нашим хостерам, которые не всегда успевают за «облаками» =)
                      • +2
                        Все-таки — не совсем так. ;)

                        Вирт. машина и веб-окружение — хорошие инструменты, которые помогают быстро (!) получить хорошую производительную веб-среду. Для любых проектов, построенных на PHP+MySQL, не только на Битриксе.

                        И дело вовсе не в «облаках». Веб-окружение — просто rpm, который можно развернуть и на голом VPS, и на собственном сервере, и на виртуалке в «облаке».

                        Хостеры же часто дают VPS'ы с уже предустановленным веб-окружением. Как уже готовый образ.

                        Что ж, это — хорошие инициативы. И мы их всячески приветствуем! :) Мы вообще — только «за» хороший хостинг. :)
                  • +3
                    поэтому для работы c популярными «академичными» фреймворками, типа ZendFramework,Symfony, Yii — Вам потребуются программисты более высокой стоимости и квалификации, чем, например, для работы с BitrixFramework (на базе которого работают продукты и решения 1С-Битрикс), использующим простые архитектурные концепции и паттерны, понятные большинству разработчиков начальной и средней квалификации.

                    Хорошее объяснение, почему вы не используете паттерны и ООП ( habrahabr.ru/blogs/webdev/122442/ )
                    • +3
                      Хорошая статья, спасибо!
                      Желаю удачи с Cluster grid. Также интересует вопрос (возможно слишком наивный), будет ли его компоненты, в частности master-master manager выкладываться в паблик?
                      Просто тоже встала подобная задача, вот и думаю писать самому, или вас подождать :-)
                      • +2
                        Осенью сделаем в релизе 10.5. Настройки MySQL серверов конечно выложим в паблик и напишу статью отдельную на хабре.
                        • 0
                          Вот это хорошо. Буду ждать :-)
                          • 0
                            Александр, отдельно хочу сказать спасибо за интересный доклад на Летней партнерской конференции. Хорошо, что подробно дополняете уже сказанное.
                        • –1
                          Статья хорошая, но вот тока название странное, тут не про кластерные системы, а о битиркс вообще, начиная от того почему надо выбирать коробочное решение, какие есть приимущества у такого варианта, затем кратенько о возможностях и закончили кластерами. В обще думаю надо звать: Битрикс, приятно познакомиться!
                          • +4
                            Ну у Битрикса формат такой, я уже привык. Главное, что в статье не только реклама, но и многое чего полезное есть. На недавнем DevConf'е был доклад на эту тему, а сейчас видно, что товарищи продолжают исследования.
                        • +7
                          Простите что не в тему нано технологий.
                          Писал на форуме 1С Битрикс, но без ответно.
                          Может быть, здесь услышите пожелание пользователя/ей 1С Битрикс.
                          Прошу глобально обновить следующие компоненты:
                          1. Форум – каменный век, как внешне, так и по модерации
                          2. Блоги – каменный век
                          3. Фотогалерея — ох…
                          Предлагая готовую систему из коробки неужели так “дорого”
                          нанять графического и интерфейс дизайнера для пары шаблонов к Вашим компонентам?
                          Еще раз прошу прощения, что не в тему, поверьте, я не один такой.
                          • +9
                            Сколько раз я сталкивался с Битриксом столько раз это был кошмар.

                            Извините.
                            • +1
                              А с чем вы еще сталкивались, если не секрет? ИМХО для разработчика кошмар — это когда нужно дописывать расширения к чужому коду :-) А когда сам сидишь и прокачиваешься это уже не кошмар, а креатив
                              • +1
                                Много с чем, но везде где я сталкивался с Битриксом был жуткий бардак, плохая производительность и чрезмерно дорогие специалисты.

                                Возможно мне не повезло, но такая вероятность крайне мала.
                                • +1
                                  А где не было битрикса, везде был порядок и красота архитектуры?
                                  • 0
                                    По всякому, но там где нет Битрикса как правило совершенно очевидно что проблема не в фреймворке, а либо в людях, либо в финансах.
                                    • 0
                                      Лично мне, эти же причины очевидны и в проектах на Битрикс, выходит сам Битрикс не при чем, это общая тенденция?
                                      • 0
                                        Я могу ошибаться, но таково моё мнение.
                              • –1
                                Я сам занимаюсь обучением программистов битриксу, и каждый раз слышу это: аааа!!! кошмар! непонятно! нелогично. На своем опыте скажу: проблема не в битриксе, а в самом человеке, все что ему незнакомо, и не понятно — ему кажется плохим и сложным. Сначала орут, почему это шаблон (внешний вид компонента) лежит в одном месте, а его логика в совершенно другом и интуитивно его не найдешь. Но когда объясняю — и сами понимают, что иначе бы не получилось реализовать, полноценное разделение шаблонов с логикой. Поэтому рекомендую вам просто плотнее с битриксом поработать. И ваш кошмар превратиться в приятный, эротический сон:)
                                • +9
                                  Возможно, я сравниваю несравнимые вещи, но…
                                  6 лет работал с битриксом и был, в принципе доволен. Но, как оказалось, просто сравнивать не с чем было.
                                  Однажды решил решил ради разнообразия попробовать сделать проект на Ruby on Rails и вот тогда я понял что зря потратил 6 лет.
                                  И путь там нету кластера из коробки, зато сам процесс разработки почти оргазм, куда там вашим эротическим снам :-)
                                  • 0
                                    Может быть дело не в битриксе, а пхп и руби?
                                    Ну не корректно сравнивать CMS или фреймворк написанный на одном языке с просто другим языком.
                                    • +1
                                      Ruby on Rails это как раз фреймфорк написанный на языке Ruby.
                                      Так что сравниваем мы именно фреймворк с фреймворком.
                                      • 0
                                        ок. Но сравниваем фреймворки на разных языках. Все таки тут много чего наследовано от языков.
                                      • +2
                                        Нет, дело в битриксе. Красота Yii схожа с красотой руби, а он ведь на пхп ;-) И разработка на Yii — оргазм, а на битриксе — вечный кошмарный сон.
                                • –2
                                  Битрикс молодцы. Реально сделали толковую вещь из коробки.
                                  • +1
                                    (риторический вопрос) может проще эту систему сделать более производительной, чем для относительно небольшой нагрузки требовать покупать кластеры?
                                    • 0
                                      А чем не устраивает текущая производительность платформы? Мне ее всегда хватало. Просто нужно понимать, что в платформе серьезная и сложная бизнес-логика, проверки системы безопасности, веб-антивирус и т.п. Если аккуратно кэшировать — проблем не будет.
                                      • +2
                                        Для относительно небольшой нагрузки не нужен кластер.

                                        То, что Битрикс умеет (!) поддерживать кластер «из коробки», и то, что он реально может потребоваться — разные ведь вещи?

                                        Более того, кластер даже в бОльшей степени нужен для отказоустойчивости (упал один или несколько серверов — все продолжило работать). Многие решения поддерживают такую возможность простыми и недорогими средствами?
                                      • +7
                                        Как так получается, что на Bitrix разработчика найти проще, но вот я делаю поиск по хабру

                                        И вижу по битриксу 79 топиков
                                        А, например, по Rails — 590 топиков.

                                        Более того, у меня достаточно много людей, занимающихся разработкой, но ни один не знает битрикса.

                                        Что я вижу

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

                                        При этом предполагается нанимать хреновых программистов, которые, вероятно, и пишут быдлокод, от которого предлагается спасаться.

                                        Я больше всего не понимаю, как так — раз проект на битрикс, значит что — его просто поддерживать? Достаточно найти битрикс программиста? А проект на Rails — сложнее? Ведь достаточно найти Rails программиста? Drupal? Wordpress?

                                        • 0
                                          Вы хотите сказать, что разработчика на рельсы найти проще чем PHP-программист? Шутите что-ли? Видимо никогда серьезно этим не занимались. По опыту — недорогой PHP-разработчик прокачивается на 1С-Битрикс за неделю, а вот найти PHP-девелопера на ZendFramework — это 100к и еще учить полгода :-)
                                          • –1
                                            Я хочу скзаать, что Битрикс-разработчика сложнее найти, чем Rails разработчика.
                                            • –2
                                              А зачем его искать. Мне хватило 2 дней чтобы разобраться в платформе и сделать первую интеграцию. До этого я разрабатывал на Java, но поделывал для себя вещи на PHP. Сомневаюсь, что я бы так быстро разобрался в Magento к примеру.
                                              • +1
                                                Ну я тоже первый свой Rails сайт типа «несколько страничек с wysiwyg админкой + форма обратной связи + новости» за пол дня сваял. Это не показатель, я с про поиск на рынке.
                                            • +7
                                              В какой это вселенной дундуку, которому полгода на изучение ZF нужно, 100к платят??
                                              • +1
                                                Ага, и еще при этом учить пол года. А за что платят и чем это отличается от того чувака, которому предложили учить битрикс?
                                                • 0
                                                  Вопрос скорее, думаю, в области генетики или… музыки. Сколько человеку не объясняй для чего нужен полиморфизм, для чего наследования и какие проблемы может решить инкапсуляция, если у него нет гена, он будет продолжать наследовать класс COrder из класса CPrice :-)

                                                  А вот писать скрипты, изнутри которых выводить верстку для таблиц ему понятнее чем делать это изнутри объекта, используя нагромождение декораторов. Вот пример объектно-дезориентированного извращения, который, по опыту, программистами или не понимается вообще, или через полгода — zendframework.com/manual/en/zend.form.elements.html

                                                  Вопрос денег. Искать долго людей со слухом, или быстро сформировать команду скриптеров, заработать через год на веб-проекте деньги и закрыть его.
                                                  • 0
                                                    понадобилось менее полудня, чтобы освоить зенд форм, поэтому это все басни. Но согласен, непривычно и кажется сначала, что это бред.
                                                    • 0
                                                      Освоить это одно, а использовать в живых проектах это объектно-дезориентированное безобразие — другое. Дорого и долго, легче скриптики писать где верстка с кодом перемешана имхо :-)
                                                      • 0
                                                        Освоил, т.к. сразу и нужно было использовать в живом проекте. И после этого использовал постоянно. ЧЯДНТ?
                                            • +4
                                              Не знаю, как там насчет найти разработчика, но в России найти заказ владея битриксом в разы проще, нежли чем чем владея RoR.
                                              Хабр это просто место такое, здесь все продвинутые, а в обычной жизни людям не до высоких технологий им бы побыстрее интернет-магазин запустить.
                                              • +1
                                                WordPress? Я видел несколько проектов.

                                                Сам WordPress + несколько популярных плагинов = и мы получаем несколько совершенно разных подходов к коду. То есть, поддерживаем уже несколько проектов.

                                                И не поддерживать отдельные «запчасти» — нельзя. Потому как при обнаружении очередной уязвимости в каком-нибудь плагине, который поддерживается официальным разработчиком лишь эпизодически (или вообще не поддерживается более) — приходится лезть и разбираться самому.
                                                • –2
                                                  Да это сплошь и рядом в опенсорсе, к сожалению. Установил плагин, а… автор застрелился. Ощущение несерьезности :-)
                                                  • +3
                                                    Странно, я достаточно долго занимался разработкой на друпале, в том числе делал крупный проект, в котором было больше сотни сторонних модулей и такой проблемы не заметил.
                                                    • –2
                                                      А с обратной совместимостью в дрюпале что делать в крупном и большом проекте? В Битриксе ее соблюдают очень строго.
                                                      • +3
                                                        А какие там проблемы с обратной совместимостью? В пределах мажорных версий апи не меняется, практически все разрабатываемые модули имеют отдельные ветки как минимум для 6-й и 7-й версии ядра. Или я вас неправильно понял? Что именно вы подразумеваете под обратной совместимостью в друпале?
                                                        • –1
                                                          Ну вот например проект на битрикс можно обновить с 6 версии до 10 без изменения кода — удобно.
                                                          • 0
                                                            это очень сомнительное преимущество, рефакторинг API время от времени необходим. В чем смысл поддерживать неудачные решения старых версий, достаточно просто выпускать security-фиксы для старых модулей.
                                                            • 0
                                                              Для поддержки больших проектов, в которых переписывать с каждой мажорной версией код — опасно. Мне как PM это было бы удобно.
                                                              • +1
                                                                Битрикс поступает иначе, они выпускают новые более гибкие модули с более современным api. Так «Бизнес-процессы» заменили «документооборот», например.
                                                              • 0
                                                                А вы пробовали хоть раз это сделать? :-)
                                                                • 0
                                                                  Постоянно этим занимаюсь.
                                                                  • 0
                                                                    Ко мне пару раз обращались с проблемой, что была старая версия, купили обновление, но продукт обновиться не может, система обновлений выдает какие-то ошибки. Я сразу советовал обращаться в техподдержку, поскольку связываться самому не хотелось.
                                                                    Поскольку вы утверждаете, что постоянно этим занимаетесь получается что именно на вас сыплются эти задачи из техподдержки? ;-)
                                                                    • 0
                                                                      Нет, я отвечаю за качество внедрений и интеграции партнерами. Смотрите, по поводу обновлений процесс такой:
                                                                      — Мы гарантируем, что продукт обновится, если не лазали в ядро (перезатрется просто). В ядро лазают и ломают в 90% случаев по причине незнания что можно переопределять разработчики событий. Также, если написать в техподдержку, вам добавят оперативно нужные события — чтобы вы не дай Бог не меняли ядро.
                                                                      — Если проект не обновился, а тем более, на боевом сервере, то наша техподдержка ВСЕГДА выручает в этой ситуации — ребята заходят и поднимают вам систему + обновляют ее.

                                                                      В 10.5 мы постараемся сделать автопроверку факта модификации ядра и сообщать об этом при попытке обновления.
                                                                • –1
                                                                  «Вы вырастете, но мы сохраним ваш говнокод навечно» ©
                                                                  • 0
                                                                    Вы как-то смотрите на проекты снизу вверх. Я понимаю, что для разработчика цель — прокачивать себя, чтобы продаться подороже, и наплевать на бюджеты и сроки, по большей части. А представьте себя на месте инвестора, которому, после инвестиции ляма в веб-сайт через год говорят, что для получения нового функционала нужно, черт, переписать старый, т.к. поменялась мажорная версия — плати еще лям :-)

                                                                    Поэтому во взрослых зрелых продуктах, на основе которых у клиентов построен бизнес, вынуждены, т.к. это доп.затраты — поддерживать обратную совместимость. Это показатель бизнес-ориентированности продукта.
                                                                    • 0
                                                                      Там, где битрикс меняет версию с 9 на 9.5 другой бы продукт ограничился сменой версии с 1.2 на 1.3.
                                                                      С точки зрения маркетинга наверняка хорошо каждый год менять мажорную версию, но какие изменения происходият при этом в битриксе? Появляется новый фунционал, а ядро продукта при этом остается практически неизменным, сохраняя в себе все удачные и неудачные решения старых версий в угоду обратной совместимости. И рано или позно это ядро станет серьезым стопором развития продукта, не вечно же костыли клепать :-)
                                                                      Мажорная версия — это некий скелет, на который наращивается мясо (функционал). Времена меняются, появляются новые технологии, новые тенденции и, рано или поздно нужно будет таки пересмотреть устройство скелета, потому что он перестает отвечать современнм требованиям.
                                                                      А ваши инвесторы, я думаю, будут вполне удовлетворены тем фактом, что вот есть стабильная мажорная версия, к которой регулярно выходят апдейты с фиксами и новым функционалом и через пару лет выйдет новая мажорная версия с переработанным улучшенным api и прочими плюшками, вот тогда уже надо будет задуматься, платить ли деньги за модернизацию проекта под новую версию или же оставить все как есть, благо производитель обещает поддерждку текущей мажорной версии еще в течение 5 лет.
                                                                      Так что, резюмирую, каждая новая версия битркса это, скорее маркетинговая фишка, нежли чем какой-то реальный технологический прорыв.
                                                                      • +2
                                                                        Ничего себе маркетинговая фишка — веб-кластер из коробоки. Для этого потребовалось все ядро перелопатить чтобы работала мастер-слейв репликация и запросы со слейвов БЕЗ изменения кода проекта :-)
                                                                        • 0
                                                                          Ой, да ладно «все ядро». Там строчек php-кода, думаю, было написано меньше, нежли чем потом блоге при описании этой фишки :-)
                                                                          • +1
                                                                            А вертикальный шардинг модулей статистики и поиска на отдельные БД? Если бы в продукте была кривая дерьмоархитектура — создать такое было бы невозможно имхо :-)

                                                                            Я когда-то просил команду разработки внедрить в самописное нечно поддержку чтений со слейв-баз данных — ответили, что все придется к черту переписывать.
                                                                            • 0
                                                                              Полез в код посмотреть, как это сделано и понял, что вы имели ввиду, когда говорили, что пришлось перелопатить все ядро.
                                                                              Код модулей статистики и поиска пришлось перелопатить, чтобы они научились шардиться. а в самом ядре (главном модуле) для этого потребовалось дописать совсем немного.
                                                                              Но вот например модуль инфоблоков, или форумы, или социальнуцю сеть фиг вы зашардитете с такой легкостью, потому что там многие запросы завязыны не только на таблицы этих модулей, но еще и на таблицы главного модуля и чтобы разнести их по разным БД — придется все к черту переписывать :-)
                                                                              • 0
                                                                                А класс CDatabase? А настраиваемый конвейер запросов для безопасного их распределения на мастер и слейв-сервера в зависимости от типа запросов и состояния слейвов? :-)

                                                                                Мало того, мы сами все наши сайты перевели на веб-кластер и включили все опции — страшно было, но зато теперь все как часы, стабильно и быстро работает :-)

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

                                                                                Еще есть идея задействовать NoSQL хранилища в помощь инфоблокам.
                                                                  • 0
                                                                    С этим я поспорю сам.
                                                                    Недавно столкнулся с тем, что из-за стоимости работ наше руководство разругалось со сторонними разработчиками.
                                                                    Руководство поставило задачу перенести сайт на наш хостинг и чтобы сайт не был причиной взлома нашей сети необходимо было обновить Битрикс с версии 6 на последнюю. Не буду углублятся в детали, но после месяца сексуальных игр, которым позавидывали бы немецкие режиссеры, по переводу 3х сайтов на (тогда еще) 9ку, мы решили создать новые сайты сразу на новой версии.
                                                                    • 0
                                                                      Видимо предыдущие разработчики изменили ядро системы. К сожалению, нередко это происходит. В этом случае обновиться сложно. На моем опыте поддержка одновременно нескольких десятков проектов на 1С-Битрикс — если решения создают не нарушая ядра, то проблем с обновлением нет. Кроме этого, для подстраховки, я ввел регламент обязательного еженедельного обновления всех установок.
                                                                      • +1
                                                                        Вполне возможно. На тот момент я не знал Битрикса и на 1%.
                                                                        Сейчас я уже знаю много плюсов и много минусов системы. Скажу лишь одно. Своих денег он стоит. Кто не готов платить могут использовать не менее функциональные opensource движки, кто готов платить за обновления и за поддержку — Битрикс хорошее решение.
                                                          • +1
                                                            Да, согласен. У всего своя ниша.
                                                          • +1
                                                            Ну если учесть, что зачастую топики и комменты о битриксе жестко минусуются — то авторы тех 79 топиков просто герои, которые рискнули своей кармой.
                                                            А вот Руби в почете и можно писать о нем и неплохо пополнить карму.
                                                            Достаточно зайти на сайт фрилансеров и увидеть, что количество заявок на программирование под php в разы больше чем на руби. Обычно руби программисты вообще работают на западных заказчиков, так как спрос в России на них очень не высоких. А если открыть вакансии, то вакансий на php так же в разы больше, чем вакансий на руби.
                                                            • +1
                                                              На Ruby пишут не чтобы пополнить карму на хабре, а потому что именно устали от PHP-говнокода. Говнокод на ROR писать сложно.

                                                              Возможно, для ZF/CakePHP также, но я свалил с PHP до его появления, и обратно не хочется.
                                                              • +2
                                                                Я вообще считаю так: говнокод рождает не язык программирования, а программист.
                                                                И хорошим программистам не нужны искусственные ограничители со стороны языка. Они и так пишут качественный код.
                                                                И какое дело такому программисту до других, которые пишут говнокод?
                                                                • +1
                                                                  Некоторые языки/платформы/фрейморки склоняют к нему, а некоторые — препятствуют.

                                                                  Это как Delphi/Builder. Конечно, никто не заставлял писать бизнес логику в обработчиках событий, но столько народу в это скатилось…
                                                                  • +1
                                                                    Просто, задачи со сложной бизнес логикой встречаются редко и зачастую достаточно просто обработчиков событий (очень просто и удобно).
                                                                    В большинстве проектов нет необходимости в обработчиках вообще. В небольшом количестве проектов они нужны, но суммарно код обработчиков не превышает 100 строк кода (да, может быть уже не так клево все получилось и удобно, но зато быстро и в одном месте. А разобраться с сотней строк не проблема).
                                                                    И только в больших и дорогих проектах такая логика может быть (таких проектов единицы). Но такие проекты должны делать высококвалифицированные программисты, которые будут использовать другие принципы построения бизнес логики.

                                                                    У обработчиков событий есть только один недостаток — они все таки охватывают не все возможные случаи, особенно для новых модулей и иногда может быть ситуация, что для какого-то события попросту нет обработчика.
                                                          • +3
                                                            О, новое говно на хабре! Привет, говно, мы тебя не ждали!
                                                            • 0
                                                              Вы говорите говно так, как будто это что-то плохое.
                                                              • 0
                                                                Но статья реально отдает пеаром. Говорить о кластеризации, но при этом нет тестов «Один сервер, два сервера, три сервера». Говорят о готовых тестах и не приводят примеров запросов.
                                                                • 0
                                                                  ой-ё! вы мне скажите, что битрикс — не говно
                                                                  • 0
                                                                    Смотрите картинку «Нагрузочные инструменты платформы 1С-Битрикс позволяют довольно просто оценить устойчивость веб-проекта к высоким нагрузкам». Если кратко, то данных инструмент заменяет общую производительность кластерной конфигурации, создавая нагрузку в несколько потоков. При этом, подключая и отключая веб-сервера от кластера, вы замеряете насколько увеличилась/уменьшилась производительность системы. На картинке видно, что произошло, когда мы отключили одну ноду кластера, а затем снова включили.

                                                                    Т.к. схема проста — балансировщик и сервера приложений, то ожидаем линейного роста производительности.

                                                                    Согласен, было бы интересно увидеть grid опций веб-кластера и числа. Думаю, мы такое исследование проведем и опубликуем.
                                                              • +1
                                                                не хотел начинать с негатива, но таки не удержался. не зря вас минусовали, торт еще хабр.
                                                                битрикс так и не научились различать тех. статьи с рекламными буклетами:

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

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

                                                                некоторые фреймворки, например BitrixFramework, предоставляют удобные инструменты аудита и мониторинга качества разработк

                                                                В BitrixFramework имеется встроенный функциональный и довольно удобный административный интерфейс
                                                                и вот после этого вы будете говорить, что ваши статьи не реклама?

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

                                                                Написать модуль относительно просто
                                                                наглая и неприкрытая ложь. даже кастомизация модуля отзывается довольной сильной pain in the ass, не говоря уже о написании собственного. никакой гибкости тут нет — есть задача и у задачи должно быть решение и вместо того, чтобы ее решать в рамках каких-то общепринятых стандартов (типа OSGi если уж говорим о модульности) я должен танцевать с бубном вокруг «тяжелого» недокументированного «api».
                                                                сама цмс (вдруг переименованная в «фреймворк») монолитна и негибка, а любая интеграция с внешними системами (как и с 1с ага) подпирается тысячами костылей.

                                                                короче говоря, статья-рекламка для менеджеров, как и впрочем все остальные околотехнические публикации битрикса.
                                                                ******
                                                                4 года php, 2 года тытрикса.
                                                                • +1
                                                                  «вы называете это сертификацией? посмотрите сюда или сюда — вот это сертификация. а ваши т.н. «сертификаты» в состоянии получить любой школьник, понятия не имеющий о кластеризации или об оценке трудозатрат. а материалы сертификации написаны в духе упомянутой статьи «какие распрекрасные мы».» — к сожалению в нашей прекрасной стране и эти курсы для типичных программистов оказываются сложными :-) Я еще ссылочку подкину на серьезную сертификацию. Мы на пути к подобному уровню сертификации.

                                                                  «если человек не в состоянии разобраться в чем-то сложнее PHP, проблема не с платформой а с человеком.» — после наших ВУЗов таких «программистов» большинство

                                                                  «В BitrixFramework имеется встроенный функциональный и довольно удобный административный интерфейс
                                                                  и вот после этого вы будете говорить, что ваши статьи не реклама?»

                                                                  А вы видели когда-нибудь админку управления БД Oracle? А у magento? Рекомендую посмотреть и сравнить. А видели какие админки пишутся в самописных проектах? В 1С-Битрикс админка — очень неплохая и функциональная.

                                                                  «Написать модуль относительно просто
                                                                  наглая и неприкрытая ложь.»

                                                                  Вы извергаете эмоции без фактов. Я лично написал для системы не один модуль, одновременно создавая модули для сервера приложения JBoss на Java. Элементарная задача для ПТУшника. А эти модули пишут наши клиенты и партнеры.

                                                                  «сама цмс (вдруг переименованная в «фреймворк») монолитна и негибка, а любая интеграция с внешними системами (как и с 1с ага) подпирается тысячами костылей.»
                                                                  ЦМС? Давно уже не ЦМС — скорее легкий и доступный SAP и активно развивается в направлении автоматизации бизнес-процессов не только фронт-офиса, но и бэк-офиса.

                                                                  • 0
                                                                    Мы на пути к подобному уровню сертификации.
                                                                    поинт был в том, что подобный уровень дискредитирует сертификацию битрикс как таковую, ровно как и уровень и квалификации (читай зарплаты) программистов на битрикс

                                                                    А вы видели когда-нибудь админку управления БД Oracle? А у magento? Рекомендую посмотреть и сравнить.
                                                                    а при чем здесь оракл? реакция людей, впервые видеших админку битрикса была примерно такой О_О. справедливости ради стоит заметить, что админки прочих (в т.ч. и опенсорсных) цмс ушли не далеко. однако и тут поинт в другом, «предоставляют удобные инструменты» — вот так просто, удобные и все — звучит как реклама

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

                                                                      2) Сертификация битрикс, да, начального уровня, но она, в чем нередко убеждался на практике, приносит свою пользу — люди вынуждены прочитать объемную документацию прежде чем начать писать код. Когда мне были нужны сильные разработчики на PHP, я интересовался, например профессиональным сертификатом — ZCE, который РЕАЛЬНО НЕПРОСТО получить, а большинство никогда и не получит.

                                                                      3) «В BitrixFramework имеется встроенный функциональный и довольно удобный административный интерфейс и вот после этого вы будете говорить, что ваши статьи не реклама?» — я написал «довольно» удобный, это мое личное мнение, которое готов отстаивать, нахлебавшись в свое время помоечных самописных админок.

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

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

                                                                      Иногда, да бывает, уже и АПИ модуля не подходит. Тогда пишете свой модуль или, через вебсервисы можете вообще связаться с другой системой, тем же блоггерным движком или отдельным форумом. Модули для битрикс создаются до неприличия просто — в них, вот реально руки чешуться сделать, можно засунуть хоть Doctrine вместо инфоблоков. Именно благодаря простоте архитектуры это возможно.
                                                                      • –1
                                                                        уровень зарплаты программистов на битрикс завышен, неадекватно
                                                                        завышен??? давайте говорить в среднем по больнице, тут
                                                                        я привел довольно развернутый ответ. коротко: сниженный порог входа (как в битрикс, так и в php в целом) ведет к снижению зарплат, как к низкоквалифицированному труду""

                                                                        «довольно» удобный, это мое личное мнение, которое готов отстаивать, нахлебавшись в свое время помоечных самописных админок.
                                                                        1) я не о том. уродский интерфейс других админок не делает админку битрикса удобной.
                                                                        2) личное мнение, опубликованное в корпоративном блоге и создает привкус рекламы. я заострил на этом внимание, т.к. сталкиваюсь с подобным не в первый раз. тому же Роберту Басырову неоднократно высказывал пожелание исключить маркетинг из документации. услышан не был.

                                                                        Если бы продукт был целиком посвящен блогам, или целиком форуму, тогда бы их конечно вылизывали и доводили до совершенства
                                                                        и вместо доведения до ума старых, разрабатываются новые модули? :) тут не в них, тут в концепции дело. с теми же инфоблоками: удалось ли решить проблему иерархичных свойств — избавиться от костылей в свойствах групп?
                                                                        • –1
                                                                          не знаю, что тут происходит с форматированием и ссылками,
                                                                          в первом пункте приводится вот это
                                                                          dev.1c-bitrix.ru/community/webdev/user/3308/blog/2334/#17539
                                                                          • 0
                                                                            Костылей в свойствах групп? Каких, мне очень интересно узнать. Столько лет использую инфоблоки в десятках проектов — а в них оказывается есть какие то костыли? :-)
                                                                            • 0
                                                                              например о свойствах инфоблоков, наследуемых от свойств групп (или как там папки с инфоблоками называются, разделы?). например о таком же наборе типов свойств в группах, что и в инфоблоках. вместо 1 сущности с наследованием и агрегацией, имеем…

                                                                              … хотя постойте, я это руководителю направления говорю?
                                                                              как-то ни о чем разговор вышел. предлагаю закрыть.
                                                                • 0
                                                                  Так почему вы не храните сессии в мемкеше.
                                                                  И почему акцентируете внимание что програмеры под битрикс нужны «не самые умные».
                                                                  Я сильно сомневаюсь что последнее это плюс :)
                                                                  • 0
                                                                    А пытались сохранять в мемкэше. У нас большая и сложная система безопасност и веб-файервол, сессия используется активно, и возникли сложности с ее правильной локировкой в мемкэше, поэтому пока храним в БД. Если интересно, напишем об этом детальнее.

                                                                    «И почему акцентируете внимание что програмеры под битрикс нужны «не самые умные».
                                                                    Я сильно сомневаюсь что последнее это плюс :)»


                                                                    Наплыв воспоминаний с прошлых мест работы :-) Был у меня проект, правильный, ООПшный, на базе ZendFramework. Его написал объективно умный, талантливый разработчик. Но он ушел. Найти людей, способных отличать конструктор от метода Init, как я не пытался, было… сложно. А те, которые поддерживали данный проект — изуродовали объектную модель без ее понимания до такой степени за полгода, что было очень грустно. Случилось как в сказке: «и снесла курочка яичко простое, вместо золотого, и дедушка с бабушкой стали счастливы».

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

                                                                    • +2
                                                                      По сохранению сессий в мемкеше посоветую обратиться в азам — мьютексы, семафоры, двойное рукопожатие, и проверка того что было прочитано и того что храниться в данный момент тем как записывать свои новые, обновленные данные.
                                                                      Звучит страшно, но на деле это строк 200 кода.

                                                                      >На 1С-Битрикс такая ситуация вряд ли бы случилась
                                                                      Я конечно за последнюю версию не скажу, говорят битрикс очень сильно изменился, но те ужасные дни и недели когда мы переписывали *** с битрикса я еще долго не забуду :)
                                                                      И проблема была именно в том что некоторые вещи работали слишком просто.
                                                                      И заместо одной сложной сущности было 20 простых, раскиданных от клиентской части, до бустрапа битрикса( например модель пользователя ). И не всегда обширная ивентная модель битрикса спасала положение.

                                                                      Правда, быть может, все дело в разнице восприятия, но лохматые олдскульные программеры живут в своих привередливых моделях
                                                                      • 0
                                                                        Компоненты 2.0 у нас в принципе реализовали такой всеми любимый и ожидаемый паттерн МВЦ, правда не на объектах (чтобы и дедушке и бабушке было понятно), а через файлы.

                                                                        ОRM в php версии нет, но вместо него неплохо справляется с задачами модуль инфоблоков, работающий с деревом объектов и наборами их свойств (реализован фаулеровский паттерн TableModule). Есть ощущение, что NoSQL нужен нам, на Doctrine смотрим с интересом, но пока ограничимся поддержкой этой осенью облачных хранилищ амазона, гугла и ажур.

                                                                        Есть ощущение, что возможно принес бы пользу FrontController. Но однозначных доводов в его пользу нет, т.к. многих вполне устраивает парадигма хранения контента не в БД, а в файловой системе.

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

                                                                  Самое читаемое