Bom pessoal, vamos falar um pouco aqui sobre Active Record. Esse cara aí, ele é absolutamente fantástico. O que ele faz? Ele fala que você tem um objeto que encapsula linha, tabela ou uma view e ainda você tem a opção de adicionar lógica de domínio nos seus dados. Então assim, toda vez que você está trabalhando com Active Record, você sente uma facilidade muito grande de você trabalhar, porque você fala, pessoa, traça o nome, é igual Wesley, pessoa.save, salvou. Insert, pessoa, Wesley, salvou no banco de dados. Get, pessoa, Em 7, pessoa Wesley. Salvou no banco de dados. Get pessoa by isso, by aquilo. Então, você consegue criar normalmente ainda métodos específicos que ele vai trazer os registros para você quando você trabalha com Active Record, tá? Active Record, ele é extremamente simples de ser utilizado, porém, porém, e é aí que a gente vai adicionando os poréns, você tem um acoplamento muito grande. Você vai perceber que as suas entidades do Active Record, normalmente elas vão herdar uma classe base de Active Record que possui toda a lógica para você falar com um banco de dados. Então você começa a ter um acoplamento extremamente forte com a forma de trabalhar com um banco de dados. Então você tem que ter muito cuidado com isso. Eu não acho que isso necessariamente é errado, mas eu acho que é uma ciência que você tem que ter na hora de escolher os tipos de persistência. A gente vai falar, inclusive, aqui um pouco mais sobre o Active Record que é uma ciência que você tem que ter na hora de escolher os tipos de persistência. A gente vai falar, inclusive, aqui um pouco mais sobre o Active Record de coisas que valem a pena você prestar atenção. Então, é o seguinte, o Active Record vai carregar, de um lado, dados do banco, mas ele também consegue ter lógicas de comportamento. Então, isso aí que é o ponto importante. Por quê? Porque você consegue adicionar lógica de domínio no Active Record e ainda adicionar toda a abertura que você tem com o banco de dados no mesmo cara. solid, talvez você quebre tranquilamente o single responsibility principle, porque provavelmente você vai mudar a mesma classe por motivos diferentes. Ou seja, eu posso mudar a minha classe para falar com o banco de dados por um motivo, ou eu posso mudar essa minha classe do Active Record para mexer com o comportamento de regra de negócio. Então, claramente, você vê aqui o Active Record quebrando o Single Responsibility Principle. Essa, pelo menos, é a minha visão que eu tenho. Isso significa que você não deve usar Active Record? Não, não significa isso. Significa que é importante você saber o que ele está quebrando, tá? Um ponto importante, tá? Toda vez que você está usando o Active Record, você vai perceber que para você desfrutar dos principais recursos que ele traz, é você adicionando lógica de domínio nele. E provavelmente você vai ver a sua lógica de domínio vazando para os seus objetos que trabalham com persistência de dados. E é aí que a gente começa a ter problemas. Agora, a gente vai ver alguns pontos importantes aqui também. Por quê? Porque apesar de a gente ter esse problema, e é um problema, na minha opinião, a lógica de domínio vazar para as suas entidades de banco de dados, ele é muito simples de utilizar. Então, dependendo do projeto, você quer ter uma velocidade, uma facilidade muito grande, você vai perceber que a Active Record vai quebrar um baita galho aí para você. Somente para você ter uma ideia, frameworks que apareceram utilizando a Active Record e foram uma revolução. Se você pegar, por exemplo, a entrada do Rails no mercado, que foi em torno de 2006, você vai ver que uma das grandes facilidades, além de todas aquelas técnicas de scaffolding que o Rails trazia, é a forma de você trabalhar com dados utilizando o Active Record. Tem muita gente que não gosta disso até hoje porque você tem essa mistura de lógica e de domínio. Por outro lado, sua velocidade é muito grande. Outro framework que muita gente não gosta por conta de Active Record, Laravel no PHP. Você vai perceber que você tem uma biblioteca ali chamada de Eloquent. O Eloquent é uma forma de você trabalhar com o Active Record do Laravel. E, invariavelmente, você vai pegar a entidade, vai estender do eloquente e daí você vai ter todos esses tipos de comportamento e essas possibilidades. Mas, novamente, você tem esse vazamento de lógica de domínio. Dependendo do projeto, está tudo bem ter isso. E tem gente que nem se incomoda. Tem gente que se incomoda muito. Então, depende muito o nível de purismo que você quer ter aí na sua aplicação. Outro camarada que usa Active Record extremamente famoso, Django, framework para Python mais famoso que existe, tá? O Django você vai ver que as suas entidades, elas também estendem ali de um Active Record para você conseguir trabalhar. Então, assim, galera, se você pensar bem, você tem aí três frameworks extremamente sofisticados, extremamente cheios de recursos, que trabalham com esse tipo de padrão. O ponto importante aqui é, existe como você conseguir ainda utilizar Active Record, mas não ter vazamento da sua lógica de negócios ali dentro. Que é você fazer o que? Separar o Active Record e toda a sua lógica pensando apenas na camada de dados e você ter uma modelagem de domínio, tá? Totalmente a parte do seu banco de dados, e quando você precisar falar com o Active Record, você tem uma camada de abstração. Dá para você trabalhar nesse formato, mas talvez, se você quiser trabalhar assim, talvez valha a pena você utilizar outro padrão que não seja Active Record, que a gente vai falar daqui a pouco tá minha recomendação pessoal com é que recorde é pessoal mesmo tá seguinte separe o modelo de domínio do modelo do active record uma coisa é a entidade pessoa do seu domínio outra coisa entidade pessoa do active Record. Se você fizer essa separação, você evita esse vazamento. Outro ponto importante. Enquanto o Data Table ou o Row Table apenas é acoplado no banco, o Active Record tende também a ficar acoplado no domínio. Eu já falei isso. Então, tenha ciência disso. Saiba quando você vai utilizar um recurso e esse tipo de recurso ele pode interferir no seu domínio a agora isso não significa que você não deve usar é esse é o ponto que eu quero tentar deixar mais claro neste vídeo porque dependendo do tamanho do projeto você usa e só ganha tempo você ganha muito tempo muita produtividade e já tá tudo ótimo entendeu se consegue fazer uma diversas modelagem belongs to has many e tudo mais e está tudo certo entendeu então assim eu não acho que é errado utilizar este record eu já utilizei em diversos projetos, todos rodaram muito bem, muitos já rodam até hoje, mas o maior ponto é você ter essa ciência. O nosso grande ponto aqui, que eu quero trazer, principalmente aqui nesse MBA, é que você entenda as suas possibilidades. Você entendendo aí as suas possibilidades, você vai poder ter essa sensibilidade de conseguir adequar o melhor padrão para o projeto que você tem. E é isso que você tem que ter em mente. Maravilha? Então vamos seguir em frente aí, galera.