Ingeniería de software

47
¿Por qué C # permite propiedades en las interfaces?

En C #, el siguiente código es válido interface I{ int property{get;set;} } Lo cual no tiene ningún sentido para mí. Esto parece romper uno de los principios más importantes de las interfaces: falta de estado (en otras palabras, sin campos). ¿La propiedad no crea un campo privado implícito? ¿No...

47
Código de estado HTTP para "Procesamiento continuo"

Estoy construyendo una API RESTful que admite tareas de larga duración en cola para un manejo eventual. El flujo de trabajo típico para esta API sería: El usuario completa el formulario El cliente publica datos en la API API devuelve 202 Aceptado El cliente redirige al usuario a una URL única...

47
¿Evitar el vudú `goto`?

Tengo una switchestructura que tiene varios casos para manejar. El switchopera sobre un enumque plantea el problema del código duplicado a través de valores combinados: // All possible combinations of One - Eight. public enum ExampleEnum { One, Two, TwoOne, Three, ThreeOne, ThreeTwo,...

47
¿Se considera pura una función pura memorizada?

Digamos que fn(x)es una función pura que hace algo costoso, como devolver una lista de los factores primos de x. Y digamos que hacemos una versión memorable de la misma función llamada memoizedFn(x). Siempre devuelve el mismo resultado para una entrada dada, pero mantiene un caché privado de...

46
¿Cómo encontrar un mentor de programación? [cerrado]

Decidí aprender programación. He estado leyendo SO durante unos días, y creo que comenzaré con C ++, mientras leo algunos artículos. Conozco un poco los bucles, las matrices, la lógica del programa y los objetos, y necesito que alguien me revise y me ayude con las pequeñas preguntas que recibo...

46
Propósito de 'return self' de un método de clase?

Encontré algo como esto en un proyecto de código abierto. Los métodos que modifican los atributos de la instancia devuelven una referencia a la instancia. ¿Cuál es el propósito de esta construcción? class Foo(object): def __init__(self): self.myattr = 0 def bar(self): self.myattr += 1...