✅ Notícias, temas e plug-ins da WEB e do WordPress. Aqui compartilhamos dicas e as melhores soluções para sites.

Uma maneira orientada a objetos de trabalhar com modelos e aplicativos da Web

5

Quando falamos sobre o conceito de Modelos em programação orientada a objetos, geralmente estamos nos referindo a uma classe que é uma representação dos dados armazenados no banco de dados.

Ou seja, quando as informações são armazenadas em linhas e colunas, preenchemos uma classe, seus atributos e assim por diante com essas informações para que possamos passá-las pelo aplicativo, manipulá-las conforme necessário e, possivelmente, serializar a dados de volta ao banco de dados.

Mas em um aplicativo da Web, é justo supor que o modelo pode precisar ser possível para o front-end ser usado. Ou seja, imagine uma solicitação de front-end fazendo uma chamada para o servidor, solicitando um modelo (ou uma coleção de modelos) e, em seguida, renderizando-os no front-end.

Embora este post em particular não seja orientado a código, ainda acho que vale a pena pensar no processo de traduzir um modelo do servidor e renderizá-lo no front-end do aplicativo da web.

Trabalhando com modelos e aplicativos da Web

Imagine, por um momento, que sua aplicação tenha um modelo Employee. Esse modelo pode incluir uma variedade de atributos, mas é seguro supor que todos os funcionários teriam:

  • um primeiro nome,
  • um sobrenome,
  • um ID de funcionário,
  • e um endereço de e-mail

Como essas informações são armazenadas no banco de dados não é totalmente irrelevante, mas não é tão importante para esta discussão.

Por exemplo, talvez haja um único registro que contenha todas essas informações armazenadas em uma string JSON. Por outro lado, talvez haja uma tabela de funcionários onde cada linha representa um funcionário e, em seguida, cada coluna representa um atributo.

Os detalhes de como as informações são traduzidas do banco de dados (ou, mais geralmente, do armazenamento de dados) para a classe não são tão importantes.

Normalmente, no entanto, veremos algo assim:

  1. Existe uma classe que solicita as informações,
  2. As informações são passadas para uma Simple Factory ,
  3. A Simple Factory instancia o Model ,
  4. O modelo é então passado para a classe de terceiros que o solicitou.

Do ponto de vista pictórico, você pode vê-lo assim:

A partir deste ponto, o Modelo é passado por toda a aplicação. Mas é aí que entra o ponto inicial deste post: Como passamos uma instância do Model (ou uma coleção de Models) para o front-end do aplicativo?

O fluxo do aplicativo da Web

Para simplificar, vamos supor que usaremos um único modelo e, se eu revisitar esse conceito do ponto de vista do código, podemos mergulhar um pouco mais.

O fluxo geral de um aplicativo da Web será algo assim:

  1. Um usuário aciona uma ação que solicita uma instância do modelo,
  2. O front-end faz uma chamada para um endpoint no servidor,
  3. O servidor lê as solicitações e verifica se são válidas,
  4. Em seguida, envia uma representação do modelo para o front-end.

Outros desenvolvedores podem discordar (o que é sempre bem-vindo e vale a discussão, na minha opinião), mas descobri que serializar a instância do modelo em JSON torna muito mais fácil trabalhar no front-end devido à funcionalidade JavaScript, pois refere-se a, ahem, JSON.

Uma maneira orientada a objetos de trabalhar com modelos e aplicativos da Web

Em outras palavras:

  1. pegamos o modelo,
  2. serialize-o para JSON,
  3. enviá-lo através do fio,
  4. em seguida, deserialize-o no front-end em uma representação JavaScript de si mesmo.

Isso nos permite manipulá-lo como faríamos no lado do servidor; no entanto, estamos lidando com um objeto JavaScript. Além disso, também nos permite fazer algumas alterações e enviar as informações de volta ao servidor em um estado diferente do qual foram enviadas.

Em última análise, isso nos permite salvar os dados de volta no banco de dados.

Uma perspectiva de alto nível

E esse é o ciclo de vida de alto nível de passar informações de um banco de dados para um modelo para o front-end e vice-versa.

Muitas vezes, porém, ajuda ver isso no código, então talvez em uma postagem futura, fornecerei uma série de artigos que podem explicar como fazer isso.

Enquanto isso, no entanto, não deve ser difícil traduzir suas implementações para o fluxo de trabalho Model-Serialization-Request-Send, conforme descrito nesta postagem.

Fonte de gravação: tommcfarlin.com

Este site usa cookies para melhorar sua experiência. Presumiremos que você está ok com isso, mas você pode cancelar, se desejar. Aceitar Consulte Mais informação