Essa é uma das MELHORES práticas de software...

  Рет қаралды 9,084

Augusto Galego

Augusto Galego

Күн бұрын

Пікірлер: 67
@GutoGalego
@GutoGalego Күн бұрын
A partir de hoje, o curso ta disponível na nova plataforma. Em Janeiro e Fevereiro você ainda pode adquirir pelo preço antigo, R$99, com o link aqui embaixo. No mesmo link, tem a opção de comprar um workshop adicional de LeetCode focado especificamente para entrevistas de emprego. Link do curso com desconto temporário: pay.hub.la/L8wi9vio7WPnWbmF8ZIO?coupon=KZbin
@webinargabrielsantos
@webinargabrielsantos 22 сағат бұрын
O acesso será vitalício, assim como era na Udemy?
@Miguelm-del
@Miguelm-del 21 сағат бұрын
@@webinargabrielsantos lá fala 365 dias...
@cordeirogabriel9296
@cordeirogabriel9296 20 сағат бұрын
também gostaria de saber
@jonas5067
@jonas5067 18 сағат бұрын
@@webinargabrielsantos parece que não, no link diz que o acesso é por 365 dias
@Eduardo-eos
@Eduardo-eos 17 сағат бұрын
Não tem mais o acesso vitalício? Na plataforma nova está "Acesso por 365 dias".
@Geralthh
@Geralthh 19 сағат бұрын
O cara simplesmente fez a melhor explicação sobre injeção de dependência.
@jorgerinaldi4981
@jorgerinaldi4981 23 сағат бұрын
finalmente alguem explicou dependency injection de uma maneira que eu entenda
@enzo3305
@enzo3305 Күн бұрын
Show de bola! Você explica muito bem, Augusto. Obrigado!
@luizpereiradasilveira3317
@luizpereiradasilveira3317 22 сағат бұрын
Valeu!
@marceloeduardobenencase5857
@marceloeduardobenencase5857 23 сағат бұрын
Galego, acho que rola você fazer um curso só de backend ein, vai ser maneiro 👀
@matheusricardo164
@matheusricardo164 23 сағат бұрын
Ia ser top mesmo
@bbarreto18
@bbarreto18 17 сағат бұрын
focar em arquitetura e clean code
@otaviotonello
@otaviotonello 7 сағат бұрын
eu compraria sem pensar 2x
@arsnakehert
@arsnakehert 11 сағат бұрын
Um dos poucos insights valiosos que eu pude ter lendo o "Clean Architecture" do tio Bobby foi finalmente entender o conceito e a razão de existir da injeção de dependência. Pelo que entendi, injeção de dependência é fortemente acoplada (heh) à noção de *inversão* de dependência que tu mais brevemente mencionou por nome. *Inversão* de dependência é que seria a solução pro exemplo de tight coupling que tu apresentou, em que o objeto membro dependido é inicializado internamente ao objeto dependente. Isto é, eu tenho a classe A que depende da classe B, e isso faz com que mudanças em B precisem ser reconhecidas internamente a A; a inversão de dependência seria eu introduzir uma classe C da qual tanto A quanto B passam a depender. A "inversão" se dá na B: antes uma classe dependida, agora ela é dependente da interface C e a implementa concretamente. A classe A continua sendo dependente, mas da interface C, cuja implementação concreta ela não precisa conhecer, porque a interface define uma API (ou um protocolo, como parece ser a terminologia no Python). A injeção de dependência seria como que um "detalhe de implementação" da _inversão_ de dependência, no qual precisamos definir que implementação concreta de C vai ser usada por A, então passamos como argumento ("injetamos") uma instância já inicializada da implementação concreta, que é B.
@geserallan8295
@geserallan8295 18 сағат бұрын
Estou lendo aquele livro que você indica “Entendendo Algoritmos, um guia ilustrado para programadores e outros curiosos” como uma introdução. Seu curso será o próximo passo. Obrigado Galego
@jaxrosil7497
@jaxrosil7497 13 сағат бұрын
Acabei de comprar o curso e o workshop e nem sou dev, sou cientista de dados. Tenho certeza que vai ser top porque o Augusto é fera.
@g_st_v
@g_st_v 21 сағат бұрын
obg GugoTalego, finalmente entendi o que é realmente dependency injection... Comprei teus dois cursos da Hupla! abçs bjs mil
@luscasleo
@luscasleo 19 сағат бұрын
Acho esse tema é mimportante. Eu ja cai em armadilhas semelhentas durante meu aprendizado de base. Sendo elas: - Over abstraction: Semelhante ao exemplo citado, não exagere na abstração da ultima linha de código possível. Estabeleça um set de tecnologias (Principalmente banco de dados) que você irá usar para o projeto antes de inicia-lo. Você provavelmente não está fazendo o próximo Apache Airflow, que precisa ter compatibilidade com a maior variedade de ambientes possível. - Utilize DI como uma arma de extinção de Mocks: Na minha concepção mocks é a medida desesperada do dev dizer que algo foi testado pois o alto acoplamento de código o impediu de testar componentes isoladamente (Change my mind, I'm dumb at testing). Pense em DI com a prerrogativa principal de testar LOGICA, quanto mais interfaces injetaveis, menos acoplamento e mais facil é testar uma funcionalidade de forma isolada. - Entenda que há injeções de dependencia que são singleton (Dura o tempo de vida da aplicação) ou contextuais, ou seja, o tempo de vida se limita ao contexto, seja a Requisição a ser processada, seja a Mensagem do broker a ser processada e dependendo de qual lib ou framework que você usa, isso pode implementado de uma forma diferente ou simplesmente não ser implementado (Exemplo do nestjs: docs.nestjs.com/fundamentals/injection-scopes). - Especificamente sobre python, acho que vale mecionar uma funcionalidade que não vejo ser muito comentada que é a ContextVar API (docs.python.org/3/library/contextvars.html). Não, ela não é uma api de Dependency injection propriamente mas há casos em que ela pode se encaixar como solução. Semelhante ao React Context API (Por favor não leve ao pé da letra) ela permite que você crie um ponteiro na camada mais alta do código e na camada de context você injeta um valor distinto (como em um middleware/depends no fastapi) E esse valor vai ser propagado por toda a pilha daquele contexto. Ou seja, você pode meter um use_database() no meio do backend e eu acho isso adoravel.
@cleziorogerio-lb9bf
@cleziorogerio-lb9bf 11 сағат бұрын
Excelente vídeo!
@bcampera
@bcampera Күн бұрын
Sobre funcionamento de hashmaps, já fiz uma entrevista na Amazon pra SDE II e uma entrevista no Google pra Júnior, e ambos perguntaram sobre o funcionamento. Acho que a essa altura, essas entrevistas técnicas dessas big techs são para ver quem pesquisou quais são as regras do "jogo" e pensou em se preparar. (o triste é saber que reprovei na Amazon por estar nervoso e ter falhado em otimizar um leetcode easy, na primeira entrevista de 4 ... 😢 Depois me acalmei e fiz todas as outras 3 entrevistas corretamente )
@gojo2168
@gojo2168 23 сағат бұрын
Caramba que top, não conhecia essa implementação de classe __Slots__ do Python, vou começar a usar isso vai ajudar na questão das classe sempre I inicializarem um dict agr vai ser um array 🙏🏻 a memória agradece
@haraheiquedossantos4283
@haraheiquedossantos4283 20 сағат бұрын
Rapaz. Esta questão que você levantou sobre alterações de bancoa de dados (ou qualquer outro componente de infra) é muita verdade e ta diretamente correlacionada com as questoes de padrões arquiteturais como CA, Hexagonal e afins. Bicho o pessoal faz uma puta inversão de controle para manter as camadas internas mais limpas com um desses discursos. Mas vei você migrar um banco de dados, por exemplo, mexer no código fonte vai ser "o menor dos seus problemas", desde que você tenha uma abstração simples, limpa e amigável. Pior etapa de migrar dados é você garantir que realmente foram migrados consistentemente. Kkkkk. E tem cenarios que realmente faz sentido usar implementação agnóstica que é quando você ta em um cenario que usa um componente X em um ambiente de staging e um componente Y em produção, como usar MailTrap em Homol e sei la o SendGrid em produção. Aí é mais justificável.
@carloshenri1
@carloshenri1 20 сағат бұрын
Nest js tem uma esquema bem claro de como fazer injeção de depêndencia, acho muito legal
@MatheusPitasBaptista
@MatheusPitasBaptista Күн бұрын
Vídeo bom por demais
@justminiko4764
@justminiko4764 Күн бұрын
Hype do vídeo feito 😎👍
@diegosoares1669
@diegosoares1669 10 сағат бұрын
Cara, que explicação incrível. Tem algum curso de princípios de SOLID em Python ?
@costathoughts
@costathoughts 16 сағат бұрын
Alan Holub - uma classe não deve ser definida pelos seus atributos e sim seu comportamento. Dependency Injection em um codebase simples parece um overhead do caramba, quando bem aplicado (por exemplo em um Hexagonal) onde vocês leva todo o comportamento você irá ver o real valor.
@arsnakehert
@arsnakehert 11 сағат бұрын
>uma classe não deve ser definida pelos seus atributos e sim seu comportamento Isto é, as boas práticas pensadas pra evitar caos no OOP levam a algo mais próximo de um paradigma funcional :^) (isso é mais pra uma piada, não leva muito a sério por favor hahah)
@guilhermearantescanella4417
@guilhermearantescanella4417 22 сағат бұрын
excelente video Galego! se eu puder sugerir algo, será que você poderia fazer um vídeo "from scratch" com todo o setup certinho que precisamos fazer (libs, etc) para ter uma ambiente minimamente funcional com tipagem para se usar em python? Por exemplo, Pylance, etc
@gilklebermedeiros4629
@gilklebermedeiros4629 19 сағат бұрын
Bem no ponto que eu estou interessado em aprender dependency injection o galego me solta esse vídeo... Suspeito...🧐🧐😄
@guilhermeaguiar7140
@guilhermeaguiar7140 Күн бұрын
opa Augusto, bom dia! cara, hoje trabalho como Analista de BI (Junior a dois anos) e gostaria de transicionar pra Data Analyst (tenho plano pra trampar na Europa). curto muito a tua didática e me pergunto se o seu curso me ajudaria nessa transição.
@GutoGalego
@GutoGalego Күн бұрын
Cara, sinceramente eu não acho que seja o conteúdo mais adequado pra isso não. Pode te ajudar em algumas coisinhas, mas não sei se faz tanto sentido pra você não. Se você tiver assim um interesse específico em aprender estruturas e algoritmos massa, vai ser um conteúdo legal, mas profissionalmente não sei se te agrega muito
@firzera
@firzera 21 сағат бұрын
Procure por Theo Calvo. Ele tem canal na Twitch. Talvez ajude!
@ndmi0258
@ndmi0258 9 сағат бұрын
O curso emite certificado? Gostaria para a faculdade
@guilhermechaves5288
@guilhermechaves5288 22 сағат бұрын
Nessa nova plataforma, é possível conseguir o certificado do curso? Preciso realizar alguns cursos como atividade complementar na minha faculdade e é necessario enviar os certificados.
@MichelRibeiro187
@MichelRibeiro187 19 сағат бұрын
O acesso será vitalício?
@cordeirogabriel9296
@cordeirogabriel9296 Күн бұрын
Opa bom demais Galego, eu fiz parte do curso na Udemy com os 7 dias, não avancei tanto mas estava sem verba pra comprar ele na época. Uma dúvida, o curso na plataforma nova vai ser vitalício ou assinatura por um ano? Outra dúvida se você vai continuar subindo vídeos com novos conteúdos?Vale a pena adicionar o workshop mesmo sem planos agora pra mudar de emprego pra gringa, só com vagas BR?(ainda não falo inglês) abraços, valeu!
@andersonzzzzzzz
@andersonzzzzzzz 11 сағат бұрын
Estou com uma dúvida relacionada a compiladores para Python. Vou ser direto Para uma aplicação web, qual compilador seria melhor : 1 cpython 2 pypy 3 numba 4 nuitka Claro que cada runtime terá a sua vantagens e desvantagens em relação a aplicações webs porém queria saber a opinião de vocês sobre
@murillosilva
@murillosilva 21 сағат бұрын
O acesso do curso é vitalicio ?
@istarie
@istarie 14 сағат бұрын
Injeção de Dependência 🤝 Inversão de Dependência obs.: são duas coisas diferentes
@gforcel
@gforcel 11 сағат бұрын
Qual seria a diferença?
@arsnakehert
@arsnakehert 10 сағат бұрын
@@gforcel *inversão* de dependência é a real solução pro problema de tight coupling. Digamos que tu tem uma classe dependente, A, e uma dependida, B. A contém uma instância de B e a inicializa em seu construtor. Mudanças em B precisam ser refletidas em A também (digamos que B simplesmente trocou de nome, o nome da classe instanciada dentro do código de A também precisa ser trocado). A solução da inversão de dependência pra desacoplar é ter uma nova classe, C, que define uma interface a ser implementada por implementações concretas. A passa a depender de C. B também passa a depender de C, pois precisa dizer "eu implemento esta interface". A "inversão" se dá em B, que vai de dependida pra dependente. Mas, na hora de instanciar A, como tu vai saber o que instanciar? Interfaces não podem ser instanciadas. Bem, tu passa como argumento a A uma instância de B criada externamente, ou alguma classe que implemente a mesma interface. _Este_ detalhe é a injeção de dependência. Mas o que tu estava fazendo era a inversão de dependência que mencionei.
@costathoughts
@costathoughts 6 сағат бұрын
@ Uma faz com que tudo o que você receba e em sua classe concreta (ou sua implementação concreta) seja abstrações, ou seja, ao invés a classe que esta toda a logica de conexão do banco de dados e faz as operações da mesma, essa classe de db iria implementar uma interface com o CRUD. Ai na classe que tu usa essa DB o construtor vai receber a Interface. Beleza tirou o acoplamento. Agora eu preciso na classe que esta usando a DB "injetar" a referencia concreta do DB, simplesmente é isso.
@istarie
@istarie Минут бұрын
@@gforcel ambas as técnicas estão no vídeo, ele só não citou o nome "Inversão de Dependências". *Injeção: Como mostrado no vídeo, significa receber uma dependência como parâmetro do seu construtor, e a instância dessa dependência é lidada do lado de fora da classe. *Inversão: Por definição, significa "Depender de abstrações e não de implementações". Isso quer dizer que ao invés de esperar uma classe como parâmetro, vc deve definir uma interface para essa classe implementar e utilizar a interface como dependência. No vídeo, temos um exemplo disso quando ele utiliza o *Protocol para definir a interface *EmailSender e implementar na classe *EmailService. Assim, a classe *Notification espera receber qualquer classe que implemente um *EmailSender, ao invés de cravar a dependência em um *EmailService. Normalmente são utilizadas juntas: você abstrai uma classe para uma interface e recebe uma implementação desta interface como argumento em outra classe, como dependência. Muitos frameworks famosos do mercado tem formas de utilizar essas técnicas em conjunto, normalmente chamadas de *IoC Container (IoC -> Inversion of Control) ou *Service Container.
@fadoricagames2031
@fadoricagames2031 19 сағат бұрын
Bom que nessa plataforma dá pra parcelar kkkkk
@nandomax3
@nandomax3 18 сағат бұрын
O spring do Java é 90% um framework pra injeção de dependência 😅
@danilobruno8666
@danilobruno8666 Күн бұрын
Bom dia, Augusto. Teu curso da Udemy ainda vai ficar disponível pra quem quiser comprar? Ou tu vai tirar ele de lá e migrar totalmente? Porque vi que esse da desc é só de leetcode pra entrevista, teoricamente ele não compreende o conteúdo do curso, não entendi isso direito. Pode me explicar?
@GutoGalego
@GutoGalego Күн бұрын
Esse é o da Udemy. Vou vender só pela nova plataforma mesmo. Tem um opcional pra adicionar de leetcode pra entrevistas, mas se não adicionar isso, é o mesmo curso, no mesmo valor, com mais conteúdo
@jeffersonpereira6594
@jeffersonpereira6594 Күн бұрын
​​@@GutoGalegoBoa, pois eu acabei finalizando pela Udemy, já terminei todos, mas o adicional de leetcode para entrevistas eu achei interessante
@GutoGalego
@GutoGalego Күн бұрын
@@jeffersonpereira6594 Dá pra comprar ele separado, só ele com desconto também, nos proximos vídeos eu falo mais sobre isso: pay.hub.la/RGfq0dk8iqDeL5IC5yog?coupon=WORKSHOP
@danilobruno8666
@danilobruno8666 Күн бұрын
Tá na mão. Vou revirar teu curso. Obrigado pelo conteudo de qualidade. ​@@GutoGalego
@jeffersonpereira6594
@jeffersonpereira6594 22 сағат бұрын
@@GutoGalego Opa, valeu mesmo, to comprando agorinha hehehe
@vitorlopesnocce1082
@vitorlopesnocce1082 17 сағат бұрын
Eu nao entendi se o modulo com 10 exercicios para leetcode esta tambem dentro do curso de algoritmos
@GutoGalego
@GutoGalego 17 сағат бұрын
É separado, ali no link tem os dois
@NerdForaDeCasa
@NerdForaDeCasa 23 сағат бұрын
Para desenvolvedor C# teu curso ajuda?
@GutoGalego
@GutoGalego 23 сағат бұрын
Se conseguir entender os vídeos aqui do canal ajuda sim, é na mesma pegada :)
@marcosfreitas9644
@marcosfreitas9644 23 сағат бұрын
Onde posso acessar quais módulos tem o curso?
@GutoGalego
@GutoGalego 23 сағат бұрын
No momento dá de ver na Udemy mesmo, só se for comprar compra pela plataforma nova, pq ta 99 reais e na udemy 349 :) www.udemy.com/course/algoritmos-e-estruturas-de-dados-leetcode/?referralCode=69EF947B98B4945CAE07
@Erick-jq3yw
@Erick-jq3yw Күн бұрын
Augusto, eu estava pensando em comprar o seu curso de algoritmos da Udemy, mas notei que era em Python e eu sou mais de Java mesmo. Você acha que isso pode ser algum impeditivo no aproveitamento do curso?
@OneDev_
@OneDev_ 23 сағат бұрын
Algoritmos vale pra toda linguagem man, é só adaptar os exemplos e atividades, ce já leu entendendo algoritmos? E em Python também, mais é perfeitamente adaptável Afinal pq importa é o conceito e não a linguagem, claro a explicação tem diferença e as vzs até gritante, mas nada impossível
@GutoGalego
@GutoGalego 23 сағат бұрын
Se vc entende meus vídeos aqui no canal explicando com python, é super de boa sim. Os algoritmos e as estruturas não mudam, só um pouco a implementação. Se tiver em dúvida, assite qualquer video aqui no canal que eu resolvo leetcode e vê se faz sentido. O curso é nessa pegada
@lucasrochafernandes8568
@lucasrochafernandes8568 18 сағат бұрын
Você é filho do Lucas Montano?
@MarcosVMSoares
@MarcosVMSoares 21 сағат бұрын
Nossa como OOP eh tao complexo pra coisa tao simples
@igorlmfs
@igorlmfs 13 сағат бұрын
Vc tem alguma ideia do motivo da comunidade Python não gostar de Dependency injection? Me parece meio abominado pela maioria, haha
Não acredito que cobram esse LeetCode em entrevista....
25:05
Augusto Galego
Рет қаралды 25 М.
ONDE ESTÃO AS OPORTUNIDADES PARA PROGRAMAÇÃO NO MUNDO?
16:59
Código Fonte TV
Рет қаралды 9 М.
We Attempted The Impossible 😱
00:54
Topper Guild
Рет қаралды 56 МЛН
小丑教训坏蛋 #小丑 #天使 #shorts
00:49
好人小丑
Рет қаралды 54 МЛН
I built a FLEXIBLE ENGINE (New Rotary Design)
18:58
Integza
Рет қаралды 1,7 МЛН
Inside the V3 Nazi Super Gun
19:52
Blue Paw Print
Рет қаралды 2,3 МЛН
Porque EU NÃO GOSTO da Arquitetura Hexagonal
13:57
Matheus Leandro Ferreira
Рет қаралды 332
one year of studying (it was a mistake)
12:51
Jeffrey Codes
Рет қаралды 182 М.
Porque JavaScript é uma Linguagem BOA?
23:05
Augusto Galego
Рет қаралды 13 М.
The Return of Procedural Programming - Richard Feldman
52:53
ChariotSolutions
Рет қаралды 62 М.
5 deadly Rust anti-patterns to avoid
13:25
Let's Get Rusty
Рет қаралды 38 М.
FASTER JavaScript In 2025 With Sets
13:13
Jack Herrington
Рет қаралды 24 М.
Why Does Diffusion Work Better than Auto-Regression?
20:18
Algorithmic Simplicity
Рет қаралды 428 М.
CONHECIMENTO PROFUNDO
22:22
Augusto Galego
Рет қаралды 21 М.