1
resposta

[Dúvida] Criar uma classe de aplicação para coisas simples?

Vamos pegar o exemplo da aula, sobre matriculas de alunos. Caso tenhamos que deletar ou alterar um dado de aluno, seria necessário criar um arquivo com uma classe na aplicação para cada(Ex: DeletarAluno, AtualizaAluno)?? Minha duvida é que se para todas as funcionalidades, mesmo que simples, seria necessario um abrir um caso de uso?

1 resposta

Oii Marcos, tudo bem?

Na Clean Architecture, a ideia é que cada caso de uso do sistema seja representado por uma classe específica, que encapsula toda a lógica necessária para realizar uma determinada função. Isso inclui operações aparentemente simples como deletar ou atualizar um aluno. A vantagem dessa abordagem é que ela mantém o código mais organizado, facilita a manutenção e a testabilidade, além de promover a separação de responsabilidades de forma clara.

Por exemplo, ao criar uma classe DeletarAluno, você encapsula toda a lógica necessária para essa operação em um único lugar. Isso pode incluir não apenas a remoção do aluno do banco de dados, mas também verificações de segurança, validações, e outras regras de negócio que podem ser necessárias.

Da mesma forma, uma classe AtualizarAluno cuidaria de todo o processo de recebimento dos novos dados, validação dos mesmos e atualização no banco de dados, entre outras possíveis regras de negócio.

Pode parecer um pouco excessivo no início, especialmente para operações simples, mas essa abordagem traz benefícios significativos à medida que o sistema cresce e se torna mais complexo. Ela facilita a gestão de dependências e a evolução do software, além de ajudar na prevenção de bugs.

Então, sim, mesmo para funcionalidades simples, é recomendável abrir um caso de uso específico, seguindo os princípios da Clean Architecture. Isso ajuda a manter o sistema alinhado com os objetivos de uma arquitetura limpa e sustentável.

Um abraço e bons estudos.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software