Engenharia de software

9
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...

9
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...

9
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,

9
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);...

9
Por que DateTime.Month é um int?

Em C #, a DateTimepropriedade Monthpossui um tipo de int(um número inteiro assinado de 32 bits), mas seu intervalo sempre será de 1 a 12. Quais são as razões pelas quais a equipe do C # escolheu intum tipo numérico menor, como byte(número inteiro não assinado de 8