1C-Bitrix — всё по этой теме для программистов


Оглавление (нажмите, чтобы открыть):

Что такое битрикс, что должен уметь программист битрикс

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

Под битриксом чаще всего имеется ввиду продукт «Битрикс — Управление сайтом». Часто можно встретить слово «БУС», что это такое? «БУС» — это и есть продукт «Битрикс — Управление сайтом».

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

Многих притягивает название «1С Битрикс», они видят приставку и так как у многих пользователей установлены продукты от этой компании, то и сайт стоит делать на продукте от такой же компании. Но на самом деле, компания 1С просто приобрела подразделение битрикс и теперь только занимается доработками системы. Хотя система и сложная, и в большинстве случаев разработка на другой CMS была бы проще и дешевле, хороший маркетинг делает свое дело, поэтому многие пользователи хотят сайт только на этой CMS.

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

Что должен уметь программист битрикс? Он должен быть хорошо подготовлен, лучше, чтобы он был сертифицирован. Можно пройти такому разработчику онлайн-экзамен под видео-камерой и получить сертификат. Сертифицированный программист битрикс должен уметь установить, настроить и доработать систему до нужного функционала. Если нужна помощь – оставьте заявку.

Чибиляев Александр
Частный Битрикс программист

Сертифицированный Full Stack 1с-Битрикс разработчик.
Выполняю весь комплекс работ по CMS Bitrix

Работаете напрямую с исполнителем

Нет «Сломанного телефона»

Сдаем работу в срок

Ежедневно на связи с 9.00 до 18.00

Полное погружение в проект

Обо мне

Меня зовут Александр, и я Битрикс программист. Имею профильное образование и сертификаты по многим направлениям в сфере веб-разработки. Специализируюсь на программирование под Битрикс и занимаюсь им с 2011 года. Буду Вам полезен в качестве полноценного разработчика на Битрикс.

Основные направления деятельности — полноценная разработка и доработка шаблонов под Битрикс, а также программирование и доработка компонентов под Битрикс.

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

Вы работаете напрямую с Битрикс разработчиком

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

Если у вас имеется сформированная задача, Вы можете отправить ее на почту info@aachibilyaev.com либо связаться, оставив заявку

Техническая поддержка Битрикс

Занимаюсь технической поддержкой сайтов на Битрикс.

Частые проблемы заказчиков, которые я решаю:

  • Доработка шаблона на Битрикс(переработка шаблона )
  • Сайт медленно открывается(медленно открывается сайт)
  • 502 ошибка — сайт не доступен(страницы сайта открываются через раз)
  • Исправляются одни ошибки и появляются другие(исправили верстку в одном месте, поплыло в другом)
  • Предыдущие исполнители халатно относятся к сайту(допушено множество ошибок и длительное ожидание решения)
  • Неприемлемые сроки решения проблемы(завышенные сроки решения задачи)

Доработка Битрикс

Помогаю владельцам сайта доработать шаблон и компоненты битрикс под сферу бизнеса.

Частные задачи по доработке и наращиванию функционала для сайта на Битрикс:

Как стать хорошим программистом «Битрикс»? Советует руководитель техподдержки

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

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

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

Правило первое: вы ничего не знаете

Предыдущий опыт разработки на других CMS ничем вам не поможет. WordPress, Joomla, Drupal, MODx устроены принципиально иначе. Механическое перенесение наработок вам только навредит, а ожидание привычных схем работы приведет к разочарованиям. Начинайте разрабатывать на «Битрикс» с чистого листа.


Правило второе: база данных неприкосновенна

Все свои познания по части SQL пока оставьте и забудьте. Когда освоитесь, они могут вам здорово пригодиться при работе над крупными проектами с большим потоком запросов. А пока обращайтесь к базе данных исключительно через АПИ «Битрикс». Вам же будет проще.

Правило третье: ядро тем более неприкосновенно

Есть такой адрес

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

Вы прекрасно разбираетесь в PHP? Отлично! Разбирайте по косточкам АПИ. Пользуйтесь системными событиями. Оригинальные компоненты копируйте и работайте уже с копиями.

Правило четвертое: не пишите своих модулей

