Справочник · learn-se

Глоссарий

Термины даются на английском — это язык промптов и индустрии. Пополняется с каждым уроком.

TermСмыслЗачем тебе
specification (spec) Описание того, что система должна делать — наблюдаемое поведение, не устройство. Твой главный инструмент: ты пишешь спеку, агент пишет реализацию.
implementation Как поведение достигнуто в коде: файлы, функции, библиотеки. Территория агента. Указывать её без нужды — связывать ему руки вслепую.
behavior Наблюдаемая реакция системы на действие: что видит пользователь, что сохраняется, что отправляется. Единица, в которой формулируется спека и проверяется результат.
acceptance criteria Проверяемые условия «задача сделана»: список наблюдаемых фактов, каждый можно проверить руками или тестом. Отсекает «вроде готово». Агент проверяет себя сам по этому списку.
Given / When / Then Формат сценария: Given — состояние до, When — действие, Then — наблюдаемый результат. Три слова, которые превращают расплывчатое пожелание в проверяемый сценарий.
happy path Основной сценарий, когда всё идёт как задумано, без ошибок и странных условий. То, что ты описываешь первым — но никогда единственным.
edge case Краевой случай: пустой список, последний элемент, нет сети, двойное нажатие, ноль, максимум. 90% багов живут здесь. Названный в спеке edge case — предотвращённая итерация.
scope / out of scope Границы задачи: что входит и что явно НЕ входит / не трогаем. «Out of scope» удерживает агента от попутного рефакторинга половины проекта.
vertical slice Кусок функциональности через все слои сразу (UI → API → БД), а не один слой целиком. Единица, которой стоит нарезать фичи для агента: каждый срез можно увидеть и проверить.
leading word (Leitwort) Компактный концепт, уже живущий в pretraining модели, который якорит целую область поведения в минимуме токенов — потому что рекрутирует приоры, которые модель уже держит. Повторяется как токен, не как предложение. Твой главный рычаг сжатия ТЗ: заменить абзац объяснения одним точным словом (idempotent, debounce, optimistic update).
no-op Строка, которую модель и так выполняет по умолчанию — платишь токенами, чтобы сказать ничего. Тест: меняет ли строка поведение против дефолта? Слабый leading word — это no-op («будь тщательным», когда агент и так тщателен). Лечится более сильным словом, не другой техникой.
ubiquitous language Единый строгий язык между людьми и кодом (Evans, DDD): одно слово несёт один согласованный смысл во всей команде и продукте. Человеческий аналог leading words: если в промптах, доках и коде один термин — агент связывает их и срабатывает надёжнее.
idempotent Операция, которую можно повторить много раз с тем же результатом, что и один раз (повтор не создаёт дубликат, не списывает дважды). Пример сильного leading word: заменяет целый абзац про «защиту от повторной отправки».
debounce / throttle Debounce — выполнить действие только после паузы в потоке событий; throttle — не чаще раза в интервал. Одно слово вместо описания «подожди N мс тишины, потом сделай» (ровно логика индикатора «печатает…»).
atomic Всё-или-ничего: операция либо происходит целиком, либо не происходит совсем; нет частичного состояния. Близнец idempotent: тот про повтор, этот про частичность. «Списать и записать — либо оба, либо ничего».
authentication / authorization Authn — кто ты (установление личности, логин); authz — что тебе можно (права на действие). Не путать под общим «auth». «Только тренер может редактировать» — это authz, не authn.
optimistic / pessimistic Optimistic — действуй сразу, откати при конфликте; pessimistic — заблокируй заранее, остальные ждут. Стратегия при конкурентном доступе. «Показать сохранённым сразу, откатить при ошибке» — optimistic.
strong / eventual consistency Strong — после записи все сразу видят новое; eventual — копии сойдутся со временем, временно расходятся. Сердце офлайн-синхронизации: до синка телефон и сервер расходятся — это eventual, и это норма.
race condition / deadlock Race — итог зависит от того, кто успел первым (недетерминированно); deadlock — двое ждут друг друга и застряли. Оба баги конкурентности. Две вкладки затирают тренировку — race; зависшие транзакции — deadlock.
минимум привилегий / радиус поражения Least privilege — давать ровно ту власть, что нужна задаче; blast radius — насколько велик ущерб, если компонент скомпрометируют. Меньше прав → меньше радиус. RCE-бот по TG урезали до «только отвечает»: при угоне аккаунта максимум ущерба — правка строки, а не команды на проде. Считать по ВСЕМ каналам («--tools ""» не убрал утечку контекста CLAUDE.md).
scope creep Расползание задачи: без явной границы исполнитель (человек или агент) делает больше заказанного — «на всякий случай». Автономный агент без секции «Не входит»/«Стоп-спроси» сам перекроил структуру проекта. Граница задачи — предохранитель от расползания.
гидрация один раз / dirty-guard Форму предзаполняют серверными данными ровно раз и только пока пользователь её не трогал; флаг «dirty» даёт вводу приоритет над прилетевшими данными. Лечит гонку «загрузка после ввода»: без dirty-guard эффект догрузки затирает то, что человек уже напечатал. Баг видит только драйв со временем.
walking skeleton Тончайший срез фичи сквозь все слои (данные→логика→UI), который уже «ходит» — нарочно без деталей (фото, гейтинга, офлайна). С него начинают вертикальную нарезку: сначала живой скелет, потом на него навешивают пласты.
upsert Update-or-insert: одна операция, которая вставляет строку или обновляет существующую по уникальному ключу. Вместе с unique index даёт idempotent-запись «из коробки»: повтор попадает в ту же строку.
signed URL Временная ссылка на приватный файл с подписью и сроком жизни — доступ без публичности бакета. Приватность фото: файл в приватном бакете, наружу отдаётся signed URL только авторизованным (автор, его тренер).
негативный контроль Тест, проверяющий, что система НЕ делает того, чего не должна (доступ запрещён, дубль не создан). Позитивный тест показывает «работает», негативный — «не работает там, где не должно». Нужны оба.
last-writer-wins (LWW) Стратегия разрешения конфликта: при одновременной записи побеждает та, что применилась последней. Безопасен на одиночном скаляре (день чек-ина); опасен на богатых данных (два правят документ → потерянные правки). Часто добавляют оповещение проигравшей стороне.