habralab / garnet-team

Habr Pet-Projects Battle Contest: Group Activity and Rating Network
https://garnet.pet-project.habr.com
MIT License
10 stars 0 forks source link

📓 [ТЕХ] Проекты: Рефакторинг #75

Closed picolino closed 1 year ago

picolino commented 1 year ago

Пользовательская история и сценарии

Техническая история

Дополнительная информация

Рефакторинг

В рамках истории произвести масштабный рефакторинг следующего формата:

  1. Все Service-методы, которые осуществляют различные мутации состояния в базе данных (или отправляют события в шину сообщений) должны превратиться в классы-команды*.

* Команда - это класс, который содержит единственный публичный метод Execute. Наименование команды отражает ее действие. В конце наименования класса-команды добавляется постфикс Сommand. Ограничение: Нельзя использовать команды в других командах. В командах мы используем исключительно репозитории по сущностям.

  1. Все Service-методы, которые осуществляют текущего состояния из базы данных должны превратиться в классы-запросы (Query)**. Наименование запроса отражает его действие. В конце наименования класса-запроса добавляется постфикс Query.

** Query - это класс, который содержит единственный публичный метод Query. Ограничение: Нельзя использовать запросы в других запросах. В запросах мы используем исключительно репозитории по сущностям.

ВАЖНО: Тестовые сценарии (.feature-файлы) не трогаем! Шаги к ним стараемся трогать минимально, а в идеале вообще не трогать.