Agora tudo faz sentido, o gasto de energia mental é aceitavel utilizando Desing Patterns. Parece que agora estou aprendendo programação da forma correta. Parabéns pelo conteúdo extremamente util.
@jonasdanielsantos4855Ай бұрын
Conteúdo impressionante, manda mais ai.
@RenatoAugustoTechАй бұрын
Valeu Jonas, deixa cmg hahah!!
@hemilioaraujo2 ай бұрын
Muito obrigado pelo conteúdo! Realmente a primeira vez que vejo alguém falar de subir o if para outra camada e que isso está tudo bem. Sempre pensei: que padrão maluco, do joga o BO para cima. Kkkkk
@RenatoAugustoTech2 ай бұрын
Enquanto eu gravava o vídeo eu lembrei que esse lance do if quase comeu meu juízo lá atrás quando comecei a estudar os patterns daí animei de passar essa informação pq sei que a galera que ensina arquitetura e tals não informa esse tipo de coisa aí deixa o cara maluco ahhahaha
@leonardoamorimramos56562 ай бұрын
Nao sou programador PHP, mas a sua didática vai muito além da linguagem de programação. Consegues explicar os padrões de projeto de forma simples e concisa. Parabéns e obrigado pelo conteúdo!
@RenatoAugustoTech2 ай бұрын
Muito obrigado pelo feedback Leonardo!!!! Fica ligado que vem mais conteúdos por aí!!
@gustavomelo63602 ай бұрын
Show demais cara! Importante conteúdos assim que nos ajudam a identificar oportunidades de aplicar os padrões de projetos. Parabéns!! Só um adendo que sempre gosto de esclarecer é que os DP's, como toda tecnologia, não é uma bala de prata. Importante entender o escopo do teu projeto, e se realmente existe a necessidade de adicionar a complexidade do padrão escolhido nesse contexto. Do contrário, será só complexidade por complexidade. No mais... Gostei bastante da explicação!!!
@danrocha51532 ай бұрын
O cara não é o Renato Augusto, mas bate um bolão, vlw irmao!!
@RenatoAugustoTech2 ай бұрын
@@danrocha5153 aheuahruaueuaheha valeeu!!!
@lucascelestino26542 ай бұрын
Conteudo monstro ! Meu chefe mandou aprender padrões de projeto. Nas ferias da facul ja começo do basico. +1 inscrito !
@RenatoAugustoTech2 ай бұрын
@@lucascelestino2654 fico feliz que curtiu o conteúdo Lucas, hoje vai ter vídeo novo no canal com mais um padrão nessa saga!! Tu vai curtir!!!
@ediponascimento5322 ай бұрын
Renato! Essa aula foi incrível, cara! Você mandou muito bem!
@RenatoAugustoTech2 ай бұрын
fico feliz que tenha gostado Édipo!! Esse tipo de feedback é muito importante!!! Prepara que vem mais conteúdos por aí haha!
@programadorpython2 ай бұрын
Parabéns pelo conteúdo irmão, vou repassar pra molecada do canal, tmjj e sucesso!
@RenatoAugustoTech2 ай бұрын
@@programadorpython hahah valeu demais irmão!!!
@gssj-o8p2 ай бұрын
Cara tá muito bom meus parabéns tu é um excelente educador!
@RenatoAugustoTech2 ай бұрын
Valeeu demais pelo feedback Gui tmj !!!
@willb9923Ай бұрын
Muito bom, seria legal ter um video implementando factory em cima desse case
@RenatoAugustoTechАй бұрын
Deixa comigo! Anotado já pra os próximos vídeos!!
@fernando1587java2 ай бұрын
Cara ,você é um ótimo professor, elucidou muitas dúvidas que eu tinha
@RenatoAugustoTech2 ай бұрын
Fala Fernando!! Fico mt feliz que tenha gostado e MT obrigado pelo feedback, é MT importante!!!!
@victornogueira765723 күн бұрын
vc é massa, me da aula
@Anthony-nl4db2 ай бұрын
Explica bem demais
@pwcodigo2 ай бұрын
Bizu da aula 8:15 - Quando não depender de dado primitivo.
@joaolima3780Ай бұрын
Muito bom!!
@araobenjaminАй бұрын
Muito boa a explicacao, parabéns. Fiquei só com uma dúvida. Como o cliente conhece a estratégia, por que não passar a estratégia por parâmetro do método? Aí poupamos um set e deixamos a classe mais leve.
@RenatoAugustoTechАй бұрын
Essa é uma das alternativas também, existem variações de cada padrão de projeto e essa que você mencionou também é uma delas!! Eu apresentei o tradicional pra poder seguir a risca mas remover o setter eu também prefiro!
@jan.keimich2 ай бұрын
Meu, primeiramente, parabéns ótimo conteúdo e didática. Chega a ser impressionante o quanto eu consigo entender com suas explicações e exemplos. Agora a pergunta, o que é object calisthenics? 4:23
@RenatoAugustoTech2 ай бұрын
Fico feliz que tá te agregando valor de alguma forma!! Quanto ao Object Calisthenics basicamente são algumas regras que se nós seguirmos basicamente estaremos fazendo uso dos bons princípios da orientação a objetos, SOLID, Ex: uma das regras é que nossas classes não podem ter mais de 50 linhas, com isso facilita que nossas classes respeitem o S do SOLID, outra regra é que a gente não receba mais de 2 parâmetros nos nossos métodos, isso facilita que tenhamos classes mais concisas e que façam apenas uma única coisa e por aí vai, são 9 regras ao total... vou preparar um vídeo sobre isso
@jan.keimich2 ай бұрын
@@RenatoAugustoTech Entendi! Interessante eu diria. No aguardo do vídeo sobre o assunto então hehe
@danton_Yn2 ай бұрын
Muito bem explicado... Vlw!
@RenatoAugustoTech2 ай бұрын
Que bom que gostou Danton. Amanha sai vídeo novo no canal falando sobre o design pattern Adapter.
@pwcodigo2 ай бұрын
Poderia criar um vídeo falando sobre quando usar Enum e quais situação não usar ?
@RenatoAugustoTech2 ай бұрын
Tá anotado!! Deixa comigo!!
@newtincarai2 ай бұрын
Quero o vídeo com o porque do problema indicado em 09:07 é programação procedural disfarçada de orientação a objetos.
@RenatoAugustoTech2 ай бұрын
Pode deixar que tá anotado como sugestão pra os próximos vídeos Newton!!
@wesso6736Ай бұрын
Quem achar o if problematico basta extrair pra uma classe responsável apeas por istanciar os tipos de imposto, seria uma Factory de imposto. Aí depois só ivocar a strategy e ja era
@faustianogeraldo4002Ай бұрын
Eu quero um video de programação procedural se disfarçando de Poo
@RenatoAugustoTechАй бұрын
Tá anotado, vou preparar um conteúdo sobre isso!!
@blackcitadel372 ай бұрын
interessante que usei esse em um projeto de OCR da empresa e nem sabia que era esse kk.
@o_Milky2 ай бұрын
Uma pergunta, no início do vídeo, você disse que essa estratégia era para evitar a abertura de modificação na camada service, evitando diversas modificações, mas como você mostrou no vídeo, esse pattern somente abstrai a verificação uma camada acima, o que ainda resultaria em uma escrita extensiva em caso de alguma mudança de regra, mas dessa vez na camada superior
@RenatoAugustoTech2 ай бұрын
Não entendi muito bem sua dúvida mas vou responder aqui com o objetivo do padrão pra ver se te ajuda... Esse pattern evita que seu código cliente fique o tempo todo fazendo if pra executar alguma regra de negócio baseado no parâmetro de entrada pq dessa forma acaba ferindo o Open Closed Principle e o Single Responsibility Principle sem contar os problemas de encapsulamento. Já a verificação na camada de cima é obrigatória segundo o próprio livro do GOF e o Refactoring Guru pq seu código de cima precisa saber qual estratégia jogar pra dentro do código que vai fazer a execuçào. E essa verificação já não é mais uma verificação pra executar regra de negócio mas sim pra apenas instanciar a estratégia correta.
@JulioCesar-xn6rw2 ай бұрын
A gente nao so mudou do service pro client ? Toda vez que um imposto novo for adicionado, o controller que também é uma classe, vai ter que mudar
@RenatoAugustoTech2 ай бұрын
Sim, eu mencionei que não há problema nisso até pq o site do refactoring guru recomenda fazer essa verificação no código cliente, ele precisa estar ciente de qual estratégia irá utiliza, daí tem um padrão que resolve esse problema que é o factory e tem um vídeo que eu abordo uma variação do factory que resolve esse "problema"