1. Introdução ao SOLID
SOLID é um acrônimo para cinco princípios de design de software orientados a objetos, introduzidos por Robert C. Martin (Uncle Bob). O objetivo principal é tornar o software mais fácil de entender, manter e estender ao longo do tempo.
2. Atividade Prática: Auditoria de Código
Nesta atividade, você analisará o código do seu Dashboard (Projeto 9) para identificar onde os princípios SOLID podem ser aplicados para melhorar a qualidade arquitetural.
Procure por classes que tenham muitas linhas de código (geralmente Services ou Controllers). Verifique se elas realizam tarefas distintas, como: ler arquivos CSV, fazer cálculos matemáticos, salvar no banco e formatar strings.
- A classe tem mais de um motivo para mudar? SRP
- Você usa
new ClasseConcreta()dentro de outra classe? DIP - Há muitos
if/switchpara decidir o comportamento baseado em um tipo? OCP
Escolha uma dessas violações e aplique a solução:
- Para SRP: Crie uma nova classe para a responsabilidade extraída.
- Para DIP: Crie uma interface e injete-a via construtor ou no Blazor usando
@inject.
3. Exemplo de Refatoração no Blazor
Muitas vezes, colocamos toda a lógica de dados dentro do componente .razor. Veja como melhorar:
Antes (Acoplado):
// Dentro do Dashboard.razor
@code {
protected override async Task OnInitializedAsync() {
// Lógica de leitura de arquivo E processamento de dados AQUI
var data = File.ReadAllLines("dados.csv");
}
}
Depois (Seguindo SOLID):
// 1. Criar Interface
public interface IDashboardService { Task<List<Dados>> GetRelatorioAsync(); }
// 2. Criar Implementação
public class DashboardService : IDashboardService { ... }
// 3. No Blazor
@inject IDashboardService Service