Заверяю вас, что 99,99999% задач типовые и покрываются инструментарием «Битрикс» с лихвой. Надо просто найти и настроить нужный инструмент. А если когда – то, в необозримом будущем, у вас возникнет сильно нетиповая задача, то к тому моменту вы будете уметь ее решить без посторонней помощи.

Правило пятое: не дергайте, а ищите

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

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

Правило шестое: нет прямого ответа – спрашивайте

Как писал Роберт Шекли, на любой вопрос можно ответить, если поставить его правильно. Если поиск по форуму вам ответа не принес, задавайте свой вопрос «старшим товарищам». Не надо мучиться и изобретать велосипед. Но не спешите писать первые попавшиеся крики о помощи. Прочтите сначала:

Правило седьмое. Спрашивайте без эмоций и по делу

Сроки горят у всех. Заказчики нервные у всех. Менеджеры проектов стоят над душой у всех. Все живые люди. Не надо добавлять своей паники в бурлящую психику коллег. Не надо описывать, как вам трудно, как вы измучились, и что с вами сделает начальство. Это к делу никак не относится, и такие «аргументы» только вызовут к вам неприязнь. Продумайте свой вопрос. Исчерпывающе сформулируйте, что работает не так, что вы делали по проблеме до этого, как пытались исправить. Только после этого отправляйте свое сообщение на форум.

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

Спасибо за внимание!
Читайте свежий выпуск «Кладовки программиста» каждый день!

Стоит-ли изучать Битрикс?

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

Чем плох битрикс?

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

Битрикс для программиста

Каков же Битрикс для программиста? Он сложный. Даже организация шаблонов компонентов порой настолько запутана, что ни сразу найдешь кокой шаблон работает в данный момент, приходится вставлять echo чтобы убедится, что ты нужный фал редактируешь. Но что касается верстки, тут ещё можно разобраться. Своим подходом к кастоимзации шаблонов компонентов Bitrix похож на Joomla или точнее наоборот. Поэтому верстать под Битрикс можно и это не столь сложно, как может показаться на первый взгляд.

Основные же сложности начинаются, когда дело доходит до сложных компонентов и модулей (заказ, модули служб доставки, обмен с 1С, вобще все что касается модуля sale). Тут так все переплетено и запутано, что просто порой опускаются руки. Документация вроде есть, но опять же по сложным моментам её нет и в целом информации мало.

И получается, что Битрикс – это черный ящик, для кого-то больше, для кого-то меньше, но он остается черным ящиком.

Мастер Йода рекомендует:  Как синхронизировать папки на FTP-сервере и Google Drive

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

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

Как обстоят дела на фрилансе с Битрикс?

Если рассматривать Битрикс, как подработку на фриласе, то заказов на самом деле хватает. Их меньше по сравнению с теми же WordPress и Joomla, но они есть. Но простых заказов (сделать форму обратной связи, поправить верстку) практически нет. Все заказы достаточно сложные. Но зато и стоимость у них выше. Но как для фриласна мне кажется Битрикс не осень подходит. Связано это с тем, что те, кто делают заказы на фрилансе хотят сэкономить и за достаточно сложные задачи, которые с учетом непредсказуемости Битрикса могут отнять у вас кучу времени, просят небольшие деньги. Да и существует риск, не справится с какой-либо проблемой, потерять время и не получить денег. С WordPress или Joomla такое навряд-ли случится, т.к. 90% проблем можно нагуглить или спросить на форумах. С Битриксом хорошо встать на постоянно обслуживание, т.к. внимание к себе он будет требовать всегда. Правда к этому неплохо ещё опыт администрирования Linux иметь.

Битрикс в web-студии

А вот спрос на Битрикс-специалистов в web-студии большой. И зарплаты тоже предлагают хорошие, особенно для программистов с опытом. Работать в студии с Битрикс гораздо проще. Во-первых, весь негатив принимает на себя менеджер, а программист работает фиксированное время и в отличие от фриланса после 18-00 можно отключить мозг и отдохнуть. С ростом опыта, как правило растет и зарплата. А с возрастом можно перейти на должности руководителей проектов или начальников отделов.

Так стоит-ли изучать Битрикс? Да стоит. Битрикс это как 1С. Может вам и не нравится, но работой вы будите обеспечены всегда. А наличие работы так же дает некую свободу и уверенность в завтрашнем дне .

