@nikpoltoratsky
By Nikita Poltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
- Hexagonal Architecture
- Onion Architecture
- Screaming Architecture
- Clean Architecture
- Data, context
- Boundary Control Entity Architecture
- etc.
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
Independent of (UI, DB, External agencies, tools and so on)
Testable
Reduce coupling
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
Dependency Rule
@nikpoltoratsky
Dependency Rule
@nikpoltoratsky
So, Why do we need it?
@nikpoltoratsky
@nikpoltoratsky
You may not need it
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
{
"nx-enforce-module-boundaries": [
true,
{
"allow": [],
"depConstraints": [
{
"sourceTag": "ui-components",
"onlyDependOnLibsWithTags": ["ui-components"]
},
{
"sourceTag": "admin",
"onlyDependOnLibsWithTags": ["ui-components", "admin"]
},
{
"sourceTag": "client",
"onlyDependOnLibsWithTags": ["ui-components", "client"]
},
{
"sourceTag": "*",
"onlyDependOnLibsWithTags": ["*"]
}
]
}
]
}
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
|-- core
|-- -- [+] authentication
|-- -- [+] footer
|-- -- [+] guards
|-- -- [+] http
|-- -- [+] interceptors
|-- -- [+] mocks
|-- -- [+] services
|-- -- [+] header
|-- -- core.module.ts
|-- -- logger.service.ts
|-- auth
|-- layout
|-- logger
|-- etc....
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
@nikpoltoratsky
What we learned
@nikpoltoratsky
Thank you for your time!
@nikpoltoratsky
@nikpoltoratsky