UI Design Patterns: let’s clean up our language
I’ve seen several developers recently give or refer to presentations on “UI Design Patterns” and then proceed to talk about Model-View-Controller, Model-View-Presenter, and Model-View-ViewModel.
I think as an industry we need to push our language a bit.
MVC, MVP, and MVVM are UI Architecture Patterns; they refer how to organize UI-level code so that it is modular, cleanly separated, and easy to maintain.
On the other hand, UI Design Patterns, sometimes called UX Patterns, attempt to document common interaction challenges and the existing affordances or established design principles that have proven effective in addressing those challenges.
The difference, I would argue, is that architecture patterns focus on execution principles (how to organize code) while design patterns focus on experience principles (how to organize information, flow, visual cues, etc).
Here are a few examples to help illustrate the difference.
UI Architecture Pattern examples
- Recapping UI Architectural Patterns
- Choosing a UI Pattern (MVC, MVP, and ASP.Net MVC)
- WPF Apps With The Model-View-ViewModel Design Pattern
UI Design Pattern / UX Pattern examples
20 Jul 2010 05:13 pm davidalpert 3 comments
While your terms make sense, the term design pattern is widely understood to mean what you call architectural patterns. For better or for worse, that’s it’s common usage, and I try to talk in the language that the majority of my audience understands…
I agree 100% with the value of using language that your audience understands.
The point I was making above is that the specific phrase “UI design pattern” evokes something different to designers and UX-minded people than it does to server-side or back-end developers while adding the word “architecture” does not change the meaning for those folks already expecting the pattern to be an architectural one.
Small steps to clarify our language and speak with more precision can go a long way towards building bridges between audiences.
Hmmm. IMHO, the MVC, MVVM, and MVP patterns mentioned here have very little to do with UI at all, other than the fact that the UI is a component of the pattern. Really, they’re software architecture patterns. The UI has no knowledge of the underlying pattern and is merely a component of said pattern. It doesn’t care. So calling it a UI anything seems a misnomer.
I do agree completely with your distinction between using the word design versus architecture. Let’s be explicit.