Size: a a a

Software Design/Architecture/Zen

2021 April 29

АГ

Алексей Гевондян... in Software Design/Architecture/Zen
опрос писал разработчик из первой категории
источник

SB

Sergei Baikin in Software Design/Architecture/Zen
ВОт оригинал
https://web.archive.org/web/20180822100852/http://alistair.cockburn.us/Hexagonal+architecture

Про все что вы написали ничего нет от слова совсем в оригинале
Оснаовная идея очень простая
"позволить тестировать без внешних зависимостей"

Вот из статьи
The ultimate benefit of a ports and adapters implementation is the ability to run the application in a fully isolated mode.


А все что вы читаете далее волные фантазии на тему ничего не имующую общего с одной простой изначальной идеей
источник
2021 May 01

IM

Igor Molochnikov in Software Design/Architecture/Zen
Здравствуйте, коллеги! Прошу совет.
Насколько нормально при гет- запросе, сгенерировать некую сущность, отдать её представление клиенту, а саму сущность сохранить. при этом если будет повторный такой же запрос - отдать уже сохраненную ранее сущность?
источник

Kd

Konstantin dmz9 in Software Design/Architecture/Zen
не идемпотентно
источник

IM

Igor Molochnikov in Software Design/Architecture/Zen
даже если повторный запрос уже стейт не изменит и ответ будет тот же?
источник

🐴🐴

🐴 🐴 in Software Design/Architecture/Zen
кажется это называется "кеширование"
источник

IM

Igor Molochnikov in Software Design/Architecture/Zen
Тут чувствуется какое-то нарушение.. не пойму где это стрельнет
источник

Kd

Konstantin dmz9 in Software Design/Architecture/Zen
гет запрос должен быть идемпотентным, не изменяющим состояние сервера. причем тут повторные запросы
источник

Kd

Konstantin dmz9 in Software Design/Architecture/Zen
пусть сервер ответит 404, клиент отдельной рутиной создаст необходимый ресурс и повторит запрос
источник

IM

Igor Molochnikov in Software Design/Architecture/Zen
В целом ясно.
Но внесу конкретику. Речь идет о формировании и отдаче нового вопроса. При этом новый вопрос может зависить от предыдущих данных ответов.
Была мысль процесить все это при get следующего вопроса, сохранять  текущий вопрос с тем чтобы ждать ответа на него
источник

N

Nikita in Software Design/Architecture/Zen
Привет, читаю clean architecture от дяди Боба, и возник вопрос: обязательно ли всегда делить приложение на слой сущностей и слой юз кейсов? я просто еще до сих пор не совсем понял по каким критериям идет это разделение, и плюс если я на 100% знаю что приложение будет относительно небольшое и код сущностей будет использоваться только в одной кодовой базе, можно ли для упрощения опустить один из слоев?
источник

IM

Igor Molochnikov in Software Design/Architecture/Zen
Думаю, тут скорее не размер приложения играет, а насыщенность бизнес логикой
источник

N

Nikita in Software Design/Architecture/Zen
возможно

тогда такой вопрос: если какое то действие по бизнес логике требует нескольких разных сущностей, это уже выноситься в юзкейс, верно? код в сущностях оперирует только самой же сущностью?
источник

IM

Igor Molochnikov in Software Design/Architecture/Zen
Хотел дописаnm к предыдущему:
При этом сущности все равно будут, надо же что-то сохранять в базу. Те сэкономить получается можно только на слое "юзкейсов", свалив все в контроллер.
источник

N

Nikita in Software Design/Architecture/Zen
та как раз таки нет особого желания делать толстыми сами контроллеры)
источник

IM

Igor Molochnikov in Software Design/Architecture/Zen
сделать сервисные слои тонкими можно если поместить основную логику в сущности. Я несколько раз уже пробовал, столкнулся  проблемой. Могут получиться объекты которые не так просто запихнуть в бд. Это решаемо но получается дорого..
источник

IM

Igor Molochnikov in Software Design/Architecture/Zen
Пришел к выводу что нужно крепко подумать, стоит ли..)
источник

IM

Igor Molochnikov in Software Design/Architecture/Zen
Ну по крайне мере я как-то так и делаю. К моим советам стоит относиться осторожнее. Сам в начале пути )
источник

IS

I Scarab in Software Design/Architecture/Zen
Так не надо смешивать юзкейсы и контроллеры.
Контроллер - интерфейс взаимодействия, он и не должен иметь с бизнес-логикой в юзкейсе ничего общего.
Классический пример  - вызов одной и той же операции через консоль и через вебморду.
источник

AH

Ameer Hamza in Software Design/Architecture/Zen
источник