Patterns
The focus on framework development requires learning about different types of software patterns, such as architectural, design, and technical patterns. Knowing about these patterns and what kind of decisions went into implementing them in existing frameworks can assist new framework authors at being successful in their projects.
Architectural patterns
We saw examples of existing architectural patterns such as MVC and MVVM in Chapter 1. JavaScript frameworks have the freedom to choose any type of architectural model as they see fit for their use cases. For example, the component-based architecture is highly relevant in modern frontend frameworks and is used in many systems, especially those that extend the React library for their feature set. In this pattern, each component is encapsulated with its own state, a view, and a particular behavior, and could even consist of nested components.
In backend frameworks, the middleware architectural pattern is often utilized...