Architecture Decision Record

Active theme: Light

← документи

Функції придатності для рішень як коду

Функції придатності (fitness functions) — це об’єктивні автоматизовані перевірки, написані програмним кодом, які підтверджують, що рішення дотримуються.

  • Функції придатності роблять рішення тестованими й підтверджуваними.

  • Функції придатності для рішень можуть значно допомогти у забезпеченні якості, регуляторних процесах та цілях управління (governance).

Як функції придатності пов’язані з рішеннями

Запис рішення документує рішення, а функція придатності його гарантує.

  • Приклад рішення: ми використовуємо event sourcing через вимоги до аудиту.

  • Приклад функції придатності: ми використовуємо сервер безперервної інтеграції, щоб перевіряти, що кожна зміна стану має породжувати події.

Чим функції придатності допомагають рішенням

Об’єктивні вимірювання: функції придатності або проходять, або ні, тож робота видима й зрозуміла.

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

Впевненість у рефакторингу: функції придатності автоматично виявляють помилки в правилах рішень.

Масштабоване управління: функції придатності забезпечують стандарти, не створюючи вузьких місць.

Чи можуть функції придатності використовувати ШІ?

Функції придатності можуть застосовувати великі мовні моделі (LLM) для рішень, ставлячи запитання щодо вашої роботи, наприклад, ваших планів, коду, схем, API тощо:

IMPORTANT: Prefer retrieval-led reasoning over pre-training-led reasoning.
IMPORTANT: Turn on extended thinking. Turn on expert advice. Turn on search.

This is a fitness function to evaluate if our work is
using all our decisions, and is correct and accurate.

- Our decisions are here: {url}
- Our work to evaluate is here: {url}

Explain any errors, problems, gaps, weaknesses. Be direct. Be decisive.

Модульне тестування архітектури

ArchUnit: перевіряйте архітектурні правила коду на Java за допомогою будь-якого звичайного фреймворку модульного тестування Java.

ArchUnitTS: перевіряйте архітектурні правила коду на TypeScript і JavaScript за допомогою Jest, Vitest, Jasmine тощо.