Engenharia de software

Perguntas e respostas para profissionais, acadêmicos e estudantes que trabalham no ciclo de vida de desenvolvimento de sistemas

1
Nome da técnica para inferir argumentos de tipo de um parâmetro de tipo?
Instalação: Vamos assumir que temos um tipo chamado Iteratorque possui um parâmetro de tipo Element: interface Iterator<Element> {} Então nós temos uma interface Iterableque tem um método que retornará um Iterator. // T has an upper bound of Iterator interface Iterable<T: Iterator> { getIterator(): T } O problema de Iteratorser …

2
Granularidade de exceções
Entrei em um debate entre alguns amigos e eu. Eles preferem exceções gerais como ClientErrorExceptione ServerErrorExceptioncom detalhes como campos da exceção, enquanto eu prefiro tornar as coisas mais específicas. Por exemplo, eu posso ter algumas exceções, como: BadRequestException AuthenticationFailureException ProductNotFoundException Cada uma delas foi criada com base no código de …


5
Microsserviços: MonolithFirst?
Pesquisei arquiteturas de microsserviços tentando obter uma visão geral de alto nível de todos os prós e contras, por que e por que, etc. Muitas das informações que estou lendo / assistindo são provenientes da ThoughtWorks (Martin Fowler, Neal Ford, etc.). al). A maior parte do trabalho de Martin Fowler …

3
Antipadrão for-if
Eu estava lendo nesta postagem do blog sobre o anti-padrão for-if, e não tenho muita certeza de entender por que é um anti-padrão. foreach (string filename in Directory.GetFiles(".")) { if (filename.Equals("desktop.ini", StringComparison.OrdinalIgnoreCase)) { return new StreamReader(filename); } } Questão 1: É por return new StreamReader(filename);dentro for loop? ou o fato …

6
o que pode dar errado no contexto da programação funcional se meu objeto é mutável?
Eu posso ver os benefícios de objetos mutáveis ​​vs imutáveis, como objetos imutáveis, que levam muito tempo para solucionar problemas na programação multiencadeada devido ao estado compartilhado e gravável. Pelo contrário, objetos mutáveis ​​ajudam a lidar com a identidade do objeto, em vez de criar uma nova cópia todas as …




3
Como eu projetaria um método TryParse que fornece informações detalhadas em caso de erro de análise?
Ao analisar a entrada do usuário, geralmente é recomendável não lançar e capturar exceções, mas usar métodos de validação. No .NET BCL, essa seria a diferença entre, por exemplo, int.Parse(lança uma exceção em dados inválidos) e int.TryParse(retorna falseem dados inválidos). Estou projetando meu próprio Foo.TryParse(string s, out Foo result) método …
9 c#  .net  api-design 


4
contexto ambiental versus injeção de construtor
Eu tenho muitas classes principais que exigem ISessionContext do banco de dados, ILogManager para log e IService usado para se comunicar com outros serviços. Eu quero usar injeção de dependência para esta classe usada por todas as classes principais. Eu tenho duas implementações possíveis. A classe principal que aceita IAmbientContext …



2
Design adequado para evitar o uso de dynamic_cast?
Depois de fazer algumas pesquisas, não consigo encontrar um exemplo simples para resolver um problema que encontro com frequência. Digamos que eu queira criar um pequeno aplicativo em que possa criar Squares, se Circleoutras formas, exibi-las em uma tela, modificar suas propriedades depois de selecioná-las e depois calcular todos os …

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.