Обновить нельзя кастомизировать

25 Июня 2020

следующая статья
Максим Лиске

Back End Developer

Максим Лиске
Обновить нельзя кастомизировать

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

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

Накануне больших перемен

Мне досталась весьма старая по нынешним меркам коробка Битрикс24 версии 17.0.14. Последний раз она видела обновления 1 сентября 2017 года. За это время состоялось шесть релизов Битрикс24 от “Токио” до “Лондона” и появилось несметное количество новинок. Но клиент также не терял времени зря и обзавелся кастомизированным ядром и файлами шаблона, что было необходимо для весьма динамичного и прибыльного бизнеса. 

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

Положительные моменты

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

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

  • Были сделаны кастомные confirm-уведомления, в которых по нажатию на одну из кнопок вызывалась форма, в которой можно изменять свойства сделки;

  • Созданы правила чата, по которым рядовые пользователи могут писать только менеджерам и администраторам;

  • Логирование локальных IP-адресов для всех событий;

  • Удаление логов отключено на уровне ядра и многое другое.

Логи (1).png

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

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

Отрицательные моменты

Для программиста существует и обратная сторона такого проекта. Иногда приходится самостоятельно реализовывать функционал, который уже есть в новых версиях. Техподдержка, и это прогнозировано, помогать не будет и единственным советом от них будет — “Пожалуйста, обновитесь”.

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

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

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

Конкретный пример

Добавлю конкретики: вот пример реализации функционала, который есть в новых версиях. Версия 17 значительно отличается от своих потомков где все построено в значительной мере по другому.. В более новых версиях Битрикс24 уже есть собственный полноценный почтовый клиент, который работает со всеми популярными сервисами. А для моего случая почтовый клиент GMail писался вручную с такими свойствами:

  • Каждый пользователь портала может подключить свой почтовый ящик на GMail к Битрикс24; 

  • Все письма хранятся в БД; 

  • Проверка новых писем — один раз в минуту;

  • Реализованы метки, форвардинг, подписи;

  • Синхронизация с GMail двухсторонняя, то есть письма не только выкачиваются, но сохраняются в GMail, а также доступны все действия с ними. 

pasted image 0 (1).png

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

Так кастомизировать или обновлять?

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

Получайте больше вместе с Авиви!


Похожие статьи

Записаться на консультацию

Мы свяжемся с вами в течении 10 минут