If you have control of your data model, design its structure and endpoints around user goals. Then expose that layer as directly as possible in the UI.
That's probably a half-decent summary of domain-driven design.
If you have control of your data model, design its structure and endpoints around user goals. Then expose that layer as directly as possible in the UI.
That's probably a half-decent summary of domain-driven design.
Not necessarily. You design your data model to prioritize (1) correctness and (2) performance. It doesn't have to resemble the UI at all, as long as the UI can fit on top of it with some abstractions.
Some examples that come to mind: - video games with their entity-component systems; - high-performance text editors like VS Code. [1]
[1] https://code.visualstudio.com/blogs/2018/03/23/text-buffer-r...
I wasn't advocating a single-layer data model or speaking against common data structures, just saying the structure of the data should follow directly from user goals.
Correctness and performance are normally the top user goals.