Оновити не можна кастомізувати

25 Червня 2020

наступна стаття
Максим Ліске

Back End Developer

Максим Ліске
Оновити не можна кастомізувати

Чи варто оновлювати свій коробковий Бітрікс24? Питання, звичайно, хазяйський, але якщо об'єктивно до нього підійти з усіх боків — так, варто, причому виключно з досвідченим партнером. Бітрікс24 регулярно впроваджує новий функціонал і це не просто доповнення: найчастіше це принципово нові інструменти, аналогів яких немає в більш старших версіях.

Однак оновлення можуть бути не зовсім безпечними для вашої системи і головна причина — кастомизация ядра і різних компонентів. Як ви розумієте, під час оновлень змінені раніше файли перезаписуються, що призводить до втрати всіх напрацювань. Звичайно, є кастомні компоненти, яким не страшні обнови, але подібні речі створюють висококваліфіковані фахівці. У моєму випадку склалася вельми делікатна ситуація, коли перед замовником постала дилема поновлення або кастомного доопрацювання, але довелося вибирати останнє.

Напередодні великих змін

Мені дісталася дуже стара за нинішніми мірками коробка Бітрікс24 версії 17.0.14. Останній раз вона бачила оновлення 1 вересня 2017 року. За цей час відбулося шість релізів Бітрікс24 від "Токіо" до "Лондона" і з'явилася незліченна кількість новинок. Але клієнт також не втрачав часу дарма і обзавівся кастомізованим ядром та файлами шаблону, що було необхідно для вельми динамічного й прибуткового бізнесу.

Згодом наш клієнт зіткнувся зі складною ситуацією: в оновленнях з'явився функціонал, який йому раніше створювали кастомно, а також додалися інші корисні інструменти. Але просто взяти і оновитися було вже неможливо: існувала ймовірність, що окремі елементи Порталу, або весь Бітрікс24 загалом, будуть працювати некоректно. Ну або взагалі не працюватимуть. Найменший простій роботи компанії вартуватиме клієнтові надто дорого, тому було прийнято рішення продовжувати індивідуальну розробку. Сумарно це вийде дешевше і набагато безпечніше.

Позитивні моменти

І якщо з боку замовника все виглядало досить прагматично, для мене, як розробника, цей проект має як позитивні, так і негативні аспекти. Почну з приємного.

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

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

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

  • Логування локальних IP-адрес для всіх подій;

  • Видалення логів відключено на рівні ядра і багато іншого.

Логи (1).png

По-друге є можливість правити все, а не тільки конкретні моменти. За рахунок цього іноді значно скорочується загальний час розробки, оскільки більш ти ні від кого не залежиш.

І, по-третє, — працювати без обмежень кожному програмістові, завжди цікавіше.

Негативні моменти

Для програміста існує і зворотна сторона такого проекту. Іноді доводиться самостійно реалізовувати функціонал, який вже є в нових версіях. Техпідтримка, і це прогнозовано, допомагати не буде і єдиною порадою від них буде — "Будь ласка, оновіться".

Деякі оновлення все-таки хотілось би мати з коробки. Особливо це актуально для тих, що стосуються безпеки. З мого досвіду, замовники часто цікавляться чи можна вибірково встановити саме ці оновлення і нічого при цьому не зламати. Але так не можна.

Відносно завантаження, якщо це фултайм-проект — розробник буде відставати в професійному зростанні від колег, які працюють на проектах з оновленнями. Правда це стосується лише вузькоспеціалізованих знань з Bitrix/Бітрікс24. Ну і коли коли проект завершиться, перейти на новий буде складніше. Головна причина: буде необхідно змінювати звички й підхід до розробки.

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

Конкретний приклад

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

  • Кожен користувач порталу може підключити свою поштову скриньку на GMail до Бітрікс24;

  • Всі листи зберігаються в БД;

  • Перевірка нових листів — щохвилини;

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

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

pasted image 0 (1).png

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

То кастомізурвати чи оновлювати?

За підсумками написаного вище, як замовник, так і програміст повинні зробити власний нелегкий вибір. Для замовника — що буде економічно вигідним. Програмісту ж, безумовно, працювати на подібному проекті буде дуже цікаво, тому що є свобода дій. Але, з огляду на мінуси, всім учасникам процесу потрібно добре подумати чи варто в це вплутуватися.

banner_ukr.png


Схожі статті

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

Ми зв'яжемось з Вами протягом 10 хвилин