Test-Driven Development для Go: зачем и как GolangConf: Другое

Программный комитет ещё не принял решения по этому докладу
Иван Сушков
Авито

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

Тезисы

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

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

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

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

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

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

Другие доклады секции GolangConf: Другое