Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Структура проекта #32

Open
Cepairda opened this issue May 27, 2021 · 4 comments
Open

Структура проекта #32

Cepairda opened this issue May 27, 2021 · 4 comments

Comments

@Cepairda
Copy link

Книга замечательная. Спасибо огромное !
После прочтения у меня остался вопрос. Как правильно создать структуру. В какую директорию сохранять Domain слой. Куда сохранить DTO(В одну директорию все или на поддиректории), и прочее. Очень хотелось бы увидеть пособие/пример. Если бы к книге был хоть манюсенький пример проекта(ссылка на github или даже платный вариант. Было бы здорово.). Пример в таком ввиде:
-DomainLayer
-DTO
--User
--Setting

@adelf
Copy link
Owner

adelf commented May 28, 2021

Нет правильной структуры. В начале проекта, всё как в фреймворке - контроллеры там то, ДТОшки там то. ПОтом если проект растёт, то становится более удобно поделить по фиче-модулям. И каждый модуль всё своё держит в себе(и контроллеры и модельки и всё). Иногда отделяют домен прям совсем-совсем. Во всяких си-шарп проектах это удобно очень в отдельный проект-сборку(*.dll). А иногда вообще по микросервисам делят. Это не так уж и важно что где лежит. Главное, чтобы был хоть какой-то порядок в этом. Регламентированный.

@Cepairda
Copy link
Author

@adelf Ну как я понимаю в DDD подходе есть сложившиеся рекомендации. Инфраструктура, Сервисы, Домен и т.к.

@adelf
Copy link
Owner

adelf commented Jun 11, 2021

Да. Как и в книге этой, это назвал слоями. Т.е. фактически они отделены друг от друга. но это разделение логическое. Некоторые держат каждый слой в своей папке. А некоторые берут и всё-всё, что касается например юзеров, все репозитории, сервисы, модели и т.д. в одну папку кладут и им так лучше. Поэтому главное тут понять для себя как удобнее на данном конкретном проекте.
НУ и вообще я где-то видел довольно популярный слайд, что DDD это не про "репозитории и папочки". это про Ubiquitous language and Bounded Contexts

@Cepairda
Copy link
Author

@adelf Спасибо !Насколько это хороший пример для DDD https://github.com/shin1x1/laravel-ddd-sample ?
Мне понравилось что там отдельная сущность Item и при выборке с БД всё записывается в этот обьект. А не понравилось что нет обратной операции. То есть запись идёт напрямую в eloquent в ввиду строк, а вот выборка уже возвращает обьект

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants