Devicely Flashcards
(21 cards)
Como você pensou na separação das camadas do seu projeto?
Separei por responsabilidade: API, Application, Database e Domain, visando desacoplamento.
Você seguiu alguma arquitetura específica como Clean Architecture?
Baseei-me nos princípios da Clean Architecture, isolando lógica de negócio e usando DI.
Por que usou mapeamento manual ao invés de AutoMapper?
Para ter controle total, facilitar debugging e evitar dependência externa.
Como você trataria esse projeto se ele precisasse escalar para múltiplos domínios?
Modularizaria o domínio e adotaria microsserviços se necessário.
Você teve preocupação com performance usando EF Core?
Usei AsNoTracking, evitei Includes desnecessários e utilizei o Count antes da execução da query pra evitar carregamento desnecessário.
Por que trocou Guid por int como chave primária?
Int melhora indexação e performance em paginação.
Pensou nos riscos de migrations automáticas?
Sim, em produção usaria pipelines com validação e rollback.
Como você adicionaria autenticação e autorização?
Usaria JWT com Identity ou Azure AD e decoraria rotas com Authorize.
Como você protegeria informações sensíveis?
Com variáveis de ambiente e serviços como Key Vault ou Secrets Manager da AWS.
Que validações adicionaria para proteger a API pública?
Rate limiting, logs com alertas e CORS (se possível).
Por que focou os testes na camada de serviço?
É onde está a lógica de negócio.
Se novos devs entrassem amanhã, o que você deixaria preparado?
README, diagrama/desenho e treinamentos.
Que decisões técnicas você tomou para facilitar futuras mudanças?
Usei DTOs, interfaces, separei responsabilidades, clean code.
Você vê acoplamentos hoje que poderiam gerar problemas?
O DeviceService centraliza muita lógica; SRP pode melhorar.
Se a API recebesse 10x mais requisições, onde poderiam haver gargalos?
No banco; mitigaria com cache pool.
Como garantir consistência transacional?
Com transactions.
Com milhões de devices, a estrutura atual aguenta?
Sim com índices, mas pode exigir cache e paginação otimizada.
Pensou em logs e observabilidade?
Sim, usaria Kibana ou Dynatrace.
O que deixaria pronto para um time ágil trabalhar bem?
CI/CD, Sonar, testes automatizados e padrões de PR.
Usou algum design pattern?
Sim: Repository (Database) e DI. E muitos princípios de Clean.
Se você pudesse refatorar hoje, o que mudaria?
Separaria validações do service e adicionaria cache e versionamento.