2012-07-11 14 views
5

Estoy aprendiendo Levantar ahora. Cuando leí acerca de las plantillas, que entiende que tienen una gran cantidad de cosas que no se typechecked en tiempo de compilación:Elevación y tipo de seguridad

  • plantillas puede contener referencias a fragmentos inexistentes
  • Sitemaps podría referirse a páginas inexistentes
  • métodos de despacho Fragmento toman parámetros de cadena en la que podemos hacer fácilmente un error tipográfico

¿hay alguna alternativa para hacer de este problema menos grave, es decir, corrector código externo u opciones en la biblioteca que permitirían hacer lo mismo pero en un tipo ¿camino seguro? O puede haber otro marco web que sea más estricto en esta relación (puede estar en otro idioma).

+0

Creo que para la mayoría de estos casos, podría ser fácil escribir un validador basado en expresiones regulares. Pero aunque no exista tal cosa, podrías intentar probar tu código: las pruebas adecuadas deberían detectar todos esos errores. – Rogach

Respuesta

1

La comprobación de tipos es una función de tiempo de compilación de lenguajes fuertemente tipados como Scala o Java que permite la verificación de las firmas y de las relaciones entre los tipos. Dichas verificaciones le impedirán pasar un parámetro de tipo Banana cuando se espera un parámetro de tipo Carne, o asignar una Cadena a una variable de tipo Int. Normalmente, en idiomas dinámicos como Ruby o Javascript, esto no es posible

Lo que está buscando no es un comprobador de tipos. No desea verificar que su programa sea sintácticamente correcto, sino que se comporta correctamente, y la solución para eso se denomina prueba automatizada.

es perfectamente posible escribir código que es sintácticamente correcta, pero se comporta mal:

public boolean isTrue(boolean value){ 
     return !value; 
} 

Si usted piensa que a la inversa, ¿cómo se prueba un tiempo de compilación la corrección de una plantilla que necesita ser llenado con algunos datos?

<!-- importing a snippet depending on the value of a variable --> 
<import src="${snippetName}.xml"/> 

No puede, porque todas sus variables en tiempo de compilación no tienen absolutamente ningún valor. Es por eso que las pruebas automatizadas son importantes y los casos de prueba de escritura para su aplicación no pueden ser reemplazados por verificaciones en tiempo de compilación.

+2

Para mí, la comprobación de tipos consiste en encontrar errores en tiempo de compilación. Y muchas de las cosas que no se controlan en el ascensor pueden, en teoría, controlarse. –

+0

Typechecking se describe aquí: http://en.wikipedia.org/wiki/Type_system. Se refiere al análisis de código estático, que como dijo puede convertir algunos errores de tiempo de ejecución en errores de tiempo de compilación. Sin embargo, no es trivial escribir un analizador de código estático, pruébelo ... – Edmondo1984

+2

La comprobación de tipos es una forma liviana de análisis estático. Lo que quiere Konstantin es bastante factible. –

Cuestiones relacionadas