When you start a new application, one of the first decisions is how to structure your code. Two of the most common patterns are MVC (Model-View-Controller) and MVP (Model-View-Presenter). Both aim to separate concerns — but they do it differently.
The classic pattern splits code into three layers:
MVC is simple and familiar, which makes it great for getting started quickly. The downside is that in complex applications the components can become tightly coupled.
MVP introduces a Presenter that mediates between the View and the Model:
If you're building a small app or prototype, MVC gets you moving fast. If testability and maintainability matter — especially on a growing backend or a UI-heavy product — MVP (or its cousins like MVVM) earns the extra structure.
As someone who works on both UI/UX and backend, I've found that the "right" pattern is the one your team can keep consistent. Architecture is a means to ship better products, not an end in itself.
— Fegi Sucepto Priawan · UI/UX Designer & Backend Developer