Boa tarde, Leonardo! Tudo bem?
Entendo que esteja com dificuldade de compreender esses princípios, eles são um pouco complicados e nada fáceis de absorver. Particularmente falando, apenas conseguir entendê-los após muita leitura e ver em diferentes contextos e formas de conteúdo.
O segundo que você comentou, imagino que seja o princípio de substituição de Liskov - LSP. Como é um princípio que teve como base de construção o ambiente acadêmico, a sua definição por si só é apresentada de forma um pouco complexa. Porém, para ajudar a sua compreensão, podemos defini-lo da seguinte forma:
"Esse princípio diz que uma classe derivada deve ser substituível pela sua classe base. Isso significa que uma classe que estende outra classe, não deve apresentar comportamentos inesperados."
Por exemplo, se temos uma classe que faz a validação de um usuário e nessa classe há um método de validação que retorna um boleano, porém quando essa classe é herdada por outra e no método dessa outra classe o retorno for uma lista esse princípio acaba sendo ferido.
Então, de forma resumida, a classe filha que extende a mãe deve realizar as mesmas funcionalidades, assim entrando no termo de substituição, onde a classe filha poderá substituir a classe mãe.
Para melhor compreensão, lhe indico o seguinte artigo e vídeos:
Espero ter ajudado e caso ainda continue sem compreender este princípio, estarei à disposição.
Grande abraço e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.