добавлен словарь категориальных значений HAE → коды HealthKit
- фазы сна, контекст пульса и имена тренировок попадают в реестр `category_value` (миграция 00010): строка хранится дословно, выведенный код лежит рядом отдельной записью, а не полем внутри точки - словарь и синонимы кодов живут в бинаре (`internal/healthkit`); локаль из `Accept-Language` сужает поиск, но в ключ реестра не входит — заголовков в сыром архиве нет - наблюдение входит в отпечаток витрины, выведенный код — нет: он производная от словаря, а не от журнала
This commit is contained in:
@@ -16,6 +16,24 @@
|
||||
единица, которой нет в счётчиках, делает расхождение безадресным: человек
|
||||
видит «не совпало» при неизменившемся числе объектов и принимает по этому
|
||||
необратимое решение о подмене базы.
|
||||
- **Провенанс, входящий в отпечаток, обязан быть явной функцией журнала.**
|
||||
«Кто первым записал строку» — функция порядка свёртки, а он порядку журнала не
|
||||
равен: живой приём и пересборка разойдутся при одинаковом журнале. Там, где
|
||||
провенанс в отпечаток не идёт, слабое правило допустимо и должно быть названо
|
||||
слабым на месте — иначе его скопируют туда, где оно неверно (`bucket` против
|
||||
`category_value`).
|
||||
- **Колонка, производная от бинаря, а не от журнала, в отпечаток не входит.**
|
||||
Кэш чистой функции (код по словарю, справочное имя) в отпечатке превращает
|
||||
всякую правку бинаря в расхождение при побайтно совпавшем журнале — и человек,
|
||||
принимающий по отпечатку необратимое решение о подмене базы, читает это как
|
||||
дефект. Правильность самой производной проверяют её тесты: это другой вопрос,
|
||||
и смешение обесценивает оракул сходимости.
|
||||
- **Граница на число элементов, набираемых из чужого тела, применяется при
|
||||
накоплении, а не при выдаче.** Накопитель без границы растёт вместе с телом,
|
||||
а тело контролирует отправитель; отказ по памяти в фоновой горутине не
|
||||
перехватывается, и перезапуск берёт ту же доставку. Усечение при этом обязано
|
||||
остаться функцией множества (например, N наименьших ключей), иначе порядок
|
||||
элементов на проводе решает состав витрины.
|
||||
- Правило выбора между двумя версиями одних данных объявляется либо **функцией
|
||||
множества версий**, либо явно **функцией порядка журнала** — третьего
|
||||
состояния нет. «Побеждает последняя пришедшая» третьим состоянием и является:
|
||||
|
||||
@@ -23,6 +23,16 @@
|
||||
архиве, и ответ «пересворачивать нечего» произносится с числом.** Утверждение
|
||||
без числа не отличается от предположения, а цена ошибки здесь — необратимое
|
||||
решение о судьбе тел.
|
||||
- **Значение, попадающее в ключ витрины или в словарь, приёмочный тест берёт из
|
||||
`testdata`, а не из литерала в тесте.** Литерал, набранный руками, не
|
||||
воспроизводит невидимые символы источника — Apple шлёт неразрывные пробелы
|
||||
внутри своих строк (находка 24), — и совпадение теста с реализацией доказывает
|
||||
только согласие автора с самим собой.
|
||||
- **Утверждение о таблице-константе обходит саму таблицу, а не её видимые
|
||||
следствия.** Проверка «таблица синонимов плоская», написанная через
|
||||
экспортированные функции, обходит лишь записи, достижимые из словаря: с
|
||||
неплоской таблицей она остаётся зелёной (воспроизведено). Такие утверждения
|
||||
живут во внутреннем тесте пакета и перебирают саму структуру.
|
||||
- **Тест «в логе нет значения» проверяет запись без служебных полей, а не сырой
|
||||
буфер.** Метка времени содержит доли секунды, поэтому искомая подстрока
|
||||
находится в ней сама: проверка на «5.1» краснела примерно раз на сотню
|
||||
|
||||
Reference in New Issue
Block a user