Size: a a a

JavaScript.Ninja

2021 June 05

IK

Illya Klymov in JavaScript.Ninja
Без HKT мы все равно не можем сделать чтобы invalid state is unrepresentable, поэтому приходится все равно писать тесты, которые решают ту же задачу на долгосроке
источник

IK

Illya Klymov in JavaScript.Ninja
(Речь о typescript)
источник

VK

Vladimir Klimov in JavaScript.Ninja
Я не понимаю как тесты могут решать "ту же задачу"
Типы обеспечивают надежность не только непосредственно строгостью самих типов, а еще и давая возможность делать удобные инструменты для разработчиков
Если чтобы понять тип функции надо лезть и смотреть в тесты - не думаю, что это очень уж удобно и быстро
источник

IE

Ilia Eliseev in JavaScript.Ninja
Я так понимаю тут вопрос в поддержке типов. Время затраченное на поддержку типизации может быть гораздо больше, чем на "пойти посмотреть"
источник

VK

Vladimir Klimov in JavaScript.Ninja
Писать на динамических языках быстрее, чем на статических на старте - это очевидно
Но есть же другие метрики, особенно в долгосрочной перспективе
Как скорость будет изменяться через несколько лет. когда проект и команда разрастутся?
источник

IK

Illya Klymov in JavaScript.Ninja
Вы опять ставите знак между типами и статической типизацией
источник

IK

Illya Klymov in JavaScript.Ninja
Один из проектов живёт 4 года. Скорость команды усредненная по 3 месяцам (velocity) без тс не падает
источник

IK

Illya Klymov in JavaScript.Ninja
Это те данные что у меня есть, из доклада
источник

IE

Ilia Eliseev in JavaScript.Ninja
А как решался вопрос типизации в проектах, с которыми ты сталкивался?
источник

IK

Illya Klymov in JavaScript.Ninja
Рантайм контрактами на границах модулей
источник

IK

Illya Klymov in JavaScript.Ninja
Они в том числе позволяли проверить выполнение ожиданий в стейджинг окружениях, во время тестов и даже когда у клиента возникали проблемы на проде - на проде
источник

IK

Illya Klymov in JavaScript.Ninja
Ставили клиенту специальную куку и отдавали ему бандл со включенными контрактами
источник

VS

Vitaliy Stoliarov in JavaScript.Ninja
тем более, мало у какого заказчика есть деньги на 99% покрытие тестами, а баги вылавливать после деплоя никто не хочет или мануально все перетестировать
источник

VK

Vladimir Klimov in JavaScript.Ninja
Я не занимаюсь статистикой, но мне кажется, что это не очень большая выборка
источник

VK

Vladimir Klimov in JavaScript.Ninja
А если им дать не TS - а какую-то нормальную систему типов, все будет еще медленее
И что, статическая типизация не нужна?)
источник

IE

Ilia Eliseev in JavaScript.Ninja
Забавно, конечно, что часть этих вопросов разбиралась в докладе =)
источник

IK

Illya Klymov in JavaScript.Ninja
А кто сказал про 99. Я как раз и утверждаю, и показал на выборке в 200 человек и 30 проектов что оказалось что тесты и ревью дешевле
источник

IK

Illya Klymov in JavaScript.Ninja
Все как положено, с контрольной группой, и анализом матожидания
источник

IK

Illya Klymov in JavaScript.Ninja
Тесты нужно писать, потому что тс даже в лучшем случае способен поймать только 20 процентов багов в коде
источник

IK

Illya Klymov in JavaScript.Ninja
От тестов никуда не деться
источник