Будни разработчика
14.6K subscribers
1.18K photos
338 videos
7 files
2.02K links
Блог Lead JS-разработчика из Хельсинки
Автор: @bekharsky

По рекламе: https://telega.in/channels/htmlshit/card?r=GLOiHluU или https://yangx.top/it_adv

Чат: https://yangx.top/htmlshitchat

№5001017849, https://www.gosuslugi.ru/snet/679b74f8dad2d930d2eaa978
加入频道
#заметка дня

Только что релизнули обновление продукта, которое шло больше 8 месяцев. Чисто технически это примерно на полгода больше, чем стоило бы.

Поддерживать и чинить баги в легаси-коде — очень сложно. Но знаете что сложнее? Писать новое поверх или рядом.

Легаси код — он работает. Он выверен годами. В нём если и есть баги — они точно не про бизнес-логику и скорее всего зависят от внешних условий или порядка операций.

А новый код — он в лучшем случае бездна. Ему ещё только предстоит доказать свою работоспособность. Да и гарантий, что вы перенесли всю бизнес-логику как надо, нет.

Так что же надо делать?

Тесты, господа. Тесты — они гораздо больше помогают в рефакторинге, чем можно подумать.

И покрывать тестами нужно в первую очередь именно старый код, если уж так охота вообще начать это делать (или потребовались новые фишки).

Протестированный легаси-код перестаёт быть чёрным ящиком. Можно начинать заменять его части или всё целиком на новые, можно пилить новые фичи и костыли не боясь всё неожиданно сломать.

Возвращаясь к нашему релизу — в какой-то момент мы стали одновременно с написанием новых фишек чинить поведение основной ветки и утонули в синхронизации.

Поэтому задачи такого плана надо локализовать как можно точнее. И не распыляться.

Ну а если ваш легаси «чёрный ящик» как-то влияет на своё окружение — вы жёстко попали :)

#legacy #tests
👍15👎2
#такое дня

Playwright-код на иллюстрации — это ваш знак свыше чтобы начать писать тесты.

Нет тестов? Сделай первый прямо сейчас. Просто возьми и напиши один. Юнит, интеграционный, e2e — неважно.

Собственно, соус: небезызвестный в фронтенд-сообществе Кент Доддс (Kent C. Dodds) написал, на первый взгляд, глупый тест: дождаться загрузки главной страницы.

Но не всё так просто. И этот тест его спас.

E2E тест что значит? Значит, end-to-end, от точки до точки. Он не проверяет как работает конкретно ваше приложение.

Задача проверить, как работает система целиком.

И тут оказалось, что Кент просто неправильно сконфигурировал редиректы на сервере :) Не было бы теста — упал бы продакшен. И сиди думай потом.

В общем, котаны. Нет тестов — прямо сейчас сделайте свой первый. Хватит откладывать. Иди уже.

P. S. Это, кстати, напомнило мне уже с точки зрения ведения блога: не бывает постыдных записей или находок. Нет ничего стыдного признаться в том, что ты что-то прочитал в документации или сделал какую-то глупость.

#tests #e2e #playwright
19👍6