Конференция завершена. Ждем вас на HighLoad++ в следующий раз!

Test-Driven Development для Go: зачем и как

GolangConf: Другое

Доклад отклонён

Целевая аудитория

Go-разработчики, кто: - не слышал о TDD. - слышал, но не понял, в чём профит.

Тезисы

«Как это вообще — писать тесты на Go, когда ещё нет кода?»

С концепцией Test-Driven Development я познакомился в те времена, когда ещё писал на Python. Идея была интересная: лучше понимаешь требования задачи, потому что нужно сразу написать тесты.

После перехода на Go захотелось взять с собой в новый стек уже знакомые best practices — в частности, TDD. Но не всё прошло гладко. Python — динамический, там можно глубоко залезть в структуру класса, удобно мокать. В Go с этим оказалось сложнее.

Но при более пристальном вглядывании выяснилось, что и в Go не всё так плохо: есть готовые библиотеки, нет значительных барьеров и, главное, — есть профит от TDD.

В докладе расскажу об особенностях TDD для Go: в чём заключается концепция, какие есть плюсы и минусы, когда её стоит использовать. Расскажу теорию и покажу примеры, а также поделюсь наводками на полезные ресурсы для тех, кто решит попробовать.

Надеюсь, будет полезно для тех, кто пока не успел познакомиться с TDD, и для тех, кто уже знаком, но пока не увидел для себя профита от TDD.

Бэкенд-разработчик в Авито Авто. До этого в основном писал бэкенд веб-сервисов и системные утилиты на разные случаи жизни. Пришёл в Go из Python.

Авито

На Авито каждый может найти что-то своё среди миллионов частных объявлений и предложений компаний по всей России: от квартиры и автомобиля до работы и кандидатов на вакансии. Сервис делают 800 инженеров. У нас небольшой монолит на PHP, больше тысячи микросервисов на Go и Python, фронтенд на JavaScript, базы данных PostgreSQL, MongoDB и Redis, автоматические тесты, обученная на данных система модерации и поисковый движок Sphinx. Нашим продуктом каждый месяц пользуется треть населения России.

Видео