| Data de elaboração | 31/08/21 |
| Responsável pelo estudo | Alan da Silva Souza - (Acessor), Gabriel Santi Binda - (Acessor), João Vitor Paulino Nobre - (Acessor), Raissa de Sousa Stolduski - (Acessora), Taillon Miguel Gonçalves - (Acessor) |
| Equipe do estudo | Tambaqui |
| Alvo | Clean Architecture |
| Origem | Implementação: casos de novas implementações. |
| Objetivo | O presente estudo, tem como objetivo levantar requisitos, vantagens, desvantagens e aplicação da Clean Architecture ou arquitetura limpa, para aplicação em futuros sistemas desenvolvidos pelo time tambaqui. |
| Documentação correlata (opcional) | https://startecjobs.com/clean-architecture/ ; https://www.objective.com.br/insights/clean-architecture-com-mvvm/ ; http://www.macoratti.net/20/10/aspc_cleanarq1.htm ; https://www.luisdev.com.br/2020/09/29/clean-architecture-com-asp-net-core-parte-1/ |
| Observações |
Glossário
Clean Architecture - Nome em inglês para Arquitetura Limpa
User Interface - Interface do usuário do sistema.
Infraestructure - Camada de infraestrutura do sistema.
Core - Camada «núcleo» do sistema.
Asp.Net Core - Tecnologia de desenvolvimento Web baseada em C# e .Net Core
A Clean Architecture consiste em um diagrama de camadas, em que cada um dos seus componentes possuem suas próprias responsabilidades e cada uma delas tem conhecimento apenas de camadas de dentro, basicamente, a Clean Architecture nos ajuda à organizarmos nosso projeto através de suas responsabilidades, regra de negócio, entidades, etc.
Existem algumas variações na aplicação da Clean Architecture, mas o princípio é sempre o mesmo, separar responsabilidades e organizar em camadas, podemos ter uma visualização dela em um diagrama como na figura 1.

Figura 1: Exemplo de diagrama de Clean Architecture
Podemos ver na figura acima, que existe uma organização em camadas da aplicação, com suas respectivas funções exemplificadas na figura 2 e que serão descritas abaixo:

Figura 2: Asp.Net Core Clean Architecture
Existem inúmeras vantagens de se usar a arquitetura limpa em um projeto Asp.Net Core e em qualquer outro para melhorar seu entendimento e organização como por exemplo:
Existem algumas desvantagens importantes à serem levantadas como:
Após um estudo sobre a Clean Architecture, pode-se concluir que, apesar de suas desvantagens serem relevantes, visto que, depende de um bom alinhamento entre os integrantes do time, as suas vantagens são muito mais notáveis à longo prazo, pois melhora razoavelmente a manutenção e a adição de incrementos dentro do sistema, além da organização do sistema.
[1] MEDEIROS, Felipe. Clean Architecture: o que é arquitetura limpa e como aplicar no desenvolvimento de softwares?. o que é arquitetura limpa e como aplicar no desenvolvimento de softwares?. 2021. Disponível em: https://startecjobs.com/clean-architecture/. Acesso em: 30 ago. 2021.
[2] MICHIURA, Fabio. Clean Architecture com MVVM: o que é, vantagens e como utilizar em aplicações android. o que é, vantagens e como utilizar em aplicações Android. 2020. Disponível em: https://www.objective.com.br/insights/clean-architecture-com-mvvm/. Acesso em: 31 ago. 2021.
[3] MACORATTI, José. ASP .NET Core: clean architecture. Clean Architecture. 2020. Disponível em: http://www.macoratti.net/20/10/aspc_cleanarq1.htm. Acesso em: 31 ago. 2021.
[4] FELIPE, Luis. Clean Architecture com ASP.NET Core. 2020. Disponível em: https://www.luisdev.com.br/2020/09/29/clean-architecture-com-asp-net-core-parte-1/. Acesso em: 31 ago. 2021.