Skip to content

Commit 3b6543f

Browse files
committed
Change README
1 parent 5ecf442 commit 3b6543f

1 file changed

Lines changed: 7 additions & 4 deletions

File tree

README.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@
55
66
Система квалификационной классификации участников экспертных сообществ на основе хорошо зарекомендовавшего себя на практике алгоритма спортивной разрядности, где уровень мастерства спортсмена определяется уровнем мастерства других спортсменов.
77

8+
## Golang DDD Framework
9+
10+
Общие файлы проекта были выделены в отдельный [Golang DDD Framework](https://github.com/krew-solutions/ascetic-ddd-go).
11+
812

913
## Бизнес-требования
1014

@@ -135,17 +139,16 @@ Karma bot for Slack: https://karmabot.chat/
135139

136140
Specification Pattern с применением Abstract [Expression Tree](https://docs.microsoft.com/ru-ru/dotnet/csharp/programming-guide/concepts/expression-trees/).
137141

138-
- [Абстрактная реализация + inMemory evaluator](./grade/internal/seedwork/domain/specification/)
142+
- [Абстрактная реализация + inMemory evaluator](https://github.com/krew-solutions/ascetic-ddd-go/tree/main/asceticddd/specification/domain)
139143
- [Конкретная реализация inMemory evaluator без использования рефлекции](./grade/internal/domain/endorser/specifications.go)
140-
- [Абстрактная реализация строителя PostgreSQL-запроса с учетом приоритетов операторов для исключения лишних скобочек](./grade/internal/seedwork/infrastructure/specification)
144+
- [Абстрактная реализация строителя PostgreSQL-запроса с учетом приоритетов операторов для исключения лишних скобочек](https://github.com/krew-solutions/ascetic-ddd-go/tree/main/asceticddd/specification/infrastructure)
141145
- [Конкретная реализация строителя PostgreSQL-запроса с гибкой возможностью маппинга атрибутов](./grade/internal/infrastructure/repositories/endorser/endorser_specifications.go)
142146

143147
Заложена (но до конца не продемонстрирована) возможность просмотра коллекций сущностей внутри агрегата и поиск удовлетворения условия хотя бы одним из элементов коллекции.
144148

145149
Подробности см. [здесь](https://dckms.github.io/system-architecture/emacsway/it/ddd/grade/domain/specification.html).
146150

147151

148-
149152
### Aggregate Encapsulation
150153

151154
Использование Mediator Pattern (часто ошибочно воспринимаемый за Memento Pattern) для гарантирования инкапсуляции агрегата:
@@ -170,7 +173,7 @@ Specification Pattern с применением Abstract [Expression Tree](https
170173
RDBMS устроена немного по другому, нежели агрегато-(документо-)ориентированные хранилища на LSM-tree, - чем больше записей сохраняется за один коммит, тем лучше Performance.
171174
Главное, чтоб не страдал уровень параллелизма, не возникали ожидания и взаимные блокировки.
172175
А как сказал Nick Tune, на операциях Insert взаимные блокировки и ожидания впринципе невозможны, и такие запросы можно пакетировать, что обычно в ORM выполняет UoW.
173-
В данном проекте [продемонстрировано, как этого можно достигнуть без ORM](https://github.com/emacsway/grade/tree/main/grade/internal/seedwork/infrastructure/repositories/batch), а заодно и решить проблему N+1 при загрузке агрегатов из БД.
176+
В данном проекте [продемонстрировано, как этого можно достигнуть без ORM](https://github.com/krew-solutions/ascetic-ddd-go/tree/main/asceticddd/batch), а заодно и решить проблему N+1 при загрузке агрегатов из БД.
174177

175178
Подробности см. [здесь](https://dckms.github.io/system-architecture/emacsway/it/ddd/tactical-design/domain-model/domain-events/domain-events-in-ddd.html#performance).
176179

0 commit comments

Comments
 (0)