5 причин почему не стоит выбирать 1С-Битрикс

Главная » Блог » 5 причин почему не стоит выбирать 1С-Битрикс

В последнее время наши клиенты начинают спрашивать про систему управления сайтом 1С Битрикс. Хочется отдать должное маркетинговой машине 1С за их стратегию продвижения этого продукта. Если даже люди, которые далеки от технологий хотят сайт именно на этой платформе. Но хочется отметить, что плюсы этой платформы заканчиваются на ее распространенности в России. По данным рейтинга рунета на ее базе работает 9,4% всех русскоязычных сайтов. Все крупные студии имеют в своем штате программистов, которые умеют работать с этой системой. Ведь спрос нужно закрывать, тем более когда сама студия получает до 50% откатов за купленную коробку продукта Битрикс. В этой статье я постараюсь максимально спокойно объяснить почему не стоит принимать решение в пользу 1С-Битрикс.


1. Стоимость

Стоимость бизнес версии стоит около 80 000 рублей. Не плохо, не правда ли? 80к просто за CMS, куда не включены работы по ее настройке, дизайну и индивидуальным решениям. То есть студия еще не начала свою работу, а вы уже потратили эти деньги. Стандартный магазин с уникальным дизайном при самых оптимистичных подсчетах обойдется вам в 150 000 рублей. По Красноярску эти цены разнятся от 150к до 300к. И вы должны понимать, что это магазин со СТАНДАРТНЫМ ФУНКЦИОНАЛОМ. Не учитывается не связь с 1С, ни многоскладовость, ни еще какое-нибудь нестандартное решение. Про маркетинг я и молчу. Для примера ИМ у нас с таким же функционалом и качеством будет стоить 70к. Почему так дешево? Потому что не Битрикс.

2. Интеграция с 1С.

Этот пункт привлекает заказчиков больше всего. Взял коробку, а там уже есть связь с 1С и доплачивать студии за интеграцию не нужно. Хочу вас огорчить, но нет.
— Для того, чтобы сделать интеграцию с 1С, нужно чтобы ваш магазин имел структуру как сказано в документации 1С. А это не всегда вас будет устраивать.
— Битрикс «дружит» не со всеми редакциями 1С. Список редакций.
— И самая частая проблема. В 90% случаев, у заказчика уже есть 1С и в 99% случаев она ведется не идеально. И для того чтобы все содержимое 1С корректно перенеслось на сайт, нужно или переделывать всю 1С или дорабатывать механизм обмена. А доработка обмена с 1С это отдельная тема для статьи. Основной класс отвечающий за организацию обмена \CIBlockCMLImport содержит 6 000 строк кода. Раз унаследовался, раз обновил продукт и связь может попросту перестать работать.

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

В программировании есть такие архитектурные решения как паттерны. Это что то типо схемы участков для больших проектов, которые не привязываются к конкретному языку программирования и позволяют не решать ежедневно проблемы архитектуры. При правильном применении паттернов программист, может не вникать в бизнес-логику проекта, а может свободно распоряжаться данными получеными с Model. В Битриксе архитектуры нет. Даже не так, она есть, но лучше бы ее не было. Это сотни кусков кода, которые не связаны между собой. Это каша из HTML, PHP, JS и CSS. Это методы по 1000 строк кода. Про принцип разработки DRY(Don’t repeat yourself) там и не слышали. Разумеется подобные проблемы бывают во многих CMS(если не во всех), но их не продают за 80к плюс платная подписка на обновления.

4. Модули и плагины

Модуль редиректа за 5000 рублей. Карусель товаров за 4000 рублей. Ссылки на разделы и элементы инфоблоков — 6990 рублей. Если вы все таки выберете систему Bitrix, помните, цены на модули плагины в этой CMS просто заоблачные. В WordPress подобные модули можно найти бесплатно. Нужен функционал более расширенный? Тогда рублей за 600. В Opencart и Joomla цены так же ниже раза в три.
И что самое обидное, такая высокая цена на модуль не гарантирует на 100% успешную интеграцию на ваш сайт.

5. Стоимость часа программиста.

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

Вывод

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

Битрикс обучение

Как научиться работать в CMS 1с-битрикс.

