198 votos

Es afirmar el mal?

La Go idioma de los creadores de escribir:

Ir no proporcionar afirmaciones. Ellos son sin duda conveniente, pero nuestra experiencia ha sido que los programadores utilizan como una muleta para evitar pensar sobre el correcto manejo de errores y presentación de informes. La correcta gestión de los errores significa que los servidores de continuar la operación después de la falta de errores fatales en lugar de estrellarse. La adecuada generación de informes de error significa que los errores son directa y al punto, ahorrando al programador de la interpretación de un gran choque de seguimiento. Los errores de precisión son particularmente importantes cuando el programador de ver los errores es que no está familiarizado con el código.

¿Cuál es su opinión sobre esto?

321voto

caf Puntos 114951

No, no hay nada de malo en assert , siempre y cuando usted lo utiliza como es debido.

Es decir, se supone que es para la captura de los casos que "no puede suceder", durante la depuración, en oposición a la gestión de errores normal.

  • Afirme: Un fallo en sí mismo la lógica del programa.
  • Control de errores: Una entrada o sistema estatal errónea no se debe a un error en el programa.

108voto

gahooa Puntos 38006

No, ni goto ni assert son malos. Pero ambos pueden ser mal utilizados.

Assert es para comprobaciones de sanidad. Cosas que debe cerrar el programa si no son correctos. No para la validación o como un reemplazo para el tratamiento de errores.

61voto

jalf Puntos 142628

Con esa lógica, los breakpoints son malos también.

Afirma se debe utilizar como una ayuda de depuración, y nada más. "Mal" es cuando intenta utilizarlos en lugar de la gestión de errores.

Afirma están ahí para ayudar a usted, el programador, detectar y corregir problemas que no deben existir y verificar que sus supuestos permanecen fieles.

No tienen nada que ver con el manejo de errores, pero, por desgracia, algunos programadores abusan de ellos como tal, y luego los declaran "el mal".

40voto

arhuaco Puntos 615

Me gusta usar valer mucho. Me resulta muy útil cuando estoy creación de aplicaciones para la primera vez (tal vez para un nuevo dominio). En lugar de hacer muy elegante de comprobación de error (que yo considero prematuro de optimización) I código y rápida de añadir un montón de afirma. Después de que yo sé más acerca de cómo funcionan las cosas tengo que hacer una reescritura y eliminar algunas de las aserciones y cambiar para mejor manejo de errores.

Debido afirma que pasamos mucho menos tiempo de codificación/la depuración de programas.

También he notado que la afirma me ayudan a pensar de muchas cosas que pueden romper mis programas.

30voto

Alex Budovski Puntos 8932

Deben ser utilizados para la detección de errores en el programa. No está mal la entrada del usuario.

Si se utiliza correctamente, no son malos.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X