Перейти к содержимому

Блог

Сторож смотрит половину мест

Каждое число на этом сайте обязано приходить из прогона, который можно повторить, и держится это не на добрых намерениях, а на проверках над ним. За два дня внутри этих проверок нашлось четыре исключения, и каждое исключение было разрешением для того места, которое оно пропускало.

Команда ARMANOS7 мин

Исключение это разрешение

Проверка светится зелёным, когда ничего не нашла там, куда смотрела. Место, которое ей велено пропускать, не остаётся неосмотренным: оно оказывается одобренным.

Снаружи эта разница не видна. Зелёная строка ничего не говорит о размере поля, которое обошли, и сторож над четвертью страниц выглядит ровно как сторож над всеми.

Четыре исключения за два дня

Проверки здесь читают страницы сайта: утверждения на них, числа внутри и ссылки наружу.

Ни одно из четырёх не было сломанной строкой кода. Каждая работала ровно так, как написана, и написанное и было дефектом.

Что проверка пропускалаЧто через неё проходило
Блок, в котором лежит доказательство15 мест из 41, где утверждение пережило код
Все страницы, кроме главнойЧисло, перенесённое рукой, на треть ниже измерившего его прогона
Число, рядом с которым нет слов22 места с итогами прежнего прогона
Одно поле, везде прочитанное как путьЗамер, написанный словом внутри описания ссылки

Пропущенным был блок доказательства

Самое острое из четырёх сидело в проверке, читающей то, что эти страницы утверждают о программе. Одна её строка перешагивала блок в подвале каждой страницы, тот самый, где названы файл и стенд за каждым утверждением.

Именно там утверждение всего точнее, а значит там же устаревшее живёт дольше всего. Из 41 места 15 лежали в нём.

Исключено теперь одно названное поле, а не целый блок, и вторая проверка считает прочитанные внутри доказательства строки и краснеет, когда их становится меньше отметки.

Число в голой клетке

В карточке фактов и в строке таблицы число и объясняющие его слова лежат в разных клетках. Проверка, искавшая число рядом с его же названием, эти две клетки вместе не видит никогда.

Обход теперь несёт с собой соседа: подпись той же карточки или остальные клетки той же строки. Голое число судится рядом со словами, которые его называют.

  1. 1

    Читает клетку

    Число ровно в том виде, в каком оно лежит в файле.

  2. 2

    Несёт подпись

    Заголовок той же карточки или остальные клетки той же строки.

  3. 3

    Судит их вместе

    Число под подписью с именем нашего замера обязано подставляться, а не вписываться.

Откуда здесь берутся числа

Там, где страница несёт имя замера, число подставляется при чтении, а не вписывается.

Счёт проверок получается прогоном всех трёх наборов подряд. Провалившийся прогон не записывает ничего, поэтому сломанный набор не поднимет цифру на главной.

Число показаний, которые снимает программа, берётся из журнала приёмки на отгруженной сборке, а не из списка ожиданий. Список говорит, что должно было случиться, а журнал говорит, что случилось.

Как устроен сторож сейчас

В блоке доказательства поле с именем файла пропускается, а в остальных местах то же поле читается, потому что там это обычный текст для человека.

Сторож над утверждениями считает прочитанные строки и краснеет, когда их становится меньше отметки. Съёжится он незаметно до десятой доли страниц, и упадёт так же громко, как нашедший беду.

Правила вдобавок режут в обе стороны. Дневной темп это подсказка: он красит полосу и ничего не запрещает, и проверка требует, чтобы в коде это по-прежнему было написано. Изменится поведение, и она покраснеет и попросит переписать эти слова.

Чего это не утверждает

  • Это не утверждает, что в проверках не осталось ни одного исключения. Утверждается, что четыре сочтены, названы и сняты, и что каждое записано в том файле, который его теперь закрывает.
  • Это не утверждает, что сторож доказывает качество текста. Написан ли текст для читателя, держат глаза, и делать вид, что это измеряется, здесь никто не станет.
  • Числа выше описывают страницы этого сайта, а не сам браузер. У проверок над программой и над сервером свои наборы со своими потолками.

Где это можно увидеть самому

Файлы ниже можно открыть.

Проверка того, что страницы говорят про дневной темп
apps/web/test/потолок-это-ориентир.js
Проверка того, что число замера не вписано рукой
apps/web/test/числа-не-вписаны-рукой.js
Сами числа и прогон, который их записывает
apps/web/measured.json · apps/web/scripts/сосчитать-проверки.js
Имя замера подставляется при чтении страницы
apps/web/content/чтение.ts

Вопросы

Почему не проверять всё подряд?
Некоторые поля действительно путь к файлу, и проверка, запрещающая в них это слово, потребовала бы убрать правду. В блоке доказательства это поле пропускается, а в описании ссылки то же поле читается.
Как заметить пропущенное место?
По тому, сколько прочитал сторож над утверждениями. Число строк ниже отметки красит прогон, даже когда больше ничего не случилось.
Почему зелёный сам по себе мало значит?
Потому что зелёный говорит только про то поле, где искали. Размер этого поля и есть главный вопрос.
Это как-то касается самого браузера?
Нет. Эти проверки читают страницы, которые вы читаете сейчас, а у браузера свои наборы со своими замерами.
Можно увидеть числа за утверждением?
Блок с именем файла и стенда стоит у каждой страницы, кроме оглавлений разделов.

Посмотрите, что отвечает ваш браузер

Проверка читает 12 значений, и эта цифра сосчитана по самой проверке, а не вписана сюда.