Здравствуйте, дорогие читатели thisis-blog.ru. Сегодня хочу поделиться с вами ресурсами, обучающие работе с bitrix, которые накопились за всё моё время работы. Так почему же вообще выгодно работать в этой области и почему я еще занимаюсь этим? Давайте посмотрим график-рейтинг коробочных CMS используемых веб студиями и возможно вам сразу всё станет ясно.

рейтинг за 2011 год/ Источник tagline.ru

Чуть более половины рынка коробочных CMS в 2011 году занимает Битрикс и из года в год его доля ростет. К сожалению компания Tagline не составляла рейтинг за последующие годы, поэтому можете ориентироваться на этот рейтинг(учтите, что рейтинг именно по коммерческим cms), либо можно оценить популярность по числу вакансий на одном из сайтов по поиску работы. Возможно вы скажете все эти рейтинги подстроены и т.п. Но всё таки посмотрите на число вакансий и вы сделаете вывод:

  • вы не останетесь без работы;
  • заказы на этой CMS весьма дорогостоящи, как и сама CMS, и как следствие вполне хороший заработок.

Ресурсы для битрикс специалистов.

Термином специалисты я обобщил не только php и java- программистов и т.п. , но и верстальщиков, дизайнеров, контент-менеджеров, архитекторов работающих под этот движок.

On-line курсы.

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

UPD 14.08.2015:

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

От себя хочу добавить:

Эффект намного лучше и это доказано, когда теория идет параллельно с практикой, поэтому советую вам установить демо версию(действует 30 дней) на локальную машину, либо на свободный домен (если не жалко), или воспользоваться виртуальной лабораторией от 1с битрикс(на 3 часа). Делайте, тренируйтесь не бойтесь что-то сломать. Прочитали , реализовали –это залог успеха.

Форум.

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

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

Документация.

Конечно же основные знания заложены в документации.

Если хотите освоить эту CMS, придется почитать и это. Будущему разработчику просто необходимы знания о 1с-Битрикс API.


База знаний

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

Github репозитории

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

Литература.

Когда я последний раз искал литературу о bitrix нашел лишь эти наработки:

Также можете поискать книги:

  1. Сайт на 1С-Битрикс: создание, поддержка и продвижение. Базовое практическое руководство Расторгуев, Прокди
  2. 1С-Битрикс: Строим профессиональный сайт и интернет-магазин.
  3. 1С-Битрикс. Корпоративный портал Руководство разработчика, Басыров Роберт
  4. 1С-Битрикс: Корпоративный портал. Повышение эффективности компании 2-е издание, Р. И. Басыров, А. Татарко

Блоги. Поиск.

В сети вы можете найти множество блогов о 1c bitrix , на сайте компании также есть блоги профессионалов в этом деле, которые показывают, как можно решить ту или иную проблему оптимальным путем. Посоветую почитать как зарегистрировать домен дешево?

Основной способ найти ответ на тот или иной вопрос — это поисковик. Главная ваша задача – это правильно сформулировать свой вопрос.

Видео уроки.

Если постараться и поискать, можно найти в сети видео-уроки. На сайте компании имеется несколько обучающих видео. Еще я нашел канал и пару видео на youtube.

Также можно поискать видео уроки:

  • TeachVideo: 1С. Битрикс. Обучающий видеокурс
  • Специалист 1С — Битрикс Управление сайтом – администрирование

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

Курсы.

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

Мастер Йода рекомендует:  Как составить качественное ИТ-резюме для работы мечты

Ускорение загрузки нагруженного сайта на Битриксе или зачем программисту знать как работает mySQL

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

Мы можем решить все задачи веб-интеграции собственными силами. Большинство наших проектов – комплексные, интеграционные.

Наш принцип: приносить пользу бизнесу клиента за счет осмысленного применения веб-технологий.

Ключевая компетенция веб-интегратора: создание сложных и хорошо работающих веб-проектов.

Сегодняшняя статья – об ускорении работы нагруженного интернет-магазина.

Этот интернет-магазин – mybox.ru. Внутри – 1C-Битрикс.
Почитать об архитектуре проекта.

Сначала несколько слов о Битриксе

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

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

