As a technician, the most basic quality is honesty. "Know to know, do not know to do not know", they do not understand that there is no relationship, to learn, life-long learning, but do not try, this grasp a little bit, that dig a little, as if everything understand, in fact, nothing understand. China advocates complex talent, which is misleading to young people. First lean a technology, and then divergent learning, the first point behind is the right path.
(1) The principle of single responsibility: a class is responsible for only one functional area of responsibility, or can be defined as: In a class, there should be only one reason for it to change
(2) The Richter replacement principle: All references to base class (parent) must be able to transparently use objects of its subclasses
(3) The dependency inversion principle: abstractions should not depend on detail, and details should be dependent on abstraction. In other words, to program for an interface, not for implementation
(4) Interface Isolation principle: the use of a number of specialized interfaces, rather than a single total interface, that is, the client should not rely on those it does not need the interface
(5) Dimitri rule: a software entity should interact with other entities as little as possible.
(6) Opening and closing principle: a software entity should be open to the expansion, the modification closed. That is, the software entity should try to expand without modifying the original code.