Essa pergunta apareceu em mais de uma das minhas 100+ entrevistas. A resposta abaixo é o jeito que eu treinei para explicar, em inglês, porque é em inglês que você vai precisar responder.
Five principles for clean, maintainable, scalable code.
Single Responsibility: a class/function does ONE thing.
Open/Closed: open for EXTENSION, closed for MODIFICATION — add new behavior WITHOUT changing existing code.
Liskov Substitution: replacing a parent class with a child must not break anything; the child honors the parent's contract.
Interface Segregation: don't force a class to implement methods it doesn't need — many small interfaces beat one fat one.
Dependency Inversion: high-level modules should NOT depend on low-level modules; both depend on ABSTRACTIONS.
Ler é fácil. Falar isso em inglês, sob pressão, com alguém avaliando, é outra história. No VagaGringa esse tópico vira flashcard com repetição espaçada, cai em quiz e entra no simulado.
Treinar este tópico no app