Второй – люди снаружи “мира Битрикса”. Они пишут на “правильных платформах”. Они боятся, не знают и не любят битриксоидов. Они оставляют у нас на сайте ядовитые комментарии. Они испускают вопли ненависти. Их никто не слышит. Даже их клиенты. Их клиенты хотят перейти на Битрикс. Потому что мейнстрим, потому что оттуда нет воплей ненависти. Потому что там как-то все работает. Потому что найти профессиональную и организованную команду разработчиков под Битрикс проще чем под “правильную платформу”.

Лишь малая доля веб-разработчиков думает не штампами, а головой. Например – мы.

Профессионалы понимают, что тиражируемый софт и промышленная разработка это не то же самое что “команда одного проекта”. Мы знаем для чего подходит Битрикс и почему он такой.

При этом мы не идеализируем платформу. Мы знаем о стольких странностях Битрикса, что людям “снаружи” и не снилось.

В каждом крупном проекте – Евраз, MYBOX, Альфа, многочисленные “Уберы маркетплейсов” – мы думаем “черт возьми, причем тут Битрикс!? Тут же все нетиповое!”. Каждый раз мы начинаем проект и осознанно делаем его на Битриксе.


Я понимаю что люди по ту стороны пламени войны сейчас скажут “мыши плакали, кололись, но продолжали жрать кактус”. Но – это неправда.

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

В статье — реальный кейс ускорения работы сайта на Битрикс, объемом в 3000+ часов и пример оптимизации его работы.

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

Кто пациент? Что умеет сайт mybox.ru?

Mybox.ru – сайт, highload проект на Битрикс, где можно заказать суши и другие блюда азиатской кухни в 100+ городах.

Сайт показывает доступность блюд в 250+ точках выдачи. Статусы заказов обновляются через веб-сервисы 2 раза в минуту. Обновление наличия товаров и меню идет почти непрерывно. На сайте делается ежедневно более 1000 заказов, в месяц – несколько десятков тысяч.

Ну хорошо, а нагрузка?

Утром (когда заказов почти нет) в минуту бывает около 35 хитов. Мало.

Днем в 14-00 по Москве (восточные регионы начинают активно работать) в минуту сайт обрабатывает 220 запросов. Уже не так мало.

Вечером — когда поток заказов максимальный — в минуту около 500 хитов.

Вечером в праздник (например 8 марта) обычный показатель перекрывается в 2-2.5 раза.

Итого до 1300 хитов в минуту. Это 22 хита в секунду.

Нагрузка эта – от покупателей, без признаков хакерских DDOS-атак, неумелого парсинга, буйных ботов Яндекса и всего такого.

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

Ясно, что причины “тормозов” надо искать в коде и в обработке данных.

Начнем с истории.

Скорость работы после старта

Сайт был разработан нами и выпущен осенью 2015 года.
После сдачи сайт был проверен на скорость – все было в пределах нормы.

Что такое норма?

Лирическое отступление: в частных беседах сотрудники 1С-Битрикс говорят что сайт должен “без кеша” отдавать любую страницу за 0.1-0.5 секунды и это они считают нормой.

При этом сайт Битрикса контентные страницы отдает за 0.2-0.3 с, а страницу отфильтрованного списка партнеров — сначала за 0.8 с, потом за 0.25 с.

Штатная “мерилка” Битрикса (серверное + в браузере) помечает любое время свыше 1 с – “не быстро”.

Разумно считать около 0.5 секунды серверного времени – допустимой нормой.

На момент старта сайт был “бодрячком”: среднее время генерации страниц составляло около 0.3 секунды.

. и через год расширения сети и развития сайта

За год посещаемость, число точек и городов выросли процентов на 30.

База данных имеет стандартную для Битрикса структуру – инфоблоки (товары, SKU, маркетинговый контент), немного хайлоадблоков.
Данных немало: например, в инфоблоке SKU (“наличие по точкам”) хранится более 400 тысяч записей.

Кроме того, сайт хранит более 6 миллионов записей – позиций ранее сделанных заказов. Каждый раз когда сайт обращается к истории заказов, выполняет операции с корзинами – этот объем записей затрагивается.

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

За год на сайт было добавлено много новых функций. Вот неполный список:

Добавлена паназиатская кухня с конструктором заказов, что сделало весь код работы с корзиной “сильно нестандартным”

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

