TypeScript Design Patterns
上QQ阅读APP看书,第一时间看更新

Chapter 2. The Challenge of Increasing Complexity

The essence of a program is the combination of possible branches and automated selections based on certain conditions. When we write a program, we define what's going on in a branch, and under what condition this branch will be executed.

The number of branches usually grows quickly during the evolution of a project, as well as the number of conditions that determine whether a branch will be executed or not.

This is dangerous for human beings, who have limited brain capacities.

In this chapter, we are going to implement a data synchronizing service. Starting by implementing some very basic features, we'll keep adding stuff and see how things go.

The following topics will be covered:

  • Designing a multi-device synchronizing strategy
  • Useful JavaScript and TypeScript techniques and hints that are related, including objects as maps and the string literal type
  • How the Strategy Pattern helps in a project