@PTPPAction · Post #2184 · 02.07.2024 г., 14:14
#dev#ted423#merged 推荐下载 feat: oshen remove uneed cdn commit feat: oshen remove uneed cdn
TGINSIGHT SIMILAR POSTS
Изходен канал @clockstackwheels · Post #973 · 20.04
В C# есть модификатор доступа internal, который закрывает свойство или метод для всего, кроме текущей сборки (сборка это по сути группа пространств имён). И это чертовски удобно для построения правильной архитектуры по DDD — ты делаешь домен отдельной сборкой без внешних зависимостей, у сущностей закрываешь сеттеры и другие поля модификатором internal, а бизнес-правила с открытыми методами уже пишешь в агрегатах, которые содержат эти сущности. Агрегаты объявлены в той же сборке, так что они могут с сущностями делать что угодно, но слой приложения уже сможет вызвать только метод агрегата. Пример. Есть бизнес-процесс, который включает в себя две сущности: письмо и прикреплённый к нему документ. У каждой из этих сущностей разные жизненные циклы, но письмо можно отправить только в том случае, если статус документа "Согласован". Мы делаем агрегат "письмо с документом" и там public-метод отправки письма сначала проверяет статус документа, а потом вызывает internal-метод отправки в сущности письма. Снаружи (вне домена) вызвать сразу отправку письма невозможно. Но как эту задачу решают разработчики на других языках? Я совершенно не понимаю, как сделать хорошую архитектуру без internal. Окей, в некоторых языках вообще нет вменяемого ОПП и системы типов, но и к таким ребятам я бы не подходил с вопросами об энтерпрайз-архитектуре. Однако, многие серьёзные проекты пишутся на Java или, скажем, Go, что делают разработчики там? Может, кто-нибудь знает, и расскажет мне в комментариях? #dev
Hashtags
Общо глобално търсене
@PTPPAction · Post #2184 · 02.07.2024 г., 14:14
#dev#ted423#merged 推荐下载 feat: oshen remove uneed cdn commit feat: oshen remove uneed cdn
@PTPPAction · Post #2145 · 25.06.2024 г., 12:46
#dev#ted423#merged 推荐下载 fix(pterclub): fix uploads count and rename the level name commit fix(pterclub): fix uploads count and rename the level name
@PTPPAction · Post #2132 · 24.06.2024 г., 14:44
#dev#ted423#merged 推荐下载 feat(yemapt): update level name and requirements and add extra info commit feat(yemapt): update level name and requirements and add extra info * fix(yemapt): update level name and requirements (#1919) * fix(yemapt): add user uploads size / seeding count and size / bonus
@PTPPAction · Post #2129 · 24.06.2024 г., 14:42
#dev#ted423#merged 推荐下载 fix(ssd): system message count. commit fix(ssd): system message count.
@PTPPAction · Post #2118 · 22.06.2024 г., 05:12
#dev#ted423#merged 推荐下载 fix(hddolby): noseed tag commit fix(hddolby): noseed tag
@PTPPAction · Post #2115 · 22.06.2024 г., 05:06
#dev#ted423#merged 推荐下载 feat(hdb): support exclusive tag commit feat(hdb): support exclusive tag
@PTPPAction · Post #2112 · 21.06.2024 г., 05:48
#dev#ted423#merged 推荐下载 fix: category name commit fix: category name 使用官方名
@PTPPAction · Post #2104 · 19.06.2024 г., 14:59
#dev#ted423#merged 推荐下载 fix: remove wrong config commit fix: remove wrong config https://github.com/pt-plugins/PT-Plugin-Plus/issues/1798
@PTPPAction · Post #2098 · 12.06.2024 г., 08:45
#dev#ted423#merged 推荐下载 fix(xhb): 更新升级条件 commit fix(xhb): 更新升级条件
@PTPPAction · Post #2093 · 11.06.2024 г., 08:29
#dev#ted423#merged 推荐下载 feat(u3d): seeding status (#1901) * feat(blu): remove domain xyz * feat(u3d): support seeding status * fix(u3d): remove wrong progress * feat(aihter): support complete status * Revert "fe
@PTPPAction · Post #2090 · 11.06.2024 г., 03:30
#dev#ted423#merged 推荐下载 feat(u3d): seeding status (#1901) * feat(blu): remove domain xyz * feat(u3d): support seeding status * fix(u3d): remove wrong progress * feat(aihter): support complete status * Revert "fe
@PTPPAction · Post #2073 · 07.06.2024 г., 09:05
#dev#ted423#merged 推荐下载 feat(blu): remove domain xyz