Сделали “гео-доставку”. Это значит, что в зависимости от местоположения покупателя сайт показывает ему точный состав доступных к заказу блюд и условия доставки. Помимо координат клиента сайт учитывает нюансы работы сети MYBOX во всех городах (цена доставки, время, наличие блюд в ближайшей точке).


Разработаны и запущены 2 мобильных приложения (приложения берут данные из того же сайта и добавляют ему нагрузки; мы разработали стыковочное API для мобильных приложение, это API реализует логику работы с товарами, заказами и доставкой)

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

Выросла и нагрузка. Сайт перестал быть “бодрячком”. Перед нами встал вопрос — как увеличить скорость загрузки сайта.

По самым продающим и самым нагруженным страницам время за год сильно выросло (на графике показано серверное время).

В сентябре 2020 года мы начали оптимизацию. Результаты видны на графике, далее — подробности.

Оптимизация скорости работы сайта, снижение нагрузки на сервер

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

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

Симптомы

Хозяйке на заметку:
Даже если вы не специалист в веб-разработке, для определения медленно работающих частей сайта прекрасно подходит штатный монитор производительности Битрикса и его инструменты “Страницы”, “Хиты”, “SQL-запросы”. Запустите мониторинг на 20-60 минут и посмотрите статистику.
Все как на ладони.

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

Вы спросите: как так вышло? Ответ прост:

непрерывный рост базы и замедление запросов;

постоянное изменение логики и “наслаивание кода”;

весь год мы работали над проектом в таком темпе, что не проводили регулярное нагрузочное тестирование, перестали применять модульное и интеграционное виды тестирования.
Мы оставили только “смок-тесты” и мониторинг работоспособности основного бизнес-процесса через Selenium.
Скорость разработки была на первом месте, и накопился технический долг.
Это плохо, но это неизбежное следствие режима “давай-давай”.

Важно время от времени наводить порядок.

Еще вопрос: как при таких показателях вообще удавалось работать?

Нужно похвалить кеширование Битрикса: большинство медленных запросов работали редко.

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

А может сервер посильней?

Очевидная мысль — для ускорение работы сайта мало ресурсов, давайте добавим.

Но мы решили этого не делать до наведения порядка в коде. Добавлять мощности — значит консервировать проблему. Да и Антон Гойхман, ИТ-директор сети, совершенно разумно отказался “тушить пожар бензином”.

Сайт работает на обычном виртуальном сервере на SSD.

Сервер соответствует требованиям Битрикса, поэтому начинать надо не с него.

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

Мы нашли и устранили кучу мест “потери скорости”. Первая группа проблем называется

Ошибки программистов

Логически верные, но неоптимально написанные вызовы API Битрикса

API Битрикса – инструмент. Инструмент непростой. С его помощью очень легко написать такой код, который будет логически верен, но крайне непроизводителен. И требуется квалификация “сильно выше средней” чтобы это найти и исправить быстро и изящно.

Пример: Многие сущности на сайте связаны между собой и с внешней системой учета по XML_ID.
В коде огромное число getlist-запросов с отбором XML_ID. При этом иногда программисты не указывали фильтрацию по iblock_id.

Логически это допустимо: если XML_ID уникален, то проблем нет.

Но в Битриксе для поиска по iblock_id, XML_ID есть составной индекс. А при запросе без указания инфоблока он не используется.

В огромном учебном курсе Битрикса “разработчик на bitrix framework” этот момент четко не описан.

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

Update: После нашего уточняющего запроса руководитель отдела документирования Роберт Басыров скорректировал текст документации Битрикс по этому поводу: http://dev.1c-bitrix.ru/api_help/iblock/classes/ciblockelement/getlist.php


SQL в цикле вместо более сложной, но быстрой методики получения данных

Пример: Больное место — result_modifier компонента catalog.section.

На сайте есть особый вид товаров — наборы в виде “коробочек паназии”. У них специфический жизненный цикл от синхронизации с учетной системой до ценообразования, доступности по городам, расчету геоданных.

В коде страницы каталога каждой коробки-вока в коде узнавали ее состав с помощью метода getBoxProductItems (в самом методе еще 2 раза вызывается Getlist по компонентам коробочек).
Затем опять делали запрос для получения значения свойства. Все это для того чтобы узнать с чем коробка.

