Architecture Decision Record

Active theme: Light

← документи

Фитнес функции за решения като код

Фитнес функциите са обективни автоматизирани проверки, написани с програмен код, които проверяват дали решенията се спазват.

  • Фитнес функциите правят решенията тестваеми и гарантируеми.

  • Фитнес функциите за решения могат значително да помогнат за осигуряването на качеството, регулаторните процеси и целите на управлението.

Как фитнес функциите се свързват с решенията

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

  • Примерно решение: Използваме 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 и др.