Ingeniería de software

9
contexto ambiental vs inyección de constructor

Tengo muchas clases principales que requieren ISessionContext de la base de datos, ILogManager para el registro e IService utilizado para comunicarse con otros servicios. Quiero usar la inyección de dependencia para esta clase utilizada por todas las clases principales. Tengo dos posibles...

9
¿Seguir el camino de lo que sé, luego tratar de implementar prácticas correctas de codificación, o comenzar con buenas prácticas de codificación y tratar de evitarlo?

En primer lugar, quiero decir que estoy acostumbrado a hacer programación de procedimientos como mi pasatiempo: estoy tratando de aprender OOP en un par de idiomas y entender la teoría , pero no la práctica. Tengo un proyecto favorito que quería construir, específicamente en PHP con un backend de...

9
Microservicios: MonolithFirst?

He estado investigando arquitecturas de microservicios tratando de obtener una visión general de alto nivel de todos los pros y los contras, cuándo y por qué, etc. Gran parte de la información que estoy leyendo / viendo proviene de ThoughtWorks (Martin Fowler, Neal Ford, et al. Alabama). La mayor...

9
Granularidad de Excepciones

He tenido un debate entre unos pocos amigos y yo. Prefieren excepciones generales como ClientErrorExceptiony ServerErrorExceptioncon detalles como campos de la excepción, mientras que prefiero hacer las cosas más específicas. Por ejemplo, podría tener un puñado de excepciones...

9
Para-si antipatrón

Estaba leyendo en esta publicación de blog sobre el antipatrón for-if, y no estoy muy seguro de entender por qué es un antipatrón. foreach (string filename in Directory.GetFiles(".")) { if (filename.Equals("desktop.ini", StringComparison.OrdinalIgnoreCase)) { return new StreamReader(filename);...

9
¿Por qué DateTime.Month es un int?

En C #, la DateTimepropiedad Monthtiene un tipo de int(un entero con signo de 32 bits) pero su rango solo será 1-12. ¿Cuáles son las razones por las que el equipo de C # eligió intun tipo numérico más pequeño como byte(entero sin signo de 8