JS vs JS · (Des)serialização · Restaurar instâncias de classes enviadas na rede

Wednesday 5 May 2021

This event has finished.

Started 18:30 PM

Finished 22:30 PM


Organized by JavaScript vs JavaScript


Venue: Online/Virtual

Address: Online event on your device
8600 Lisboa

See other Online events events

About this event

JSON é funcionalidade padrão de JavaScript para preparar objetos para serem enviados (em formato de mensagem, também chamado “SERIALIZADOS”) entre um cliente (p.ex. um webbrowser) e um servidor.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON

········· ········· ········· ········· ········· ········· ········· ········· ········· ·········

À primeira vista, o uso JSON parece trivial, porque o seu API é simples porque expõe apenas 2 métodos: parse() e stringify(), que servem para serializar e desserializar (“marshalling” e “unmarshalling”) os objetos.

········· ········· ········· ········· ········· ········· ········· ········· ········· ·········

Assim, o programador podia erradamente pensar que, ao enviar instâncias de classes (objetos) de um dispositivo para um outro, ao chegar o objeto desserializado expusesse a sua funcionalidade original (o seu API, ou a lista das suas propriedades e métodos). Infezilmente, em JavaScript isso não é verdade.

Instâncias de classes, aquando de envio por serialização, PERDEM O SEU API. Isto é, tornam-se simples objetos de valores, sem funcionalidade.

Quando um cliente ou servidor recebe instâncias de classes JavaScript, restaurar a sua funcionalidade (isto é, restaurar os seus métodos) não é automático (em contrário ao que acontece p.ex. em aplicações escritas em Java com “Object I/O Streams”). A causa disto é que durante a serialização apenas os valores de objetos são serializados, não as instruções dos seus métodos nem o tipo da instância.

O programador JavaScript deverá sempre escrever código fonte suplementar, recorrendo a uma “listener” função, chamada “reviver”, para poder restaurar a funcionalidade completo das instancias desserializadas.

Para aplicações com objetos complexos, isto é, com um “Object Tree” com bastante profundidade, o código fonte da função “reviver” rapidamente tornar-se-á ilegível.

········· ········· ········· ········· ········· ········· ········· ········· ········· ·········

Felizmente, também é possível atingir esse objetivo de uma maneira inteligente e concisa.

É isso que codificator.io irá demonstrar durante este evento: como com código fonte limpo, conciso e legível, atinge-se a desserialização e o restauro completo da funcionalidade de instâncias de classes.

O código fonte criado ao vivo neste evento, será partilhado com os participantes na plataforma Github.


This page last updated Wednesday 28 April 2021 at 16:04.

Problems? Report an error or inappropriate listing here.

Information displayed here is provided in good faith but we are not responsible for the content of any listing. Sometimes events can be cancelled or changed at short notice. Please check with the venue or organizer before you travel!