Chapter 03Field guide
The application layer holds the logic.
The application layer decides what the system does. It turns a request into a rule, a decision, a calculation and a result that the rest of the stack can use.
At the application layer, full stack developers need to understand the core business logic of the system. They should have a good understanding of object oriented programming and be familiar with languages like Java, Python, C# and PHP. They should also have an understanding of design patterns and algorithms.
What the layer owns
The application layer owns the rules that make the product specific. Pricing, permissions, approvals, calculations, workflows and the order of operations belong here. If the interface changes, the logic should still hold. If the database changes, the logic should still express the same business meaning.
Object oriented thinking
Object oriented programming gives a team a way to model concepts, responsibilities and relationships. It is not a guarantee of good design, but it can keep a large system from collapsing into a set of unrelated functions. Java, Python, C# and PHP all offer a route into that style of work.
Patterns and algorithms
Design patterns are shared answers to recurring design problems. Algorithms are the steps that turn an input into a result. A full stack developer does not need to name every pattern in a meeting, but they do need to recognize when a familiar problem is being solved badly.
Code in this layer should make the business rule easy to find. Hidden behavior is a cost that the next developer pays.
Where the layer connects
The application layer receives calls from the web layer and works with the data layer to read and write state. It should not know the shape of every screen, and the screen should not need to know every rule.
04 / Continue Data: follow the state into storageReference shelf
Study the logic.
Language references and design material for the application layer.