TGTGInsightтелеграм анализLIVE / telegram public index
← Такты, стеки, два колеса

TGINSIGHT SIMILAR POSTS

Намери подобно съдържание

Изходен канал @clockstackwheels · Post #973 · 20.04

В C# есть модификатор доступа internal, который закрывает свойство или метод для всего, кроме текущей сборки (сборка это по сути группа пространств имён). И это чертовски удобно для построения правильной архитектуры по DDD — ты делаешь домен отдельной сборкой без внешних зависимостей, у сущностей закрываешь сеттеры и другие поля модификатором internal, а бизнес-правила с открытыми методами уже пишешь в агрегатах, которые содержат эти сущности. Агрегаты объявлены в той же сборке, так что они могут с сущностями делать что угодно, но слой приложения уже сможет вызвать только метод агрегата. Пример. Есть бизнес-процесс, который включает в себя две сущности: письмо и прикреплённый к нему документ. У каждой из этих сущностей разные жизненные циклы, но письмо можно отправить только в том случае, если статус документа "Согласован". Мы делаем агрегат "письмо с документом" и там public-метод отправки письма сначала проверяет статус документа, а потом вызывает internal-метод отправки в сущности письма. Снаружи (вне домена) вызвать сразу отправку письма невозможно. Но как эту задачу решают разработчики на других языках? Я совершенно не понимаю, как сделать хорошую архитектуру без internal. Окей, в некоторых языках вообще нет вменяемого ОПП и системы типов, но и к таким ребятам я бы не подходил с вопросами об энтерпрайз-архитектуре. Однако, многие серьёзные проекты пишутся на Java или, скажем, Go, что делают разработчики там? Может, кто-нибудь знает, и расскажет мне в комментариях? #dev

Hashtags

Резултати

Намерени 24 подобни публикации

Търсене: #one3d

当前筛选 #one3d清除筛选

💫⬛️#One3D#Dark#IconPack It's on SALE 🎉 📲 Codes 6DXX5A6HGKHYKBMHC3KFMU2 EZ5N2MZULM1HAB5KTJK0KTD H7XWNTBNS8SE27VWFXAEVVC 0N24NNAY68Y2JWPL8Q34YDC ZUGDH87FLG2GC4NE96WG1HB 6KRV8PPR999Q1U9BKK9JVRU 0CW8ASG24YDGPF3GGGHKWHM DWZ2MBA9377ZWN626AEV0FW WXBS462PWEGEKVLXT5XW8MY ES6PWXK5EX2Q6YSRR9MQC2K 🖥Download Here ⭐️Rate & Review to support me!

💫⬛️#One3D#Dark#IconPack Brand New Release 🎉 📲 Codes PYYJ0G3K1VXQ1KHFKQU9RDT KJX54B3FBTJ6TL53GHRZKFU MZ3P01N6W6GZGZX85SY3Y47 NV2K4JX1L87JLZT57Y4FEG8 1PK21TGPZJYYCWUYF3998U3 9ZGWJK9VCLHCW8A7ZX55KAG L2M4K1FAF06KYSPUZZM92ZV 9AFVNJ74VQG4VUV2AKMZ5F6 LE07CUHSA16KPEQ9CNFP0C0 MYNY3ASFCSR6RHM1XLXGJJZ 🖥Download Here ⭐️Rate & Review to support me!

💫🎨#One3D#Color#IconPack Limited Time SALE 🎉 📲 Codes GVUCZV819C9RU2A4QFCE7RR T63YW5DG0JWRFBAS5UAPFTL EJK3NTY2YQXJ4NT62MYH5RH RKHRGATML4YGP21L1XQM69B JSGJZ4NHM3311040RCU2XJQ 22CURLTGLLABGR18EDX9V3C 88V1Y362K0L6VWMHV4BH29Y W06JZRZWR8X15C8GBTG80ZF G9GUF0URH3TCNCA7GLKRK9E A7YCF0EHKC39SB8T972UDRK 🖥Download Here ⭐️Rate & Review to support me!

12
ПредишнаСтр. 1 от 2Следваща