Thinking In Layers

Use layered thinking to place logic in the right part of your application before it turns into a mess.