Ingeniería de software

Preguntas y respuestas para profesionales, académicos y estudiantes que trabajan dentro del ciclo de vida de desarrollo de sistemas

5
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 parte …

6
¿Qué puede salir mal en el contexto de la programación funcional si mi objeto es mutable?
Puedo ver los beneficios de los objetos mutables frente a los inmutables, como los objetos inmutables que eliminan muchos problemas difíciles de solucionar en la programación de subprocesos múltiples debido al estado compartido y de escritura. Por el contrario, los objetos mutables ayudan a tratar con la identidad del objeto …

3
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); } } Pregunta 1: ¿Es por return new StreamReader(filename);dentro for loop? o el hecho …



3
¿Cómo diseñaría un método TryParse que proporcione información detallada en caso de un error de análisis?
Al analizar la entrada del usuario, generalmente se recomienda no lanzar y capturar excepciones, sino usar métodos de validación. En .NET BCL, esta sería la diferencia entre, por ejemplo, int.Parse(produce una excepción en datos no válidos) y int.TryParse(devuelve falsedatos no válidos). Estoy diseñando el mío Foo.TryParse(string s, out Foo result) …
9 c#  .net  api-design 

5
¿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 base …

4
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 implementaciones. La clase principal que acepta IAmbientContext con …


2
¿Diseño adecuado para evitar el uso de dynamic_cast?
Después de hacer algunas investigaciones, parece que no puedo encontrar un ejemplo simple para resolver un problema que encuentro a menudo. Digamos que quiero crear una pequeña aplicación donde pueda crear Squares, Circles y otras formas, mostrarlas en una pantalla, modificar sus propiedades después de seleccionarlas y luego calcular todos …


2
¿Qué datos deben almacenarse como 'Reclamación'?
En ASP.Net Core, encuentro que la Claimsautorización es un método muy poco concreto. Podemos agregar cualquier cosa como ClaimTypey ClaimValueemparejar; grupos, nombre, apellido, brithdate, canAccessThisURI, isEditor, etc. Sin embargo, este enfoque (que almacena todo lo que se puede almacenar como reclamos) creará una gran tabla de reclamos que incluye el …


4
¿Es una buena idea tener una instalación de lenguaje generador como `rendir`?
PHP, C #, Python y probablemente algunos otros lenguajes tienen una yieldpalabra clave que se usa para crear funciones generadoras. En PHP: http://php.net/manual/en/language.generators.syntax.php En Python: https://www.pythoncentral.io/python-generators-and-yield-keyword/ En C #: https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/yield Me preocupa que, como característica / facilidad del lenguaje, yieldrompa algunas convenciones. Uno de ellos es a lo que me …


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.