Isso é lindo heim seu moço, muito bom... faz tempo que eu to querendo fazer coisas parecidas do que fazia com linguagens tipadas como c# e agora to encontrando o caminho
1:49:00 - Não encontrei o padrão Repository/Gateway no livro Padrões de Projeto - GOF, especialmente na sessão de padrões de criação (imagino que ele pertença a essa categoria). Ele possui outro nome ou é um padrão novo que não está listado no livro?
Aula boa demais! Só um ponto que fiquei na dúvida. Se a gente usar a mesma interface pra implementar duas coisas completamente diferentes, ainda que tenha o mesmo contrato, caso eu necessite alterar o contrato do banco de dados eu estaria violando alguns princípios porque teria que alterar o contrato do envio para o CRM também, correto? Acredito que tenha usado a mesma interface só a fins de estudo mesmo...
Olá Guilherme, tudo bem? Muito obrigado pelo feedback! Imagine um caso em que teríamos a necessidade de acrescentar um campo na tabela lista para controle interno. Este campo faria parte da entidade List e faria tanto o Sequelize quanto o Http lidarem com este campo. Mas, podemos não querer sincronizar tudo para o CRM externo, alguns campos na tabela list não precisaríamos estar em list no CRM, aí podemos ter um novo contrato ListGatewayIntegrationInterface (com as operações necessárias) que lida com um modelo de dados diferenciado, podemos ter uma entidade List que é mais usado pelo nosso sistema e outra entidade CrmList que cuida do modelo de dados no CRM. Entendeu a ideia? ;)
Acho que nesse caso tem que levar em conta o Interface Segregation Principle também. Faz sentido usar a mesma interface pq é o mesmo contrato, a partir do momento que você altera um contrato como o exemplo que você deu, na verdade você estaria adicionando uma interface nova. Então eu manteria a interface do video e apenas adicionaria as novas funçoes utilizando conceitos de herança. Acho que isso também respeita o Open Close principle.
começa a partir dos 16:13
Isso é lindo heim seu moço, muito bom... faz tempo que eu to querendo fazer coisas parecidas do que fazia com linguagens tipadas como c# e agora to encontrando o caminho
legal de Live! Mágico!
Valeu
1:49:00 - Não encontrei o padrão Repository/Gateway no livro Padrões de Projeto - GOF, especialmente na sessão de padrões de criação (imagino que ele pertença a essa categoria). Ele possui outro nome ou é um padrão novo que não está listado no livro?
Salve, mano o padrão repository faz parte do ddd (domain-drive-design) que foi escrito pelo erick evans
Não pude participar dessa aula, esse vídeo estará disponivel até quando ?
vai ficar no canal
@@lutiero ...pra sempre.
Aula boa demais! Só um ponto que fiquei na dúvida.
Se a gente usar a mesma interface pra implementar duas coisas completamente diferentes, ainda que tenha o mesmo contrato, caso eu necessite alterar o contrato do banco de dados eu estaria violando alguns princípios porque teria que alterar o contrato do envio para o CRM também, correto?
Acredito que tenha usado a mesma interface só a fins de estudo mesmo...
Olá Guilherme, tudo bem?
Muito obrigado pelo feedback!
Imagine um caso em que teríamos a necessidade de acrescentar um campo na tabela lista para controle interno. Este campo faria parte da entidade List e faria tanto o Sequelize quanto o Http lidarem com este campo.
Mas, podemos não querer sincronizar tudo para o CRM externo, alguns campos na tabela list não precisaríamos estar em list no CRM, aí podemos ter um novo contrato ListGatewayIntegrationInterface (com as operações necessárias) que lida com um modelo de dados diferenciado, podemos ter uma entidade List que é mais usado pelo nosso sistema e outra entidade CrmList que cuida do modelo de dados no CRM.
Entendeu a ideia?
;)
@@argentinaluiz Faz total sentido! Muito obrigado!!
Acho que nesse caso tem que levar em conta o Interface Segregation Principle também. Faz sentido usar a mesma interface pq é o mesmo contrato, a partir do momento que você altera um contrato como o exemplo que você deu, na verdade você estaria adicionando uma interface nova. Então eu manteria a interface do video e apenas adicionaria as novas funçoes utilizando conceitos de herança. Acho que isso também respeita o Open Close principle.
qual extensão/terminal é usado para esse autocomplete?
Se for o do VSCode, acredito que seja o copilot, mas é uma extensão paga pelo que ouvi falar.
@@antoniojunior1631 Sim, isso mesmo, 10 dólares por mês ou 100 dólares por ano
Bah cara, foi uma aula muito complexa...