Скилл Reference

Граница шва и интеграции

Паттерн: помечайте однострочники бэклога уровня L3+, смешивающие концерн шва/контракта с концерном интеграции/точки вызова; загружается /dr-prd и /dr-plan.

Обзор

Однострочник бэклога не должен объединять два дискретных модульных концерна под одним ID задачи. Если он это делает, задача есть фундаментная задача плюс интеграционный follow-up под одним ID, и интеграционная половина обычно всплывает как вне-скоуп поздно — на /dr-qa — и переносится дальше отдельной пометкой.

Паттерн

Два класса концернов регулярно встречаются вместе в однострочниках, которые следовало разделить:

  • Концерн шва / контракта — определить абстракцию внутри одного модуля: интерфейс, контракт, протокол, конечный автомат, диспетчер. Приёмка — утверждение о форме или компиляции внутри этого модуля.
  • Концерн интеграции / точки вызова — подключить этот шов к вызывающей стороне: флаг командной строки, точка вызова, сквозной путь, проброс в нижестоящий модуль. Приёмка — поведенческое утверждение через границу модуля.

Когда один однострочник L3+ содержит оба класса, обратитесь к оператору до разбора на компоненты: либо разделить на фундаментную задачу (шов) и интеграционный follow-up (точка вызова), либо ограничить критерии приёмки, явно сделав интеграцию опциональной или отложенной — приёмка задачи-шва покрывает только внутримодульный контракт, а обвязку берёт на себя именованный follow-up.

Почему разделять

У двух концернов разные цепочки доказательств и разные определения готовности. Шов готов, когда собирается и проходят его внутримодульные тесты; интеграция готова, когда вызывающая сторона в другом модуле наблюдаемо им пользуется. Смешение в одном однострочнике скрывает границу: план оценивает шов, TDD доводит шов до зелёного, /dr-qa проходит по шву — и только тогда неподключённая интеграция всплывает как вне-скоуп разрыв. Оценка границы на стадии планирования вносит разделение в план, а не обнаруживает его внутри /dr-qa.

Как применять

  1. Для каждой задачи L3+ прочитайте однострочник бэклога и классифицируйте его концерны. Концерн шва называет внутримодульную абстракцию для определения; концерн интеграции называет вызывающую сторону для подключения.
  2. Если присутствуют оба класса, не переходите сразу к разбору на компоненты. Обозначьте оператору выбор из двух вариантов и зафиксируйте решение в разделе «Обзор / Решения» плана.
  3. Как механическое подспорье прогоните по однострочнику рекомендательный сканер check-seam-integration-boundary.sh. Он помечает совместное появление сигналов класса шва и класса интеграции и носит исключительно рекомендательный характер — никогда не является жёсткой блокировкой. Его два списка сигналов — это пол, а не потолок: он может пропустить смешение, сформулированное вне списков, и дать ложное срабатывание на подлинно одноконцерновом однострочнике, случайно содержащем по слову из каждого списка. Финальное решение за планировщиком; сканер лишь поднимает кандидатов.
  4. При разделении интеграционный follow-up получает собственную запись в бэклоге с собственной приёмкой. Если вместо этого ограничиваются критерии приёмки, приёмка задачи-шва должна назвать отложенную интеграцию и сослаться на follow-up, чтобы граница была фальсифицируемой, а не подразумеваемой.

Связь с разделением осей V-AC

v-ac-axis-split разделяет одну группу V-AC, смешивающую детерминистскую и статистическую оси, — разделение одного критерия приёмки по роду доказательства. Этот скилл разделяет один однострочник задачи, смешивающий концерн шва с концерном интеграции, — разделение одной задачи по границе модуля. Оба суть правила «разделить до финализации» на стадии планирования; они применяются независимо и могут сработать на одной и той же задаче.