Ingeniería de software

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

4
Comprobación del resultado de un constructor en C #
Estoy trabajando en una base de código con un compañero de trabajo que tiene la costumbre de verificar los resultados de un constructor para un nulo de una manera similar a esta Person p = new Person(); if (p != null) { p.Name = "John Smith"; } Mi comprensión del …




6
¿Deberían favorecerse los tipos de excepciones reutilizados sobre los de un solo uso?
Digamos que tengo Doors que son administrados por a DoorService. El DoorServicese encarga de abrir, cerrar y bloquear las puertas que están almacenadas en la base de datos. public interface DoorService { void open(Door door) throws DoorLockedException, DoorAlreadyOpenedException; void close(Door door) throws DoorAlreadyClosedException; /** * Closes the door if open …

2
Constructores de argumento cero y entidades siempre válidas
Recientemente he leído mucho sobre las entidades de dominio Siempre válidas. He llegado a creer que para garantizar que las entidades sean siempre válidas, necesito: 1) Elimine la obsesión primitiva y coloque las reglas de validación / dominio en los constructores de objetos de valor como se explica aquí: https://enterprisecraftsmanship.com/2016/09/13/validation-and-ddd/ …


5
Diseño de API RESTful basada en funciones
Por favor, resuelva una discusión entre un amigo y yo. Actualmente estamos diseñando una API de producto. Nuestra entidad de producto se ve así { "Id": "", "ProductName": "", "StockQuantity": 0 } Las ventas de productos son manejadas por un tercero y están obligadas a informarnos con la cantidad comprada …


4
¿Cuándo escribir métodos de extensión para tus propias clases?
Recientemente vi una base de código que tenía una clase de datos Addressdefinida en algún lugar y luego en un lugar diferente: fun Address.toAnschrift() = let { address -> Anschrift().apply { // mapping code here... } } Me pareció confuso no tener este método en la dirección directamente. ¿Existen patrones …
8 c#  design 

2
Principio de sustitución de Liskov: si el subtipo tiene algún comportamiento adicional implementado, que no está presente en el tipo, ¿se trata de una violación del LSP?
En mi búsqueda por escribir un código mejor y más limpio, estoy aprendiendo acerca de los principios SOLID. En esto, LSP está demostrando ser poco difícil de entender adecuadamente. Mi duda es ¿qué pasa si tengo algunos métodos adicionales en mi subtipo, S, que no estaban allí en tipo, T, …



7
¿Mejor práctica para "continuar" desde dentro de un bucle anidado?
Aquí hay una muestra simplificada. Básicamente, verifica una cadena de una lista de cadenas. Si la verificación pasa, eliminará esa cadena ( filterStringOut(i);), y ya no es necesario continuar ninguna otra verificación. Así continuea la siguiente cadena. void ParsingTools::filterStrings(QStringList &sl) { /* Filter string list */ QString s; for (int …


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.