Many years ago, when I held the ASM/C ++ knife, I thought there was nothing I could not write.ProgramAs long as someone in the world can write it out, I can. But what? Writing out does not mean good maintenance, modification, and reuse. Therefore, we consider object-oriented design patterns and so on. The purpose is to abstract them, abstract complex programming models into simple models that are easy to understand and maintain, but abstraction also sacrifices a lot of things, especially efficiency. Therefore, we compromise, compromise between the abstract perfect thinking and the ugly reality. Finally, compromise to the abstract will not be ugly, and the efficiency customer can accept... the architecture is ready;
There are many types of problems we can solve, and there are also many abstract methods. Therefore, there should also be many types of architecture, an architecture that attempts to solve all the problems will inevitably fail to solve any problem. The architecture that solves the problems is too small and often does not have enough market survival. We still need to compromise, compromise on solving problems;
The architecture is actually a compromise!