L'opposto di questa domanda: How do I add a type to GWT's Serialization Policy whitelist?Come rimuovo i tipi di implementazione dalla politica di serializzazione di GWT?
GWT è l'aggiunta di tipi indesiderati alla politica serializzazione e gonfiore mia JS. Come posso tagliare a mano la mia lista bianca GWT? O dovrei assolutamente?
Ad esempio, se inserisco l'elenco di interfaccia su una classe di servizio RPC GWT, GWT deve generare Javascript che gestisca ArrayList, LinkedList, Stack, Vector, ... anche se il mio team sa che avremo solo intenzione di restituisce una lista array. Potrei semplicemente rendere il tipo di ritorno del metodo ArrayList, ma mi piace affidarmi a un'interfaccia piuttosto che a un'implementazione specifica. Dopotutto, forse un giorno lo accenderemo e torneremo ad es. una lista collegata. In tal caso, mi piacerebbe forzare la politica di serializzazione GWT da compilare solo per ArrayList e LinkedList. Niente pile o vettori.
Queste limitazioni implicite hanno uno svantaggio enorme che posso pensare: un nuovo membro del team inizia a restituire Vettori, che sarà un errore di runtime. Quindi, oltre alla domanda nel titolo, qual è la tua esperienza di progettazione intorno a questo?
Qual è il tuo obiettivo di progettazione? sicurezza? prestazione? –
Prestazioni, in una parola: per ridurre le dimensioni del JS ora e in futuro. Se iniziamo a inviare Sets e Maps su RPC, ci sarà un'altra esplosione di classe.L'altro obiettivo è mantenere le migliori pratiche di codifica. Se c'è un problema di sicurezza che non vedo, fammelo sapere. – Bluu
Mi sembra di avere una soluzione molto semplice. Ovviamente sai cosa sia, come hai detto tu stesso. Perché andare così tanto nei guai a cercare di cambiare GWT? Sembra sciocco. In futuro, se dovessi aver bisogno di restituire LinkedList, puoi passare a un'interfaccia. Penso che se il tuo obiettivo di progettazione è il rendimento, cambia semplicemente il tipo di ritorno in ArrayList e fallo con esso. I miei 2 centesimi. –