Работает, но неоптимально. Код избыточен.

Добавили интересующее нас свойство в параметр DISPLAY_PROPERTIES, собрали ID-записей и разом получили необходимые нам значения.

Результат: Ускорение этого логического блока в сотни раз.

Запросы с пустой фильтрацией

Фильтры при отборах иногда формируются по сложной логике “в пару экранов кода”.

Завершается все это getlist’ом.

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

Совет: при больших (или даже при любых) объемах данных проверяйте, не пустой ли у вас фильтр.

Повторный запрос тех же данных

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

Мастер Йода рекомендует:  Заканчивается поддержка MS Office 2010. Что делать

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

Результат – накопилось вот такое: если на странице выводилось 50 товаров, то для каждого товара выполнялся запрос, определяющий текущий тип цены, одинаковый у всех.

Отсутствие нужных индексов на нагружающие запросы select

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

Город в нашей структуре данных — свойство инфоблока товарных предложений. Получается “запрос через 2 ступени”: товар-предложение-город. Запросы сложные, данных много, все тормозит.

Для ускорения сайта на Битрикс, сконвертировали в Инфоблоки 2.0 и добавили индекс на поле “город”.

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

Проанализировав запросы, мы добавили индексы почти на все highload-блоки.

Следующая группа проблем интереснее.

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

Неоптимальная работа стандартных компонентов и страниц Битрикса

Метод CIBlockPriceTools::GetOffersArray используемый в компоненте Catalog.Section

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

Делает он это довольно странным образом.

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

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

Работа со свойствами элементов инфоблока в компонентах

Стандартные компоненты каталога делают “лишние” для нас операции при извлечении свойств товаров.

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

Пример: Список полей которые мы получаем вместе с элементами

Стандартные компоненты получают свойства отдельно, с помощью метода CIBlockElement::GetPropertyValuesArray.


Чем больше свойств нам надо получить, тем медленнее метод работает.

В каталоге нам требуется всего 12 свойств, для интернет-магазина это не много.

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

Следите за руками.

В методе GetPropertyValuesArray мы (в смысле код Битрикса) получаем значения всех активных свойств, причем двумя отдельными запросами: сначала список существующих свойств,

затем сами значения для выбранных элементов каталога

Далее если свойство имеет тип свойства “привязка” и свойство указано в параметре PROPERTY_CODE идет получение привязанного элемента, причем запросом в цикле (метод GetDisplayValue).

Время затраченное на исполнение функции GetDisplayValue

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

Тогда этот связанный элемент не будет извлекаться из базы без толку.

Тем, кто “поделится” статьей в социальных сетях, мы пришлем инструкцию по оптимизации SQL-запросов Битрикса.

Удивительная страница sale_buyers.php

Эта страница доступна в админке вашего Битрикса по ссылке /bitrix/admin/sale_buyers.php?lang=ru. Она показывает покупателей и много данных по каждому: сумма заказов, число, время последнего логина.

На малых данных все отлично, а на больших — нет.

Она генерирует такой вот запрос:

Любители пописать SQL-запросы спросят — почему бы сумму и число заказов не получить одним подзапросом, а не двумя одинаковыми? Причина известна: так работает автоматический построитель запросов на основе настраиваемого визуального представления.

И черт с этим, проблема не в двух запросах вместо одного.

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

Пришлось сообщить в техподдержку и временно заблокировать эту страницу.

Update : Трудами сотрудников компании Битрикс Дениса Шаромова и Николая Рыжонина пример 20+ — минутного запроса был стремительно исследован, в продукт внесены изменения, которые придут с обновлениями. Ждем.

Результаты оптимизации

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

Сравните результаты “до и после”. Среднее время нагружающих запросов:

Даже самые тяжелые страницы теперь отдаются менее чем за 0.4 секунды (напомню, при 10+ хитах в секунду).

Сайт снова стал бодрячком.

Осталось еще одно “место потери времени” – проблемы клиентская оптимизация, работы в браузере.

Ей мы займемся в ближайшее время.

На диаграмме внизу зеленое — серверное время, синее – время на клиенте, в браузере.

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

Выводы

