Size: a a a

Software Design/Architecture/Zen

2021 May 05

ПГ

Павел Г. in Software Design/Architecture/Zen
Ну это и есть вариант если снаружи обработка истории.
источник

ПГ

Павел Г. in Software Design/Architecture/Zen
Агрегатов заказа много, сущность истории заказ - одна
источник

VS

Vlad Sobenko in Software Design/Architecture/Zen
Всё нормально, только за словом Service могут скрываться куча абстракций, которые поленились именовать. И поэтому эти файлы получаются >1k строк
источник

M

Maxim Kainov in Software Design/Architecture/Zen
Ты можешь назвать EntityService, но оно и так в папке энтити лежит
источник

VS

Vlad Sobenko in Software Design/Architecture/Zen
Лучше тогда EntityServicePhpFile.php
источник

M

Maxim Kainov in Software Design/Architecture/Zen
Есть таблица, которая мапится на ентити. Order, например. Логику в OrderService пишешь. Потом она у тебя растет, начинаешь еще на классы делить. Вот и все.
источник

T🐜

The Ant 🐜 in Software Design/Architecture/Zen
как же srp?
источник

M

Maxim Kainov in Software Design/Architecture/Zen
Для этого и делишь )
источник

T🐜

The Ant 🐜 in Software Design/Architecture/Zen
так может лучше сразу писать нормально. чтобы потом не делить?
источник

VS

Vlad Sobenko in Software Design/Architecture/Zen
Так и делаем. Пишем всё в одном файле проснынёй. Когда доходит до 5к строк - делим на два и так далее.
источник

M

Maxim Kainov in Software Design/Architecture/Zen
Конечно лучше сразу, если знаешь как надо делить
источник

M

Maxim Kainov in Software Design/Architecture/Zen
5к многовато )
источник

VS

Vlad Sobenko in Software Design/Architecture/Zen
Типа Order структурка с данными. OrderService - поведение?
источник

M

Maxim Kainov in Software Design/Architecture/Zen
Да
источник

AV

Alexey Vetrov in Software Design/Architecture/Zen
Добрый вечер. Хотелось бы задать вопросы по вчерашнему примеру, где были чемпионаты, в них были команды, а в них соответственно игроки. Задача - перевести игрока из одной команды в другую, причем трансферы доступны только(!) внутри чемпионата. Кто должен отвечать за проверку команды "не из чемпионата"
Где-то в игроке должен быть метод
function transfer(Team team)
Но разве в методе это будет логично делать?
источник

T🐜

The Ant 🐜 in Software Design/Architecture/Zen
оч просто делить. 1 объект 1 отвественность. И называть их соответствующе. А не обстрактным OrderService
источник

M

Maxim Kainov in Software Design/Architecture/Zen
Смотря что у тебя за ордер, может тебе и одного класса хватит
источник

VS

Vlad Sobenko in Software Design/Architecture/Zen
Куда тулить новую фичу?
Я хз. Посмотри в OrderService на 1257 строке похожий метод. Посотри.
Так?
источник

M

Maxim Kainov in Software Design/Architecture/Zen
Поэтому и делишь на меньшие классы, OrderDeliveryService, и т.д.
источник

VS

Vlad Sobenko in Software Design/Architecture/Zen
Хз. С таким подходом может наоборот удобнее структурки называть с префиксом. Типа UserData и убирать префикс Сервис.
источник