Logo

dev-resources.site

for different kinds of informations.

Serialização de Objectos

Published at
9/5/2022
Categories
serialization
oop
php
programming
Author
ortizdavid
Categories
4 categories in total
serialization
open
oop
open
php
open
programming
open
Author
10 person written this
ortizdavid
open
Serialização de Objectos

A serialização é o processo de converter um objeto em um fluxo de bytes para armazenar o objeto ou transmiti-lo para a memória, um banco de dados ou um arquivo. Sua finalidade principal é salvar o estado de um objeto para recriá-lo quando necessário. O processo inverso é chamado desserialização.

O objeto é serializado para um fluxo que carrega os dados. O fluxo também pode ter informações sobre o tipo do objeto, os atributos e os valores dos atributos. Em seguida, o objeto pode ser armazenado em um banco de dados, um arquivo ou uma memória.

Onde usar a Serialização?

  • Transmissão de um objeto pela rede;
  • Armazenamento de um objeto no disco;
  • Armazenamento de dados em bancos de dados;
  • Envio de um objeto para um aplicativo remoto usando um serviço Web;
  • Passar um objeto de um domínio para outro;
  • Passar um objeto por um firewall como uma cadeia de caracteres JSON ou XML;
  • Chamadas de procedimento remoto (RPC) , por exemplo, como no SOAP ;
  • Distribuição de objetos, especialmente em engenharia de software baseada em componentes , como COM , CORBA , etc.

Algumas Bibliotecas e/ou funções de Serialização nas Linguagens populares

  • PHP: serialize, unserialize, json_encode, json_decode,;
  • Javascript: Json - Parse e Stringify;
  • C#: System.Text.Json e System.Xml.Serialization;
  • Java: ObjectInputStream, ObjectOutputStream
  • Python: Pickle;
  • Elixir: JsonSerializer;
  • Kotlin: serialization.Serializable
  • Rust: Serde;
  • Go: Marshal.

Precauções com a Serialização

A serialização não deve ser usada com objetos muito grandes, pois oferece uma sobrecarga significativa.
Objetos grandes podem demandar significativamente os requisitos de memória de seu aplicativo, pois os fluxos de entrada/saída do objeto armazenam em cache referências ao vivo para todos os objetos gravados ou lidos no fluxo até que seja fechado ou redefinido.

Sugestão:

A maioria das linguagens fornecem recursos para serialização de objectos. A serialização é um conceito independente das linguagens de programação.
É possível implementar sua serialização para o formato que desejar. O recomendando é usar componentes prontos e oferecidos pela linguagem de form a evitar retrabalho.
Sempre que possível, usar a serialização JSON ou XML devido a facilidade de manipulação.

Exemplo

Serialização e Desserialização de um objecto cliente. Um cliente possui nome, sexo, peso e altura. Mostrar os dados do cliente e Calcular o Índice de Massa Corporal (IMC).
Linguagem: PHP
Tipo ou Abordagem: Serialização no arquivo.

Serialização
Image description

Etapas da Serialização
Image description

Código fonte da Classe cliente
Image description

Código fonte da Serialização
Image description

Objecto serualizado no ficheiro .dat
Image description

Código fonte da desserialização
Image description

Serialização do Objecto
Image description

Recuperação do objecto
Image description

serialization Article's
30 articles in total
Favicon
Java interacting with Apache Avro
Favicon
Apache Avro
Favicon
Protocol Buffers as a Serialization Format
Favicon
WSON (Web Simple Object Notation)
Favicon
Serializing Python Object Using the pickle Module
Favicon
Converting a Unicorn project to Sitecore Content Serialization (SCS)
Favicon
Converting a TDS project to Sitecore Content Serialization (SCS) 
Favicon
Deserializing Polymorphic Lists with Kotlin, Jackson, and Spring Boot
Favicon
Mapify-ts
Favicon
ProtoBuf message serialization in Akka.NET using protobuf-net
Favicon
Pandas Dataframe to AVRO
Favicon
Mapping > Json Converters // true
Favicon
Nested Encoding Efficency
Favicon
Java serialization with Avro
Favicon
Java Serialization with Flatbuffers
Favicon
Java Serialization with Protocol Buffers
Favicon
Serialização de Objectos
Favicon
Effective Java: Consider Serialization Proxies Instead of Serialized Instances
Favicon
Effective Java: For Instance Control, Prefer Enum types to readResolve
Favicon
Effective Java: Write readObject Methods Defensively
Favicon
Effective Java: Consider Using a Custom Serialized Form
Favicon
Effective Java: Prefer Alternatives To Java Serialization
Favicon
ASP.NET XML serialisation issues: Observations on DataContractSerializer
Favicon
ReScript JSON Typed Strongly
Favicon
使用序列化在兩個 Rails 站台間傳遞物件
Favicon
Serialização no Kotlin
Favicon
Working with Firebase Cloud Firestore made easier with "withConverter()"
Favicon
Meet Model Object Mapper, a Database Serialization Utility for Django!
Favicon
How to Speak Binary in TypeScript
Favicon
Practical Java 16 - Using Jackson to serialize Records

Featured ones: