Часто от программистов PHP можно услышать: «О нет! Только не „Битрикс“!». Многие специалисты не хотят связываться фреймворком, считают его некрасивым и неудобным. Однако вакансий битрикс-разработчиков с каждым годом становится все больше. Уже сейчас программисты, которые работают с «Битриксом», — одни из самых востребованных среди специалистов PHP.
Когда-то я был разработчиком 1С, а увлечение PHP помогло мне вырасти до руководителя подразделения веб-разработки в Neti. Я постараюсь объяснить, почему программистам полезно изучить фреймворк Bitrix.
Как я познакомился с «Битриксом»
Три года назад мне предложили развивать направление веб-разработки. Я согласился, потому что у меня был опыт создания высоконагруженных web-систем.
Первому же клиенту, который к нам обратился, требовался битрикс-разработчик. Заказчику нужно было собрать государственный сервис для поддержки малого бизнеса. Клиент искал профессионала, который разрабатывает для «Битрикса», знает объектно-ориентированное программирование и умеет писать сложные запросы.
У нас еще не было битрикс-разработчиков, поэтому заказчик решил пойти по другому пути и нанять веб-программиста, чтобы он уже на проекте изучил «Битрикс». Я взялся за задачу, где и познакомился с фреймворком. До этого я не работал с «Битриксом» и четкого мнения о системе у меня не было, хотя я читал много негативных отзывов о нем.
Разобравшись, я понял, что этот фреймворк ни в чем не проигрывает другим для таких задач.
Через полгода я покинул проект, чтобы полностью посвятить себя развитию подразделения. Уже два года я сам собеседую и набираю битрикс-разработчиков. Они востребованнее специалистов, которые работают с другими фреймворками, — восьми из десяти нашим клиентов нужны именно битрикс-разработчики.
Востребованность программистов PHP. Данные на 26 августа 2020 года. Источник: hh.ru.
Но, несмотря на потребности рынка, программисты PHP не хотят связываться с «Битриксом». Одни работали с ним поверхностно и не разобрались в его возможностях, другие не сталкивались с системой вообще, но относятся к ней плохо из-за негативных статей или отрицательных отзывов. Около 30% кандидатов, с которыми связывается наш HR-менеджер, отказываются от собеседования, когда узнают, что нужно писать для «Битрикса». Гораздо больше потенциальных сотрудников отсеиваются еще раньше, когда указывают в резюме, что не готовы работать с фреймворком.
Я хочу объяснить программистам PHP, почему стоит обратить внимание на «Битрикс». Но, чтобы не быть голословным, сначала расскажу, почему клиенты выбирают эту систему и чем продукты фирмы «1С-Битрикс» привлекают бизнес — основного потребителя услуг программирования.
Почему клиенты выбирают «Битрикс»
Основные клиенты фирмы «1С-Битрикс» — владельцы интернет-магазинов и собственники бизнеса. Они выбирают продукты компании потому, что это коробочные решения с большим количеством функций, которые легко ставятся и запускаются с минимальными требованиями.
Интернет-магазины
Клиент, который купит и установит «1С Битрикс: Управление сайтом» в лицензии «Малый бизнес» или выше, сразу получит:
- Встроенную интеграцию почти со всеми российскими службами доставки, будь то Boxberry или «Деловые линии». Чтобы выбрать службу доставки, не надо ничего дополнительно подключать. Достаточно поставить галочку напротив нужного оператора.
- Работающие по нашему законодательству системы онлайн-оплаты (Яндекс-касса, Сбербанк-онлайн).
- Встроенную синхронизацию с «1С: Управление торговлей», «1С: Бухгалтерия», «1С: Зарплата и управление персоналом».
В большинстве зарубежных систем для создания интернет-магазинов нет полного комплекта синхронизаций: например, в них может быть интеграция с нашими службами доставки, но отсутствуют привычные онлайн-кассы. Такой функционал несложно подключить, но необходимо найти программиста, дать ему задание, дождаться, пока он его выполнит. Для предпринимателей это лишние действия, на которые нужны время и деньги. Проще и дешевле выбрать «Битрикс», в котором уже все есть.
В рейтинге CRM по реальным установкам на сайтах за сентябрь 2019 года, составленном компанией iTrack, «1С-Битрикс» занимает первое место среди коммерческих CRM
Корпоративные сайты
Большинство решений на рынке — узкоспециализированные: только CRM или только инструмент для управления проектами. «Битрикс24», корпоративный сайт, объединяет в себе большое количество функционала. Это онлайн-офис с системой управления продажами, настроенными бизнес-процессами, чатом, лентой новостей. В «Битрикс24» можно вести учет рабочего времени, управлять проектами, ставить задачи сотрудникам.
Чтобы собрать нечто похожее самостоятельно, клиенту придется купить много отдельных сервисов и объединить их. Это затратно по времени и деньгам — быстрее и дешевле поставить коробку «Битрикс24». Обилие функций в одном месте подкупает: компании смотрят на продукт с интересом и многие на него переходят.
Потребители видят, что запустить интернет-магазин или корпоративный портал, интегрированный с информационной системой предприятия, на «Битриксе» легко и недорого. Сделать то же самое на OpenCart или WordPress дольше и дороже. Разрабатывать подобное решение на фреймворках Laravel, Symfony или Yii2 более трудозатратно.
Решения для государственных организаций
С продуктами «1С-Битрикс» работают государственные, муниципальные, бюджетные организации. С 1 января 2016 года госучреждения обязаны использовать российское программное обеспечение, входящее в единый реестр. Решения «1С-Битрикс» есть в этом перечне.
Зачем нужны битрикс-разработчики
Теперь, когда понятно, почему потребители выбирают «Битрикс», разберемся, зачем нужны разработчики. У 80% клиентов коробка запускается быстро и просто, и им хватает типового функционала. Такие заказчики ищут специалистов, чтобы поддерживать систему. «Битрикс» — большое и сложное ПО, и, как в любом сложном механизме, в нем встречаются ошибки и баги. Это нормально.
Оставшимся 20% клиентов — чаще всего крупным компаниям — недостаточно базовых возможностей коробки. Они дорабатывают систему под свои бизнес-процессы или пишут решения с нуля, используя «Битрикс» как фреймворк.
Какие доработки чаще всего требуются заказчикам:
- Добавить функционал. Например, на сайты для медицинских центров добавляют функционал онлайн-записи на прием, историю обращений и карточку пациента. Этих возможностей нет в коробке.
- Настроить интеграцию. Часто клиентам нужна интеграция «Битрикса» с другими системами. Например, заказчики хотят, чтобы сотрудник в личном кабинете видел зарплату, остатки отпусков и другую информацию, которую дает отдел кадров. Изначально этих возможностей нет в «Битриксе» и, чтобы все работало, требуется программист.
- Исправить серверную часть. Некоторым клиентам не нравится серверная часть коробки: им кажется, что внутренние механизмы системы работают медленно. Таким заказчикам нужны оптимизация и рефакторинг кода.
Для доработки и поддержки системы клиенты «Битрикса» ищут программистов, которые работают с фреймворком. Но таких специалистов мало.
За что программисты не любят «Битрикс»
Программисты PHP не хотят связываться с «Битриксом» — считают его неинтересным, слишком сложным, тяжелым, неизящным и переоцененным. Гораздо проще найти разработчика Laravel, Symfony или Yii2.
На мой взгляд, пренебрежение к «Битриксу» у программистов PHP появилось по трем причинам.
Плохо представлена документация. Во фреймворке много функционала, который не описан, и, чтобы понять, как он работает, надо лезть в код.
Быть только программистом недостаточно. Коробка содержит много механизмов, которые необходимо знать не только в качестве программиста, но и в качестве аналитика-консультанта.
Например, в «Битрикс24» запросы клиентов часто решаются не программированием, а обычной настройкой. Допустим, клиент хочет, чтобы после завершения задачи стартовал еще один бизнес-процесс. Тут не надо писать код — нужно лезть в настройки. Это, скорее, задача для консультанта, а не для программиста. Но консультантов «Битрикс» сейчас еще меньше, чем разработчиков, поэтому с этими вопросами заказчики идут к программистам, которые не знают, что ответить.
Обе проблемы временные и связаны с тем, что «Битрикс» только развивается и рынок еще не устоялся. Постепенно документацию исправят и произойдет четкое разделение на консультантов и программистов.
«Битрикс» в основном известен как CMS. Большинство разработчиков знают «Битрикс» как CMS для создания сайтов-визиток. 80% программистов использовали только базовые функции и никогда не погружались внутрь, не пытались изучать систему и ядро фреймворка: ORM, Highload-блоки, мастера, визарды. Пощупали «Битрикс» снаружи — не понравилось, а развернуть не попытались. Это как попробовать съесть мандарин в кожуре.
Те, кому, как мне, посчастливилось поработать на серьезных проектах, где на базе «Битрикса» разрабатывают собственный функционал, говорят, что «Битрикс» — полноценный фреймворк. У него есть недочеты, но он позволяет полностью вести разработку.
Становление «Битрикса» похоже на становление 1С
То, что происходит сейчас с «Битриксом», напоминает мне становление 1С. Когда 1С только появился, среди программистов существовало мнение, что это не язык программирования, а ерунда. Над специалистами, которые осваивали 1С, смеялись. Им говорили, что писать на русском — «фи» и что скоро фирма «1С» загнется.
Но этого не произошло. У компании настолько сильный маркетинговый штат, что «1С» завоевала рынок. Сначала она заинтересовала предприятия малого и среднего бизнеса, а программные продукты на базе восьмого ядра привели фирме «1С» крупных клиентов. Сейчас «1С: Предприятие» используют 1 500 000 организаций.
Разработчики, которые стояли на том, что программировать на 1С низко и неинтересно, оказались не правы. Нельзя сказать, что они остались не у дел. Они все равно востребованы, но намного меньше. Большинство специалистов все-таки пришло к тому, что надо перепрофилироваться на 1С.
То же самое происходит с «Битриксом». С каждым годом «Битрикс» все популярнее у клиентов, но большинство программистов PHP не хочет с ним работать, хотя это перспективное и высокооплачиваемое направление.
Перспективы «Битрикса»
Битрикс-разработчики, которые занимаются программированием больших порталов и сложных личных кабинетов, очень востребованы и высокооплачиваемы. В зависимости от региона они зарабатывают от 30 000 (джуниоры) до 200 000 ? (сеньоры). Конечно, когда появится больше программистов и ниша заполнится, общий уровень заработка немного упадет. Но специалисты в этой сфере, скорее всего, будут востребованы всегда.
Специалисты, которые работают с Laravel, Symfony или любым другим MVC фреймворком PHP, останутся востребованными. У этих решений большая доля рынка, но достаточно специфические задачи.
Я считаю, через несколько лет «Битрикс» заберет 80–90% рынка, потому что он в первую очередь ориентирован на бизнес. Если посмотреть красочные фото или видео конференций, посвященных «Битриксу», становится ясно, как на них реагируют владельцы предприятий.
Конференция BitrixPower, прошедшая 4 октября 2019 года в Москве. Источник: группа «1С-Битрикс» во «ВКонтакте»
Судя по динамике последних лет, доли продуктов «1С-Битрикс» продолжат расти. Через несколько лет программистам PHP, чтобы быстро найти высокооплачиваемую работу, пригодится знание «Битрикса» наравне с другими фреймворками. И, возможно, при выборе между несколькими кандидатами именно знание «Битрикса» станет решающим аргументом в пользу одного из них.
gecube
Те же интернет магазины прекрасно делают на фреймворка вроде magento. Никто не говорит, что он идеал или «легкий», но удел битрикса — только лишь СНГ рынок, где зарубежные решения попросту не пустили корни, да и битрикс неоднократно подтверждал негативные отзывы о нем. Ситуация немного выправилась за годы и часть проблем решили, но далеко не все. И я бы 10 раз подумал стоит ли тащить этого монстра к себе ) есть куча альтернативных решений (одно уже назвал), закрывающая те же задачи.
А статья реально похожа на рекламу.
P.s. Я уж не говорю о том, что можно взять чуточку шире и узнать, что веб приложения (вроде интернет магазинов) строят не только на php, но и на других языках — python, java… и совершенно не факт, что решение на битриксе будет самым дешевым
apapacy
Была как то идея поработать с magento но все разбилось о необходимость регистрироваться на их сайте со сливом данных своего работодателя.
kimisa
Магенто 2 очень прожорливый. Для него нужен мощный сервак. Для небольших магазинов не стоит на нем что-то делать. Плюс он довольно сложен в разработке. Слишком много файлов.
symbix
С каких пор сложность разработки определяется количеством файлов?
kimisa
С тех самых пор, как началась разработка. Не забываем про принцип KISS.
Пример — в админке нет встроенного чекбокса (хоте какого черта нет такой элементарной вещи), для его добавления нужно 4 файла. Вроде как бы с точки зрения архитектуры верно. Но для какого-то платежного плагина 40 файлов — это уже перебор.
Плагин — это расширение на системой платежей. И если один плагин столько занимает, то страшно подумать сколько файлов по самой системе оплаты. Иначе говоря сколько нужно времени, чтобы разобраться с 10 файлами или сколько нужно времени разобраться с 40.
Грубо говоря на каждый чих плодить новый класс, это плохо. Не забываем, что на каждый класс тратиться загрузка сервера. Вполне может быть и тут кроется что для его запуска нужен мощный сервак. Ну и в разу увеличивается сложность проекта, т.к. для того, чтобы с чем-то разобраться нужно будет перелопатить кучу файлов.
Если вам так интересно, то можете написать плагин для оплаты и оценить его сложность разработки.
symbix
Контрпример — засунуть весь проект в один файл.
А боязнь создания новых классов угробила архитектуру стольких проектов, что сложно даже представить. SRP не на пустом месте придуман. Сложность не в количестве классов, а в количестве связей между ними (тут, кстати, у Magento как раз все печально).
kimisa
При чем тут боязнь? Разве я писала, что должен быть один класс? Всё должно быть в меру. Создание нового класса должно быть оправдано.
symbix
Оправдана должна быть архитектура, и тут все вертится вокруг принципов SOLID. Количество классов — это вообще не та метрика, количество классов определяется принципом SRP прежде всего. Файлы же тут вообще ни при чем, какая разница, по какому принципу классы по файлам раскидывать (в PHP один принцип, PSR-4, где-то другой, ну и что?).
Magento страдает от злоупотребления наследованием и god objects, ну а в битриксе вообще архитектуры нет, что вышло то вышло :-)
kimisa
Ну вообще-то будет кошмаром в одном файле создавать несколько классов. С таким потом очень тяжело работать.
symbix
В php, конечно, это выглядит дико, а в каком-нибудь python обычное дело. В нормальной IDE навигация по классам, а не по файлам, какая разница, где там что на диске физически?
remzalp
Кажется Вы описали Bitrix.
kimisa
Поверьте мне, не только у Битрикса столько файлов.