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