Skip to content

Rtuty/library-gRPC-server

Repository files navigation

Запуск проекта:

make docker

Описание архитектуры сервиса

internal - содержит всю внутреннюю логику приложения. Сервис библиотека создается согласно принципу двухуровневой архитектуры (уровень базы данных и транспортный).

internal/app - инстанс сервиса, строится логика и формируется run-метод, вызываемый из cmd/main.

Уровень базы данных

internal/db - взаимодествия с базой данных MySQL

internal/db/(authors||books) - манипуляции с сущностями книга и автор в плоскости БД.

internal/db/transaction - чтобы соблюдать принципы атомарности, согласованности и изолированности при работе с MySql, сервис обработывает sql-запросы в рамках транзакции. Методы query, query row и execute вынесены в данный файл, чтобы следовать принципу разработки DRY, при написании логики в файле манипуляции сущностями. Также, считаю важным уточнить, что в работе с исполняемыми запросами используются параметризованные аргументы, чтобы недопустить возможность sql-инъекции со стороны клиента.

Транспортный уровень

Releases

No releases published

Packages

No packages published