Professionalism, Craftsmanship, Discipline
SOLID Principles should be familiar to every professional programmer working with an object oriented language. I like to remind myself of these principles often…
Single Responsibility Principle (SRP): At any given level of abstraction (module, class, function) code should do just one thing.
Open-Closed Principle: Software entities should be open for extension but closed for modification.
Liskov Substitution Principle: Objects in a program should be replaceable with instances of their sub-types without altering the correctness of the program. (See Barbara Liskov)
Interface Segregation Principle: Many client-specific interfaces are better then one general purpose interface.
Dependency Inversion Principle: Depend on abstractions not concrete implementations.
Here’s the Wikipedia link on SOLID principles. You can read about them in Bob Martin’s book “Agile Software Development (Principles, Patterns & Practices).” The ISBN number is 0-13-597444-5.
Another great place to see these principles well articulated is Steven Lott’s course on LinkedIn Learning. You can see it here. (I think you may need to the right LinkedIn subscription to access the content, but there is a free 1 month trial).