Web
BusinessService
DB
Context
UserId
AuthService
ids[]
Web
BusinessService
DB
Context
UserId
AuthService
ids[]
Web
BusinessService
DB
DataService
Context
UserId
Web
BusinessService
DB
query
WHERE userId = '...'
Context
UserId
Web
BusinessService
DB
query
SearchIndex
ids[]
ничего нельзя сделать
слишком мало информации
излишняя связность
слишком много информации
Bill
изначально
не использовался
можем поменять контракт?
а что если кто-то пользуется?
ничего нельзя сделать
слишком мало информации
излишняя связность
слишком много информации
На макро уровне: Bounded context
На микро уровне: Interface Segregation Principle
ничего нельзя сделать
слишком мало информации
возможность злоупотребления
слишком много информации
ничего нельзя сделать
слишком мало информации
возможность злоупотребления
слишком много информации
Принцип наименьшей ответственности:
«не даём возможности что-либо делать, если нет разрешения»
Какая разница кто удалит чувствительные данные?
Client
API
/prospectivesales/{id}/postpone
Что если вместо того, чтобы говорить мне чего нельзя делать, система будет говорить что можно?
Client
API
auth
/prospectivesales/{id}/
CanTransferTo
/prospectivesales/{id}/
TransferTo