Arquitetura Corporativa para Todos

Artigo / Post

Responsabilidade X Escopo X Exception – Relações pouco exploradas.

Gerar ou não uma exception é um assunto bastante recorrente e muitas vezes gera muita polemica. Eu mesmo escrevi sobre este tema (links ao final).

Vamos tentar agora abordar este tema sobre outro viés : Escolher lançar ou não uma exception baseado no conceito de responsabilidade e Escopo:

  • ➡ Se for sua a responsabilidade (escopo da função/método) evite ao máximo lançar exception.
  • ➡ Se NÃO for sua responsabilidade não precisa inventar e/ou usar nenhum patterns apenas lance uma exception

Simples né…vamos explorar estes conceitos:

👉 Função/método públicos (Com baixo acoplamento): Parâmetros e contratos devem ser validados uma vez que a origem dos dados pode não ser confiável. Isso é sua responsabilidade logo tente evitar as exception.

👉 Função/método públicos (Com Alto acoplamento): Igual ao primeiro , porém no mundo real nem sempre temos implementações corretas e estes contextos têm acoplamento com variáveis e classes internas. Estas variáveis e classes devem ser validadas, mas caso falhem fique à vontade para gerar uma exception. Seu contexto não é responsável por elas, isso é um débito técnico que a falha deve ser corrigida na sua origem e não no seu contexto. Embora seja uma ação mais radical garante que sua aplicação tenha consistência dentro do contexto evitando cenários que deveriam ser tratados antecipadamente, e mais importante não propaga esta inconsistência para demais chamadas subsequentes.

👉 Bibliotecas de uso Específico : Cada biblioteca tem sua complexidade e características mas segue o mesmo princípio dos escopos púbicos.

👉 Bibliotecas de uso Geral (Helpers) : Aqui é uma opinião mais pessoal… Faz um bom tempo que tento evitar este tipo de biblioteca pois ela na maioria dos casos não foi projetada para ter um baixo acoplamento, mas se for o seu caso nem deveria ter validação é se tiver fique à vontade para gerar uma exception, o conceito dela é apoiar/simplificar um contexto maior e este sim deve garantir os parâmetros corretos. Como evitar seu uso ? em .NET Utilizando o conceito de extensions (.NET) ou local functions.

👉 Função/método privados/internos : Escopos internos não deveriam ter validações, e caso existam fique à vontade para gerar uma exception pois a origem do problema está na falta de validação de uma camada superior.

Estas abordagens não devem ser encaradas como “arauto da verdade” nem uma regra a ser aplicada em qualquer contexto, pense isso como um guia para ajudar e evitar debates que muitas vezes sua origem vem da falta de um planejamento mais estratégico da construção da sua aplicação voltada para uma gestão de erro mais efetiva.


Tenham um excelente dia! Eu sou Fernando Cerqueira e entrego estratégias digitais para os desafios do presente, com propostas de inovação para um futuro sustentável.

Compatilhe

0 0 votos
Avaliação Global
0 Comentários
Feedbacks embutidos
Ver todos os comentários
Categorias

Sobre o Autor

Picture of Fernando Cerqueira

Fernando Cerqueira

Eu sou Fernando Cerqueira e entrego estratégias digitais para os desafios do presente, com propostas de inovação para um futuro sustentável. Como arquiteto sênior, aproveito meus mais de 20 anos de experiência em arquitetura e desenvolvimento de software para projetar e implementar soluções baseadas em nuvem que ajudam os clientes a transformar seus negócios com tecnologia.

Outros Posts

Categorias

O Futuro do Tempo Livre e da Desigualdade (Uma Crônica gerada por IA)

No ano de 2030, a inteligência artificial havia se tornado onipresente, transformando todos os aspectos da sociedade. As máquinas realizavam tarefas complexas e rotineiras, liberando os humanos para explorar novas possibilidades. Em meio a essa revolução, duas histórias se destacavam: a de Ana e a de João. Ana era uma

Uso de IA nas Empresas

“Não podemos controlar os ventos, mas podemos sempre ajustar as velas” Esta é a frase (Costuma ser atribuído a muitas pessoas, como Confúcio e Dolly Parton, mas acredita-se que seja uma variação de um pensamento de Cora L. V. Hatch, proferido em uma palestra em 1859) que vem à mente

UUID (GUID)- Algumas provocações Praticas

Tive uma reunião a algum tempo para avaliar uma solução de alta volumetria com persistência de dados; para entendimento das grandezas envolvidas, são alguns terabytes de armazenamento e algo próximo de 1 bilhão de registros.  São números significativos onde, entre outros temas relevantes e uma excelente apresentação pelo time de

Embedded Finance e Banking as a Service (BaaS) – Uma análise de estratégia digital

Conceitos Ambo os conceitos têm relação direta. Uma estratégia digital, para atingir com eficiência seus objetivos, parte do ponto do entendimento do conceito e de seus principais atores: Quem consome e quem fornece este serviço e/ou produto. Embedded Finance: Refere-se à integração de serviços financeiros, como pagamentos, empréstimos e seguros,

"A vastidão do conhecimento disponível contrasta com a incapacidade de transformar essa riqueza em decisões estratégicas, inovação e adaptabilidade."

Silas Serpa | MSc, PhD

Sua Reflexão

0
Adoraria saber sua opinião, comente.x