170 похожих чатов

Привет! Просмотрел пару статей на тему "Clean architecture, DDD" и т.д. Там

в основном делают разделение на handler’ы, repository, service и в каждой из папок пишется логика для всех сущностей (работа с (например) юзером размазана по этим папкам), а потом последовательно прокидывают зависимости (db -> repo -> service -> handler) и собирают все в одном файле (app.go, условно)

Я хочу вынести так называемые фичи в отдельные папки - например user и чтобы там уже была вся работа с ним (и хэндлеры, и репозитории, и сервисы)

Собственно, вопрос:
Могу ли я вынести всю логику работы с юзером в отдельную папку и также просто подключать в общий репозиторий, сервис и хэндлеры? Или это уже немного не совсем верный путь и надо сделать как-то по-другому? (Для меня важно достичь разделения фичей по своим директориям, а не раскидыванием работы с ними по всем папкам)

Заранее благодарю за ответы и прошу прощения за столь длинное сообщение!

10 ответов

19 просмотров

Так вроде чистая архитектура и направлена на то , что ты делишь проект на бизнес сущности. И в каждой папке бизнес сущности и будут слои чистой архитектуры (User содержит Delivery, Usecase, repository)

Layered архитектура обычно плохо пахнет, ddd как раз про другое

Это прям перпендикулярно чистой архитектуре.

Ден-Ковалев Автор вопроса
Ден Ковалев
Вы про первую часть сообщения?

По мимо этого что вы смешивайте в одну кучу, так ещё и на разных уровнях условный user может быть разным.

Ден-Ковалев Автор вопроса
Ден-Ковалев Автор вопроса

Почти Подключение к бд - само по себе и потом его прокидывать по все репозитории А так - да, логику работы с юзером вынести в отдельную директорию (но как понял, это не совсем хорошо, о чем я в итоге думал сделать)

Ден Ковалев
Принял А в каком плане - разный?

В зависимости от бизнес контекста у него будет разный набор полей

Ден-Ковалев Автор вопроса
Dmitry
В зависимости от бизнес контекста у него будет раз...

Хм, принял, благодарю Могу вас еще попросить скинуть +- нормального чтива о ddd (внутри экосистемы го и вне)?

Ден-Ковалев Автор вопроса

Да, вот только об этом подумал, что прокидывание чужого репозитория будет совсем плохой кашей.. Благодарю!

Похожие вопросы

Обсуждают сегодня

Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
48
Всем привет! Скажите, никто не пытался уменьшить размер процесса ssl, которые ассоциируется с открытым соединением (не помню точное название этого процесса, но там была какая-...
Алексей
20
а проверьте, собирается ли у кого сейчас транк лазаря через делюкс? у меня вот: fpcupdeluxe: info: Lazarus Native Installer (BuildModuleCustom: UserIDE): LazBuild: building Us...
Iluha Companets
20
Мне тут приспичило встроить в программу форматировние текста SQL, расставить переносы строк и отступы так, чтобы лучше читалось. Я что-то свое изобразил, оно после ключевых сл...
Sergey Bodrov
11
This is a big issue. Just by being a citizen of a country, you are denied to contribute to Open Source software: https://youtu.be/L5Ec5jrpLVk?si=1iIuHnMPbCB4anV-
Sharuzzaman Ahmat Raslan
72
добрый день. возможно ли изменить цвет окон лазаруса? Как?
Budemposmotret
35
Господа, а кто-нибудь сталкивался с размещением на TTabControl/TTabSheet множества контролов (> 100) с последующими External: Access violation? Вот буквально на ровном месте. ...
Dmitry
29
А какие существуют способы обработки ошибок выделения памяти в ядре? Т.е., допустим, есть функция, которая возвращает адрес свободной страницы в физической памяти и диапазон в...
disba1ancer
51
Добрый день. Опять снова хочу обратиться к вам за помощью. После создания проэкта stack new, lazy.nvim + nvim-lspconfig/haskell-tools + hlint, ormolu из mason + hls из ghcup ...
Nannk
8
Does anyone have some zeroday's left?
Wito!d ♥️🩷
44
Карта сайта