1. no silver bullet.
2. customer requirements are fundamental to all designs.
3. Use your ProgramCustomers are your customers. Do not treat colleagues as improper customers or customers as improper customers.
4. the only criterion for judging the advantages and disadvantages of the design is that the customer is very uncomfortable to use.
5. Good abstraction or poor abstraction depends on how your needs change.
6. Reading Book. Save () only means that you do not understand what the software is.
Although Oo was not mentioned above, I made some supplementary lessons: the classic meaning of OO is "encapsulation + inheritance + polymorphism", which cannot be called oo if it is missing. object-based and OO are not the same thing.
Let's talk about another basic logic problem: You cannot assume that A is oo first, and then, because a does not use inheritance and polymorphism, it proves that OO can only be encapsulated.