Automation розгортайте сходинками

Надійний hook корисний у повторюваній ситуації, передбачуваний за результатом і простий для вимкнення. Починайте з observation, а не з blocking policy: спочатку потрібно побачити, чи matcher охоплює правильну область.

Non-blocking режим підходить для перших експериментів. Blocking застосовуйте лише для вузького, стабільного й добре перевіреного правила.

СходинкаЩо робить
1. Log-onlyЗаписує факт спрацювання без змін
2. Non-blockingПоказує легку перевірку або звіт
3. FormattingЗмінює лише дозволений файл formatterʼом
4. Test/reportЗапускає недорогу перевірку або нагадує про targeted tests
5. Narrow blockingБлокує конкретну ризиковану дію
6. Policy-managedКомандний артефакт із документацією та kill switch

Безпечні перші сценарії

  • форматування зміненого файла;
  • мʼякий lint або короткий звіт;
  • нагадування для чутливого модуля;
  • захист окремого шляху;
  • банер із правилами на старті сесії.

Baseline для format-on-edit

  1. Обмежте matcher вихідною директорією.
  2. Увімкніть log-only і перевірте фактичні шляхи.
  3. Після кількох безпечних сесій додайте formatter.
  4. Передавайте formatter лише змінений файл.
  5. Додайте виключення для generated і snapshot-файлів.
  6. Залиште handler non-blocking.
  7. Перевірте звичайний і виключений файл.
Одна функція hook
after file edit:
  if path matches frontend/src/**/*.tsx:
    format only this file
  if path is generated or snapshot:
    exit without changes

Коли дозволено blocking

Blocking hook доречний лише коли matcher дуже вузький, правило стабільне, команда розуміє наслідки блокування, а існує простий спосіб тимчасово вимкнути або обійти правило. Помилка такого hook може перервати весь workflow.

Якщо automation заважає, поверніть її на попередню сходинку: звузьте matcher, приберіть blocking або перейдіть до log-only.

Канонічне джерело уроку · JavaRush

Відкрити матеріал JavaRush