Lo opuesto a esta pregunta: How do I add a type to GWT's Serialization Policy whitelist?¿Cómo elimino los tipos de implementación de la política de serialización de GWT?
GWT está agregando tipos no deseados a la política de serialización e hinchando mi JS. ¿Cómo recorto mi lista blanca de GWT a mano? ¿O debería en absoluto?
Por ejemplo, si pongo la lista de interfaz en una clase de servicio GWT RPC, GWT tiene que generar Javascript que maneje ArrayList, LinkedList, Stack, Vector, ... aunque mi equipo sabe que solo vamos a hacerlo devolver una ArrayList. Podría simplemente hacer el tipo de retorno del método ArrayList, pero me gusta confiar en una interfaz en lugar de una implementación específica. Después de todo, tal vez un día lo cambiemos y volvamos, p. una LinkedList. En ese caso, me gustaría obligar a la política de serialización de GWT a compilar solo para ArrayList y LinkedList. Sin pilas o vectores.
Estas restricciones implícitas tienen una gran desventaja que puedo pensar: un nuevo miembro del equipo comienza a devolver vectores, lo que será un error de tiempo de ejecución. Entonces, además de la pregunta en el título, ¿cuál es tu experiencia de diseño al respecto?
¿Cuál es su objetivo de diseño? ¿seguridad? ¿actuación? –
Rendimiento, en una palabra: para reducir el tamaño de la JS ahora y en el futuro. Si comenzamos a enviar Conjuntos y Mapas sobre RPC, habrá otra explosión de clase.El otro objetivo es mantener las mejores prácticas de codificación. Si hay un problema de seguridad que no estoy viendo, házmelo saber. – Bluu
Esto me parece que tiene una solución muy simple. Obviamente sabes lo que es eso, como lo dijiste tú mismo. ¿Por qué tomarse tantas molestias tratando de cambiar GWT? Eso parece tonto En el futuro, si alguna vez necesita devolver LinkedList, puede cambiar a una interfaz. Creo que si su objetivo de diseño es el rendimiento, simplemente cambie el tipo de devolución a ArrayList y termine con eso. Mis 2 centavos. –