Ingeniería de software

44
¿Por qué es el peor caso para esta función O (n ^ 2)?

Estoy tratando de enseñarme a mí mismo cómo calcular la notación BigO para una función arbitraria. Encontré esta función en un libro de texto. El libro afirma que la función es O (n 2 ). Da una explicación de por qué esto es así, pero estoy luchando por seguirlo. Me pregunto si alguien podría...

43
Principios SÓLIDOS vs YAGNI

¿Cuándo se convierten los principios SÓLIDOS en YAGNI? Como programadores, hacemos compensaciones todo el tiempo, entre complejidad, mantenibilidad, tiempo de construcción, etc. Entre otros, dos de las pautas más inteligentes para tomar decisiones son, en mi opinión, los principios SÓLIDOS y...

43
¿Es un solo objeto de configuración una mala idea?

En la mayoría de mis aplicaciones, tengo un objeto "config" singleton o estático, a cargo de leer varias configuraciones del disco. Casi todas las clases lo usan, para varios propósitos. Esencialmente es solo una tabla hash de pares de nombre / valor. Es de solo lectura, así que no me ha preocupado...

43
¿Es más seguro usar una contraseña varias veces?

He leído algunas veces que al almacenar contraseñas, es una buena práctica 'doble hash' de las cadenas (por ejemplo, con md5 y luego sha1, ambas con sales, obviamente). Supongo que la primera pregunta es, "¿es esto realmente correcto?" Si no es así, por favor, descarte el resto de esta pregunta...

43
Activadores SQL y cuándo o cuándo no usarlos.

Cuando estaba aprendiendo originalmente sobre SQL, siempre me dijeron que solo usara disparadores si realmente lo necesita y opte por usar procedimientos almacenados si es posible. Ahora, desafortunadamente en ese momento (hace unos pocos años), no tenía tanta curiosidad y preocupación por los...

43
Fecha como número de versión del software

Los desarrolladores de software generalmente no usan la fecha como número de versión, aunque el formato AAAAMMDD (o sus variaciones) parece lo suficientemente sólido como para usarlo. ¿Hay algo malo con ese esquema? ¿O se aplica solo a 'tipos' limitados de software (como las producciones...