Колко дълго оцелява едно грешно изречение
На 14 август на страницата „За нас“ се появи изречение, според което нарочно не мерим процента на отпадане и времето на страницата, защото и за двете би била нужна сесия, проследявана през отварянията на страници, а за това би бил нужен банер за съгласие на сайта, в който е вграден броячът.
На 27 август пуснахме времето на страницата. Изречението остана.
Тринадесет дни вярно, двадесет и осем часа невярно
Датите са точни, защото хранилището ги знае. Изречението се появява в 22:41 на 14 август. Времето на страницата, в шест степени, се появява в 17:53 на 27 август — и от тази минута втората половина на изречението е невярна. Поправено е в 21:57 на 28 август.
Значи беше вярно тринадесет дни и грешно двадесет и осем часа, което звучи като добро съотношение до следващото наблюдение: нищо в тези двадесет и осем часа нямаше да сложи край на тях. Нито един тест не се провали. Нито една проверка не се задейства. Страницата се показваше, функционалността работеше, а двете тихо си противоречаха на единадесет езика.
Защо никоя проверка не би го хванала
Всяка автоматична проверка в този проект сравнява две неща, които и двете са в системата: брой редове с единадесет, ширина на надпис с мястото, което има, списък с таблици със схемата. Твърдение на страница не може да се сравни с нищо. То е текст за света, а светът в случая беше таблица, създадена в съвсем друга част от кода.
Може да си представим проверка, която претърсва с grep текста „За нас“ за имена на функционалности и ги проверява. Тя би била дълга, крехка и пак би пропуснала интересните случаи, защото изречението не назоваваше таблица. То назоваваше причина: за това би бил нужен банер за съгласие. Тази причина тихо беше престанала да важи.
Какво сложи край
Един въпрос. Някой попита дали показваме процент на отпадане и честният отговор изискваше изречението да се прочете редом с него — и тогава то рухна.
Това е същият механизъм, който по-рано този месец махна от тази страница четири други твърдения, и той не е механизъм, а късмет. Единственото, което подобрява шансовете, е твърдението да се пише достатъчно тясно, за да остане проверимо: не „не мерим X, защото Y“, а „X не е на тази страница“ — изречение, което описва страницата, на която стои, а не причините зад нея.
Какво важи по принцип
Кодът гние шумно. Текстът за кода гние тихо и обикновено загнива в момента, в който кодът става по-добър.
Тринадесет места трябваше да бъдат редактирани, за да се поправи едно изречение: единадесет езикови версии на един низ от интерфейса и два абзаца ръчно написан HTML. Това число си струва да се знае, преди да се напише следващото обяснение, защото то е цената на всяко твърдение, което посяга отвъд страницата, на която е отпечатано.