Аудит коду проекту на 1С-Бітрікс

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Аудит коду проекту на 1С-Бітрікс
Проста
~2-3 робочих дні
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Аудит коду проекту на 1С-Бітріксі

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

Що перевіряється при аудиті

Аудит Бітрікс-проекту суттєво відрізняється від аудиту довільного PHP-додатку. Бітрікс навязує свої паттерни — компоненти, шаблони, інфоблоки, агенти — та критерії якості прив'язані до них.

Архітектура інфоблоків. Інфоблоки — центральне сховище даних у Бітріксі. Типові проблеми:

  • Використання одного інфоблока для різнорідних сутностей (товари та статті в одному місці)
  • Властивості типу «Строка» замість «Справочник» або «Привязка до елементу» — неможливість фільтрації та зв'язків
  • Відсутність складових індексів на таблицях b_iblock_element_property для часто використовуваних фільтрів
  • Зберігання даних в PREVIEW_TEXT/DETAIL_TEXT замість окремих властивостей — втрата структурованості

Компоненти та шаблони. Перевіряємо:

  • Бізнес-логіка в template.php замість result_modifier.php або кастомного компонента
  • Прямі SQL-запити через $DB->Query() замість ORM або API інфоблоків
  • Невикористовувані параметри компонентів, копіпаст між шаблонами
  • Кастомізація стандартних компонентів через модифікацію ядра (замість class.php спадкування)

init.php. Файл /bitrix/php_interface/init.php — головний індикатор здоров'я проекту. На поганих проектах він містить тисячі рядків: обробники подій, функції, класи, SQL-запити — все в одному файлі. На хороших — тільки підключення автолоадера та реєстрація обробників.

Продуктивність запитів. Включаємо $DB->ShowSQLStat = true та аналізуємо кількість SQL-запитів на сторінку. Нормально: 30-80 запитів. Проблема: 300+ запитів через N+1 проблему: виклики CIBlockElement::GetList() в циклі.

Результат аудиту

Звіт містить не абстрактні рекомендації, а конкретний список:

Проблема Файл/Модуль Критичність Рекомендація
SQL у шаблоні компонента /bitrix/templates/main/components/.../template.php:45 Висока Вилучити в result_modifier.php, використовувати CIBlockElement::GetList()
N+1 при виборці властивостей Компонент catalog.section (кастомний) Висока Використовувати GetNextElement() з PROPERTY_* у $arSelect
init.php 2000+ рядків /bitrix/php_interface/init.php Середня Декомпозиція на модулі, підключення через автолоадер

Критичність визначається по впливу на продуктивність, безпеку та вартість підтримки. Звіт пріоритизований — зверху те, що потрібно виправляти першим.

Інструменти

  • phpstan / psalm — статичний аналіз, виявлення звернень до неіснуючих методів та властивостей
  • PHP_CodeSniffer — перевірка відповідності стандартам кодування
  • Бітрікс «Монітор продуктивності» (perfmon) — профілювання SQL та PHP
  • Xdebug + Cachegrind — детальний профайлінг для виявлення вузьких місць

Аудит займає 2-3 робочих дні для середнього проекту. На виході — документ, за яким можна планувати рефакторинг з зрозумілими пріоритетами та оцінками трудозатрат.