Универсальность Битрикса, гибкость инфоблоков и буйство фантазии заказчика позволяет многим веб-разработчикам забыть, как платформа устроена внутри. Забыть про уровень протокола, сессий, индексов, таймаутов.

А забывать не надо.

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

И если в простых случаях можно программировать “спинным мозгом”, то нагруженный проект не позволит этого.

Затраты времени на рефакторинг составили около 60 часов.


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

Важно как компания работает над ними.

Тестовые задания на вакансию: «1C-Битрикс программист»

Перед началом выполнения тестового задания, пожалуйста, убедитесь, что данная вакансия открыта. Ознакомиться со списком актуальных вакансий можно на https://career.pixelplus.ru.

Тестовые задания представлены в 2-х уровнях сложности.

Общие требования и пожелания

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

Схема получения и сдачи задания

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

Что такое битрикс, что должен уметь программист битрикс

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

Под битриксом чаще всего имеется ввиду продукт «Битрикс — Управление сайтом». Часто можно встретить слово «БУС», что это такое? «БУС» — это и есть продукт «Битрикс — Управление сайтом».

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

Многих притягивает название «1С Битрикс», они видят приставку и так как у многих пользователей установлены продукты от этой компании, то и сайт стоит делать на продукте от такой же компании. Но на самом деле, компания 1С просто приобрела подразделение битрикс и теперь только занимается доработками системы. Хотя система и сложная, и в большинстве случаев разработка на другой CMS была бы проще и дешевле, хороший маркетинг делает свое дело, поэтому многие пользователи хотят сайт только на этой CMS.

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

Что должен уметь программист битрикс? Он должен быть хорошо подготовлен, лучше, чтобы он был сертифицирован. Можно пройти такому разработчику онлайн-экзамен под видео-камерой и получить сертификат. Сертифицированный программист битрикс должен уметь установить, настроить и доработать систему до нужного функционала. Если нужна помощь – оставьте заявку.

Поддержка и доработка сайта 1С-Битрикс

Доброго времени суток!

Меня зовут Андрей, я программист — WEB разработчик.

Предлагаю оперативную поддержку и доработку (программирование) сайтов на 1С-Битрикс. Раскрутку в поисковых системах с оптимизацией сайта. Беру сайты на сопровождение, обеспечение их бесперебойной работы. Общий опыт с Битрикс более 5 лет.

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

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

Могу заниматься

Программирование, доработка сайта

  • Программирование, верстка шаблонов вывода
  • Доработка модулей, компонентов
  • Установка дополнений из Marketplace, доработка их под требования заказчика
  • Устранение программных ошибок и сбоев
  • Интеграция с 1С-Предприятие, Яндекс-Маркетом, платежными системами

Поддержка, сопровождение сайта

  • Верстка текстов, размещение фото, видео, баннеров
  • Добавление новых страниц или целых разделов
  • Администрирование пользователей, поддержка функционала
  • Резервное копирование с последующим восстановлением
  • Установка обновлений, новых версий (при наличии оплаченной поддержки)
  • Консультации по работе с 1С Битрикс

Установка, перенос сайта

  • Помощь в выборе хостинга для 1С-Битрикс
  • Установка или перенос сайта на другой хостинг
  • Настройка c оптимизация параметров хостинга (в том числе VPS-хостинг)
  • Тестирование, устранение ошибок, повышение производительности

Раскрутка в поисковых системах Яндекс, Google

  • Внутренняя оптимизация сайта 1C Битрикс под требования поисковика
  • Ведение рекламы в Яндекс, Google и соцсетях
  • Естественное продвижение в выдаче поисковых систем
  • Консультации по оптимизации, продвижению

Порядок работы, стоимость

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

Стоимость от 500р до 700р за час в зависимости от объема и постоянства работ. Прежде всего, интересует постоянное сотрудничество. Мелкие одноразовые работы, особенно 1-2 часа, не интересны, т.к. значительно возрастают издержки времени (соответственно цена). Оплата почасовая, исходя из конкретно затраченного общего времени по факту. То есть вы платите в минимальном объеме. Также возможна фиксированная ставка в месяц. Начать работать могу только уже имея конкретное задание и административный доступ к панели управления Битрикс.

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

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

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

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

Добавить комментарий