[MÚSICA]
No desenvolvimento web você costuma ouvir pessoas falando sobre a estrutura MVC e
a estrutura MVVM e assim por diante.
O que exatamente são esses frameworks?
Como eles são úteis para fazer desenvolvimento web?
Vamos falar sobre isso brevemente a seguir.
No mundo da engenharia de software,
você costuma ouvir pessoas falando sobre padrões de design.
O que exatamente eles querem dizer é parar de reinventar a roda toda vez.
Um padrão de design é uma solução bem documentada para um problema recorrente.
Muitas vezes, você se vê resolvendo repetidamente problemas semelhantes.
Se temos uma documentação bem especificada de como resolver esses problemas,
por que continuar reinventando a roda toda vez?
Então é aí que se origina o conceito de padrão de design do software
engenharia.
Às vezes você também vê pessoas que se referem a isso como um padrão de arquitetura.
Então, para resumir, os padrões de design de software em particular são uma solução reutilizável
para problemas comuns que são resolvidos no software.
Agora, neste contexto, você costuma ouvir pessoas falando sobre a gangue de quatro.
Este foi um grupo de quatro autores que escreveram este livro seminal chamado
Design Patterns: Elements of Reusable Object-Oriented Software.
Neste livro, eles identificaram um grande conjunto de padrões de design
comumente usados em engenharia de software.
Esta foi uma das primeiras explorações bem documentadas de padrões de design,
e, portanto, tornou-se o padrão-ouro para qualquer pessoa que trabalha na engenharia de software
, especialmente preocupado com pacotes de design.
Este padrão de engenharia de software nos permite isolar a lógica de domínio
da interface de usuário.
Então você está basicamente separando a visão do usuário das informações
da lógica real e como as informações armazenadas e manipuladas.
Agora esta separação de preocupações conceito que você vai estar ouvindo mais e
mais novamente neste contexto.
A separação de preocupações é o que facilita o desenvolvimento independente de
cada uma dessas três partes de nossa aplicação e
também permite testes e manutenção dessas diferentes partes.
Agora podemos dividir todo o nosso aplicativo em três partes,
a visão que se preocupa principalmente com a apresentação de informações ao usuário,
o modelo que armazena o estado do domínio e a lógica do domínio e
também fornece a maneira de
manipular este estado a partir do resto do aplicativo e
o controlador que medeia entre a exibição e o modelo.
Falaremos sobre cada uma dessas três partes em um pouco mais de detalhes a seguir.
Na estrutura MVC, o modelo gerencia o comportamento e os dados
do domínio do aplicativo.
E o modelo responde a solicitações de informações sobre seu estado atual.
Então, normalmente quando a exibição quer renderizar, ou a exibição quer atualizar
em si, ele pode consultar o modelo para obter informações para
que ele possa ser renderizado adequadamente para o usuário.
O modelo também responderá a solicitações de alteração de seu estado.
Isso geralmente é feito através do controle.
Em um sistema orientado por eventos,
o modelo também pode ser configurado para notificar observadores.
Assim, os espectadores podem se registrar como observadores para o modelo e, portanto,
quando o modelo for atualizado, as exibições serão automaticamente acionadas para
se atualizarem com base na alteração nesse estado do modelo.
A visão em si é preocupação em apresentar as informações aos usuários em um elemento de interface do usuário
de tal forma que facilita tanto a apresentação de informações
para o usuário e também permite que o usuário interaja com o aplicativo.
Assim, a exibição pode representar uma representação do estado do modelo.
Assim, a partir de um modelo único, você pode facilmente derivar várias maneiras
apresentar essas informações ao usuário, dependendo do exemplo
, dependendo do tamanho da janela de exibição.
Assim, um viewport de tamanho pequeno como em um aplicativo móvel,
as informações serão apresentadas de uma maneira diferente em oposição
a uma porta de visualização maior que é facilitada em um computador desktop.
Então, em uma estrutura MVC toda a exibição de informações tem uma correspondência de um a
um com o estado do modelo.
A terceira peça de quebra-cabeça na estrutura MCV é o controlador.
O trabalho do controlador é receber informações da exibição.
Assim, qualquer interação do usuário que for realizada será capturada e
então passará para o controlador para atuar nessas interações do usuário.
E é o trabalho do controlador, em seguida, iniciar uma mudança do estado de
o modelo, se for necessário nesta situação particular.
Assim, o controlador causará adequadamente a alteração do estado do modelo.
Então, para resumir, o controlador pode aceitar a entrada
do usuário em termos das interações do usuário que ocorreram, e
então ele irá instruir o modelo para mudar o estado.
Simultaneamente, o controlador também pode
fazer com que a exibição altere a maneira como as informações estão sendo exibidas na exibição.
Então essa é a razão pela qual nesta imagem você tem duas setas
indo do controlador, uma em direção ao modelo e a outra em direção à vista.
Às vezes você ouve as pessoas falando sobre a abordagem de modelo de visualização de modelo.
A abordagem de modelo de visão de modelo é, em algum sentido,
uma derivada da abordagem do controlador de visualização de modelo.
Às vezes, você também ouve pessoas se referindo a ela como a abordagem de view-binder do modelo
view.
Aqui, você tem o modelo que representa a lógica de negócios e
os dados para seu aplicativo.
Do modelo, você deriva um modelo de exibição, que encapsula essa parte
das informações necessárias para renderizar uma exibição específica.
Assim, o view-model é a abstração da view que expõe
as propriedades públicas e os vários comandos que estão disponíveis.
Então, isso fornece uma ligação de dados declarativa.
Em algum sentido, a maneira como o componente e
os modelos em angular são implementados, ele pode ser visto como
uma variante da visão de modelo de abordagem de visão de modelo.
Com esta rápida compreensão do MVC e da estrutura MVVM,
vamos agora continuar a entender mais sobre serviços angulares.
[MÚSICA]