Sobes.tech
Junior — Middle

Pode explicar os princípios SOLID e como aplicá-los no desenvolvimento de software?

sobes.tech IA

Resposta da IA

Os princípios SOLID são cinco regras fundamentais do design orientado a objetos que ajudam a criar código flexível, escalável e fácil de manter:

  1. S — Princípio da Responsabilidade Única Cada classe deve ter uma única razão para mudar, ou seja, ser responsável por uma tarefa.

  2. O — Princípio Aberto/Fechado As classes devem estar abertas para extensão, mas fechadas para modificação.

  3. L — Princípio da Substituição de Liskov Objetos de classes derivadas devem poder substituir objetos da classe base sem alterar a correção do programa.

  4. I — Princípio da Segregação de Interfaces Os clientes não devem depender de interfaces que não utilizam. É melhor ter várias interfaces específicas do que uma única interface universal.

  5. D — Princípio da Inversão de Dependências Módulos de alto nível não devem depender de módulos de baixo nível. Ambos devem depender de abstrações.

Exemplo de aplicação em Go:

// Princípio da responsabilidade única
// A estrutura (classe) é responsável apenas por trabalhar com usuários

type UserRepository interface {
    GetUser(id int) (*User, error)
}

// Princípio da inversão de dependências
// O serviço depende da interface, não de uma implementação concreta

type UserService struct {
    repo UserRepository
}

func (s *UserService) GetUserName(id int) (string, error) {
    user, err := s.repo.GetUser(id)
    if err != nil {
        return "", err
    }
    return user.Name, nil
}

Aplicar SOLID ajuda a escrever código que é mais fácil de testar, expandir e manter.