Скоротила браузерну перевірку якості сайту з 1 636 секунд до 615, запускаючи перевірки від найдовших до найкоротших через пул воркерів, обмежений чотирма потоками, після того як виміряла, що алфавітний порядок коштував 320 секунд проти 224.
Роботу виконано: серпень 2026
615 секунд на візуальні перевірки — замість 1 636
Ситуація. Одинадцять перевірок сайту працюють через браузер без графічного інтерфейсу: розкладка для кожної форми вікна, яку передбачає дизайн, шкала розмірів шрифту, розширення перекладеного тексту, контраст, правила доступності, режим примусових кольорів, розміри маскота, анімація, друк у шести комбінаціях паперу, помилки консолі та візуальна регресія. Запущені по черзі, вони тривали 1 636 секунд — трохи більше ніж двадцять сім хвилин. Перевірку, що триває двадцять сім хвилин, пропускають, а пропущену перевірку не відрізнити від пройденої.
Завдання. Реальний час виконання треба було скоротити настільки, щоб запуск перевірок став звичною дією, а не окремим рішенням, і при цьому не послабити жодної з них.
Дія. Робота почалася з вимірювань. Кожну перевірку заміряли окремо на дванадцятиядерній машині: розкладка — 405 секунд, шрифти — 301, переклад — 282, контраст — 189, доступність — 178 і так далі аж до сімнадцяти. Відповідь визначили два висновки. Запуск усіх одразу виявився повільнішим, ніж по чотири за раз, — 265 секунд проти 224, — бо кожна перевірка сама є браузером, що виконує паралельну роботу, і перевантаження машини коштує більше, ніж дає паралелізм. А порядок «найдовші спершу» обігнав алфавітний майже на третину — 224 секунди проти 320; це класичний результат теорії розкладів, і тут він проявляється тому, що вартість перевірок різниться в двадцять разів. Тож запускач — це обмежений пул робочих процесів, розмір якого визначає кількість ядер, але не менше двох і не більше чотирьох, а завдання в нього надходять від найдовших до найкоротших. Водночас перевірки не звузили, а розширили: тепер вони використовують одну спільну таблицю з двадцяти двох форм вікна, виведену з усіх медіазапитів, які справді є в таблиці стилів, і вже лише через це перевірка розкладки зросла з 95 секунд до 405.
Результат. Увесь набір перевірок тепер триває 615 секунд замість 1 636, хоча самі перевірки стали ширшими, а не вужчими: сумарна послідовна вартість зросла, а реальний час зменшився. Найцінніше тут — вимірювання: обидва рішення, що звучать розумно, — запускати все одразу й запускати в порядку написання — за вимірами виявилися гіршими за альтернативу.
Попередня робота: Побудувала перевірку перед комітом із 22 лінтерів, кожен з яких описується одним рядком, і ще п'ятьох, що заслуговують окремого абзацу, без рівня попереджень і без дозволу на вбудоване вимкнення правил, яка охоплює HTML, CSS, JavaScript, Python, YAML, Markdown, shell, посилання, орфографію, секрети й типографіку. Читати далі: Охопила форматувальником і лінтером 10 242 рядки JavaScript у перевірках якості, з'ясувавши, що це найбільший обсяг коду в репозиторії і єдиний, який ніщо не перевіряло, — виправила 13 зауважень і не вимкнула жодного. Або перегляньте повне портфоліо.
Клієнтам ми розповідаємо це як Страховка, що більше не забирає пів години — подивитися разом з іншими кейсами.
Одна частина довшого переліку — і він увесь на цьому сайті.
Кожен запис написано однаково: ситуація, завдання, що ми зробили і що змінилося.