Skip to content

rusinov-artem/gophermart

Repository files navigation

gophermart

Это дипломный проект курса "Go-разработчик" Яндекс.Практикум

Основная цель проекта - тренеровка навыка TDD, coverage 100%

При этом хотелось посмотреть на сколько это будет удобно\неудобно использовать только самописные test doubles

Разработку вел руководствуясь идеями из книги growing object oriented software guided by tests и видео

Задание находится тут

alt text

Общие сведения

Makefile

Основные команды которые нужны для разработки находятся в Makefile

make up - запуск проекта

make down - остановка

make down-v - остановка c очисткой бд

make clean - полностью очистить все

make @test - запуск тестов

make @ci-lint - запуск линтера

Запуск тестов через make @test хорошо подходит для одноразового запуска. Например, в pipeline. Но в процессе разработки удобнее зайти в контейнер make bash и запускать тесты внутри контейнера, не выходя из него make test. Так тесты будут отрабатывать чуть быстрее, т.к. не будет каждый раз происходить полной перекомпиляции всего, будет задействован кэш

Структура проекта

app/ - основной код проекта

cmd/ - main

test/- интеграционные тесты

app/action - Все действия, которые умеет выполнять приложение

app/service - Сервисы от которых зависят action

app/crypto - Генерация токенов, хеширования паролей

app/dto - Структуры для обмена данными между слоями приложения

app/error - Ошибки

app/http - Все что касается взаимодействия через http

app/migration - миграции

app/storage - код для взаимодействия с хранилищем

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages