The principles are a subset of many principles promoted by American software engineer and instructor Robert C. Martin.
Single responsibility principle
A class should have only a single responsibility, that is, only changes to one part of the software's specification should be able to affect the specification of the class.
Um bom exemplo seria uma classe "Encomenda", ela não pode ter métodos para alterar a "NotaFiscal".
Um exemplo mais abstrato seria evitar criar classes multi funções, como encontramos demasiadamente na camada de "serviços", ou mesmo nas "controllers", quando elas deveriam apenas orquestrar os requests e responses, essa é a única responsabilidade das "controllers". Pois, se você começar a implementar muita coisa na "controller", seu código torna-se dependente do framework, e na melhor das hipóteses, torna o teu "domínio" amarrado à web o que nunca é boa ideia.
Outro exemplo seria uma classe "ProdutoValidador", nessa classe não pode haver métodos que alterem o produto, por que a única responsabilidade de um validador, é validar e informar sobre a consistência dos dados.
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 subtypes without altering the correctness of that program." See also design by contract.
Interface segregation principle
"Many client-specific interfaces are better than one general-purpose interface."
Dependency inversion principle
One should "depend upon abstractions, [not] concretions."