🤔 Однажды мы с коллегами плотно зарубились на вопросе: "А как нам назвать юзкейс?"
Сначала мы холиварили, является ли логика ретрая запроса частью юзкейса, или же ей место в презентейшне.
📌 С одной стороны, один и тот же юзкейс может понадобиться ретраить по-разному в разных случаях. Где-то надо бесконечно запрос повторять no matter what, где-то надо в какой-то момент ошибку показать, где-то вообще не надо ретраить. И если во всех юзкейсах будет разная логика ретраев, то по обычному названию юзкейса GetUserUseCase будет совершенно непонятно, ретраится ли он внутри – тогда мы теряем атомарность юзкейса, а это его важная часть. Получается, логичнее выносить ретрай из юзкейса в presentation-слой, из которого он вызывается.
📌 С другой стороны, ретрай может быть частью бизнес-логики, и тогда где ж ему ещё быть, как не в юзкейсе.
В итоге пришли к тому, что если уж помещаем ретрай в юзкейс – надо точно указать это в его названии.
И вот как назвать юзкейс, в котором делается бесконечный перезапрос? GetUserWithInfiniteRetryUseCase как-то долго, сложно и не метко.
😏 В итоге пришли к названию GetUserOrDieTryingUseCase и, довольные, разошлись. С тех пор нейминг так и живёт уже 3 года =)
Post #171
1.29K

- 😁 15
- 🔥 7
- ✍ 4
- ❤ 2