1.4 KiB
1.4 KiB
Builders (Deprecated)
This document is deprecated. See BUILDERS.md for the current pattern.
Summary of changes
The architecture has been updated to use Builders instead of Presenters:
Old pattern (deprecated)
lib/presenters/- All transformationslib/view-models/- ViewModels + some presenters
New pattern (current)
lib/builders/view-models/- DTO → ViewModellib/builders/view-data/- ViewModel → ViewDatalib/view-models/- ViewModels only
Why the change?
The old pattern had three anti-patterns:
- Inconsistent naming - Same concept had 3 names (Presenter, Transformer, ViewModelPresenter)
- Inconsistent location - Presenters lived in both
lib/presenters/andlib/view-models/ - Confusing semantics - "Presenter" implies presenting to client, but some presenters prepared data for server templates
What changed?
ViewModel Builders (DTO → ViewModel):
- Location:
lib/builders/view-models/ - Naming:
*ViewModelBuilder - Example:
AdminViewModelBuilder.build(dto)
ViewData Builders (ViewModel → ViewData):
- Location:
lib/builders/view-data/ - Naming:
*ViewDataBuilder - Example:
LeagueViewDataBuilder.build(viewModel, id)
This makes the architecture self-documenting and clean.
See BUILDERS.md for full details.