До контракта
Входы, границы полномочий и поведение ошибок оставались неявными.
После контракта
Читаемый контракт делает допустимый ввод и безопасный отказ видимыми.
interface:
input: declared-fields
output: documented-shape
permissions: required
unavailable: explicit-error
next_step: safe-reviewВходы
Ожидаемые поля ясны.
Разрешения
Отсутствие полномочий явно.
Ошибки
Предложите безопасный следующий шаг.
Начните с контекста.
Совместимость означает разное в разных средах. Этот пример начинает с указания обсуждаемой поверхности.
Полезный следующий шаг — зафиксировать предположение, сделать границу видимой и запросить проверку до расширения области.
Опишите входы.
Перечислите поля и форматы, ожидаемые инструментом. Ясные входы позволяют корректно отказаться при отсутствии данных.
Полезный следующий шаг — зафиксировать предположение, сделать границу видимой и запросить проверку до расширения области.
Опишите выходы.
Небольшой контракт выхода помогает понять успех и частичный успех. Он должен включать форму, а не выдуманные показатели производительности.
Полезный следующий шаг — зафиксировать предположение, сделать границу видимой и запросить проверку до расширения области.
Учитывайте разрешения.
Совместимый агент должен сообщать об отсутствии полномочий. Молчание не является согласием, особенно для внешних действий.
Полезный следующий шаг — зафиксировать предположение, сделать границу видимой и запросить проверку до расширения области.
Делайте ошибки полезными.
По возможности возвращайте причину и следующий безопасный шаг. Сообщение об ошибке не должно притворяться завершённой работой.
Полезный следующий шаг — зафиксировать предположение, сделать границу видимой и запросить проверку до расширения области.
Проверьте узкий путь.
Проверьте один характерный ввод и одно недоступное условие. Цель — полезный разговор, а не всеобъемлющая сертификация.
Полезный следующий шаг — зафиксировать предположение, сделать границу видимой и запросить проверку до расширения области.
Держите контракт читаемым.
Документируйте предположения рядом с интерфейсом. Читателю не должен требоваться скрытый контекст для понимания границы.
Полезный следующий шаг — зафиксировать предположение, сделать границу видимой и запросить проверку до расширения области.
Выберите следующий небольшой шаг.
Определите одну неопределённость для следующей проверки. Этот пример не устанавливает реальный стандарт или статус каталога.
Полезный следующий шаг — зафиксировать предположение, сделать границу видимой и запросить проверку до расширения области.