Дозакрыты находки ревью по слиянию сущностей
- Правило покрытия получило второй разряд (условный, как у точек), запрет вырождения формы и счёт содержательных элементов ряда: скелет из скаляров и ряд из null больше не затирают маршрут. Победитель внутри доставки стал функцией множества версий — общим помощником с точками, — а провенанс поднимается и при совпавшем хеше, иначе отложенная доставка возвращала витрину к прежнему содержимому. - Одно поле не того типа больше не уносит сущность, а пропуски видны в учётной записи доставки (миграция 00008, NULL = «не измерялось»); каноническая форма считается один раз и вне транзакции; откат бинаря поверх новой схемы отказывает на старте; текст ошибки разбора не несёт значений из тела. - Ревью кода профилем deep (девять проходов) нашло две регрессии и обе закрыты: безусловный второй разряд запирал законный досчёт навсегда, а выбор победителя был квадратичен по числу присланных версий одного ключа.
This commit is contained in:
@@ -10,6 +10,13 @@ import (
|
||||
// database/sql.
|
||||
var ErrNotFound = errors.New("запись не найдена")
|
||||
|
||||
// errNoCandidates — выбор победителя позван на пустом множестве. Нарушенный
|
||||
// инвариант вызывающего, а не свойство данных: множество собирается из карты и
|
||||
// пустым быть не может. Ошибкой, а не паникой, потому что путь проходит внутри
|
||||
// свёртки принятой доставки — отказ обязан быть диагностируемым, а не «index
|
||||
// out of range» в стеке фоновой горутины.
|
||||
var errNoCandidates = errors.New("выбор победителя на пустом множестве версий")
|
||||
|
||||
// ErrBusy — база занята, и повторы транзакции этого не пересидели.
|
||||
//
|
||||
// Доменная ошибка, а не код драйвера: на неё ветвится свёртка. Отказ по
|
||||
|
||||
Reference in New Issue
Block a user