¿Cuáles son los casos límite más comunes que los programadores principiantes descuidan?

Sobrevivimos al caso de borde grande que podría haber sido más un acantilado que un borde: Y2K.

Las fechas son notablemente difíciles de manejar correctamente. Los años bisiestos son predecibles (pero de alguna manera a menudo se pierden), y a juzgar por el reciente segundo salto también pueden ser problemáticos.

Luego hay diferentes calendarios y cambios frecuentes en el horario de verano.

En términos más generales, el manejo de errores casi nunca es una prioridad para los nuevos programadores. Tiempos de espera de red, errores de falta de memoria, disco lleno … estas son condiciones de error comunes que rara vez se manejan con gracia.

Actualización : Jessica Levine me recordó otro fallo de encendido común: terminación de bucle o recursión que hace una suposición errónea sobre el punto final de un valor.

Por ejemplo, si está contando hasta cierto valor, asegúrese de terminar el ciclo cuando se alcanza ese valor o cualquier valor más alto . De lo contrario, el ciclo continuará feliz para siempre si se omite el valor de terminación esperado (o si el valor inicial resulta ser inesperadamente más alto que el valor de terminación).

Además, un problema extremadamente común incluso para programadores experimentados es la falta de validación de entrada. Esta es una causa importante de fallas de seguridad en el software.

Ofreceré una muy común para los programadores que recién comienzan: apagado por 1 errores.

Digamos que tiene un bucle for, que desea ejecutar 5 veces. Inicie el “contador” en 1 y luego pare cuando el “contador <5" sea falso, ¿verdad? Mal, eso se ejecutará por 1 2 3 4, cuatro veces. Deberá comenzar en 0 e ir a <5, o comenzar en 1 e ir a <= 5. ¡Son errores simples como este los que pueden hacer tropezar a un programador principiante!

Cualquier cosa que tenga que ver con tomar cuerdas. Por ejemplo, puede pensar que está obteniendo ‘cadena’ cuando de hecho obtiene ‘sTR-ing, *’.