Rails, Phoenix, and similar web frameworks are seemingly designed with this as an underlying goal. They make an attempt to help you organize your web service into conceptually separate slices of domain logic ("resources"), and to organize each piece of each slice into a purpose-specific area of the codebase (model, view, migration, controller, services, script, stylesheet, etc). They also create homes for code that must be shared, for cross-cutting concerns (literally called "concerns" in Rails).
So when you're working on a particular problem, you can think of it in terms of "I need to make a change that will affect just models", or "... a change that affects just the Users resource" and clearly identify which parts of the code need to be changed, and which don't.
Of course, this falls apart in the real world, because resources are often tightly interdependent and it's hard to draw clear boundaries.