Olá pessoal seja muito bem vindos a mais um vídeo aqui no canal da colden hoje eu quero começar uma série bem legal que é uma série que a gente vai conversar sobre o núcleo de um aplicação o coração de uma aplicação toda aplicação ela tem como objetivo resolver um problema né ou causar um problema dependendo se aplicação tiver muitos bugs né mas ela tem pelo menos a priori né o objetivo de resolver um problema de uma empresa um problema de uma pessoa nenhum problema de algum negócio e dentro dessa ideia de resolver um problema você
vai propor né a partir de soft a partir de uma linguagem programação uma solução para esse problema e para você procurar essa solução existe uma modelagem você precisa modelar a o seu soft ou a solução como se fosse basicamente um escutou que você vai modelando e para que aquele software atenda e resolva um determinado problema e eu quero falar sobre isso eu quero falar sobre a modelagem eu vou falar sobre a entidade sobre objeto de valor sobre técnicas eu vou mostrar exemplos de código também não hoje mais durante a série Hoje eu queria falar sobre
um assunto muito legal e é um assunto que nessa última aplicação foi uma decisão que eu tomei logo de início e tem sido uma surpresa muito boa não há surpresa boa mas a verdade tem sido uma escolha muito boa e eu queria fazer antes de dizer o que é eu queria fazer para vocês uma pergunta que é o seguinte parece um pouco estranho a pergunta mas vai fazer sentido durante o vídeo eu espero é possível criar um objeto do tipo date uma data pode ser o Java script eu já vou mais pegar aqui o Java
script é possível criar uma data inconsistente no JavaScript lá o Como assim um dado que consistente uma data com dia 46 do mês 23 e o Ano Qualquer coisa é possível criar uma data com dia inválido com um mês inválido e outra pergunta se eu tentar fazer isso ele vai instanciar esse objeto ele vai ficar inválido na memória da sua aplicação porque quando a gente está assim o objeto ele vai para memória e você fica usando aquele objeto dentro da do momento que a sua aplicação está em execução é possível sim ou não e a
resposta não java script ele não permite você criar uma data em consistente Você pode até tentar colocar o dia 45 mês 21 alguma coisa do tipo ele vai simplesmente pegar aquela quantidade Extra de meses ou quantidade Extra De Dia Cê vai somar na data e as simplesmente ele vai colocando a data mais para frente mas no final ele vai te entregar um dia válido sei lá dia 21 de março de 2006 em outras palavras não é possível a gente criar um objeto instanciado instanciar um objeto na memória e de forma inconsistente então quando a gente
vai criar A modelagem da nossa aplicação a gente vai lidar muito com algoritmos que são os nossos processamentos e nós vamos precisar usar dados independente do tipo de paradigma de programação que você vai usar se orientação objeto funcional é procedural todos vão ter algoritmos e todos vão ter dados e quando a gente pensa na modelagem da nossa aplicação uma das primeiras coisas que vão saltar os nossos olhos são os dados por exemplo se você vai desenvolver uma aplicação para Universidade você vai pensar em professor e aluno em disciplinas Em relacionamentos entre alunos e disciplinas professores
e disciplinas disciplinas e e salas de aula né na parte física matrícula processo de matrícula para matricular essa disciplina não porque tem um pré-requisito então tem todo um conjunto de regras e dados que vão estar digamos assim é sal e quando você for resolver um problema é esse software né de uma faculdade universidade entretanto uma das perguntas que você pode tentar responder o seguinte Será que eu vou permitir que um objeto instanciado um dado representado na memória esse dado ele esteja inconsistente porque isso gera implicações na forma como você vai resolver a solução do problema
que você está tentando resolver por quê Porque se o dado está inconsistente na memória significa que você vai precisar ficar validando esses dados sempre que for fazer alguma coisa importante aí eu vou pegar esses dados e por salvar no banco de dados então preciso ter certeza que os dados estão válidos se eu esquecer de validar eu vou mandar para o banco um objeto inválido um aluno sem matrícula ou um aluno celular com o nome errado o nome muito curto que não dá para identificar ou um aluno sem CPF ou um CPF com 11 dígitos o
errado e aí você tem uma série de problemas Quando você permite que um dado esteja instanciado na memória e esse dado está inconsistente a própria linguagem de programação não permite que isso aconteça como exemplo que eu dei da data e aí a pergunta é porque normalmente e é um assunto que eu vou trabalhar no vídeo a parte quando a gente tem modelagens anêmicas né modelagens que simplesmente representam os dados e esses dados não tem nenhuma nenhum objetivo desse alto validar ou de garantir a sua consistência quando você tem esses dados digamos assim anêmico simplesmente é
um monte é uma classe ou uma estrutura com todos os dados lá e basicamente isso você tem que garantir cada um dos momentos que esse dado fique consistente e eu tô participando de um projeto há mais ou menos uns dez meses da liberando um projeto e uma das premissas da nossa modelagem é eu só tenho objetos instanciados que estão em instantes Então se o objeto Ele está instanciado na memória automaticamente significa que todos os dados estão aderentes as regras de negócio para aquele objeto especificamente Isso é muito bom porque isso me livra da responsabilidade de
ter que validar esse objeto várias e várias vezes sempre que um novo processo a vou passar esse objeto para mandar um e-mail vou pegar esse objeto para mandar para uma fila para um processamento assíncrono vou pegar esse objeto e mandar para o banco cada vez se esse objeto tiver inconsistente eu preciso validar ele a tanto para mandar o e-mail preciso validar antes validar porque E aí você pode validar talvez nem tudo uma parte das regras porque você não garantiu isso no caso dessa aplicação desde o começo era uma premissa não era um é uma tem
o nome Zinho que a gente chama te pega um requisito arquitetural tá é uma restrição arquitetural é que é um talvez não o quadro aqui que a gente só pode ter objetos instanciados que estão consistentes e isso garante que o próprio objeto ele se válida ele consegue garantir a sua consistência e quando está instanciado assim como uma data eu não preciso me preocupar se a data uma data válida a única coisa que eu posso fazer é Será que essa data é no futuro é no passado alguma coisa do tipo mais um objeto consistente garante que
eu tenho um objeto tudo funcional todo completo de acordo com as regras então eu sei o que é que eu posso esperar quando um objeto de determinado tipo está distanciado na memória isso é muito legal eu não sei se esse vídeo ficou abstrato se deu para entender a ideia do que é um dado inconsistente não é um objeto que não tem os atributos que você quer ousar tributos estão no estado inválido alguma coisa do tipo mas nós teremos aqui nessa série de vídeos alguns vídeos práticos para eu te mostrar algumas coisas tem uma contra-indicação the
Gun é que quando você só tem objetos consistentes na memória em alguns momentos você tem dificuldade distanciar esses objetos por exemplo vamos supor que você tenha um Wizard não é um passo a passo que você vai preenchendo um formulário em Três Quatro Passos isso você só vai ter o objeto completo no final no último passo ou seja nos Passos intermediários você vai ter parte do objeto O que significa que momentaneamente ele estará no estado inconsistente E assim a gente criou lá uma técnica bem interessante para que a gente pudesse ter flexibilidade e ao mesmo tempo
garantir que o objeto sempre estará no estado consistente eu vou mostrar para vocês isso no decorrer da série conta para mim aí nos comentários se você entendeu claramente que é que eu quis dizer com um objeto consistente se você já tinha parado para pensar nisso quê por exemplo na linguagem de programação uma data nunca fica inconsistente Então você tem uma data criada Eu sei que era uma data válida e se você já pensou em relação aos objetos da sua aplicação e conta também aí nos comentários na sua aplicação você permite criar objetos inconsistentes ou se
o próprio objeto garante a sua validade não é a sua consistência e eu queria saber um pouquinho de vocês se Esse vídeo foi relevante se foi Deixa um joinha comenta aqui embaixo e sugere novos vídeos dessa série eu vou falar de várias coisas legais nessa série por exemplo entidade objeto e falou devo falar também um pouquinho sobre o repositório Talvez eu fale sobre essa questão da arquitetura por si na da Paz como é que a gente pode ter um cor Business mais desacoplado da parte de infraestrutura Então se algumas coisas legais que a gente pode
tocar também a parte de modelagem rica e modelo anêmico né mostrar um pouco da diferença e como é que a gente pode ter uma modelagem rica Além do fato de que eu comentei com vocês hoje essa questão da consistência só na parte teórica mas nós também teremos a oportunidade colocar aqui e a mão na massa e ver algumas coisas na prática Mas pensa um pouquinho sobre essa consistência e uma coisa legal se você tiver uma ideia de como você poderia resolver isso é um bom problema para você tentar resolver em casa como é que eu
posso ter ao mesmo tempo flexibilidade quando precisar criar um objeto parcialmente consistente eu tenho esses dados representados mesmo inconsistente mas quando eu crio um objeto esse objeto sempre estará no estado consistente é um problema legal para você pensar como você resolver isso não é um problema tão simples Eu dirigi a intermediário para avançado principalmente se você nunca pensou sobre isso e nunca passou por essa situação mas com tranquilidade a gente vai ter tempo aqui para ver com calma analisar algumas questões e provavelmente a partir da próxima aula eu já vou soltar alguns vídeos com parte
do conteúdo prático para que você possa entender alguns conceitos básicos e depois a gente ir para alguns as funções um pouco mais avançado Tá bom então fico por aqui espero que você tenha gostado do vídeo comenta compartilha esse vídeo sugere algumas coisas que você quer ver nessa série que a gente vai conversando e vai soltando os vídeos não necessariamente um atrás do outro mas sem dúvida eu quero dar continuidade a essa série um grande abraço e até o próximo vídeo E aí [Música]