- 21
- 59 403
DifferDev
Brazil
เข้าร่วมเมื่อ 6 ส.ค. 2020
Cursos da área de tecnologia, aqui você encontrará vídeo aulas sobre um conteúdo diferenciado, aquilo que poucos ensinam em programação, nossos objetivos é formar as melhores pessoas desenvolvedoras do mercado, siga-nos e sempre aprenderá coisas novas.
LAZY LOADING PATTERN - EVITANDO O PROBLEMA N+1 COM LAZY OBJECTS DO PHP 8.4
Fazemos uma alteração no código para que um construtor que consultava a banco de dados massivamente, deixe de ficar consultando desnecessariamente sem mexer na implementação real.
CUPOM JETBRAINS(PHPStorm): DifferDev
CURSO Next-Gen PHP: differdev.com/php-next-gen
CUPOM JETBRAINS(PHPStorm): DifferDev
CURSO Next-Gen PHP: differdev.com/php-next-gen
มุมมอง: 1 191
วีดีโอ
Fazendo HERANÇA em PHP de uma classe FINAL sem parecer um IDIOTA!
มุมมอง 1.2Kปีที่แล้ว
🔥 Garanta sua vaga na Turma II da Mentoria Next-Gen PHP! 🚀 Início: 04 de fevereiro de 2025 differdev.com/php-next-gen/ Foi publicada um biblioteca que faz a remoção da palavra reservada "final" do PHP. Este vídeo tem o intuito de promover uma melhor escrita e como solucionar o problema de não poder fazer herança de um classe FINAL. Portando não há necessidade de se usar de recursos perigosos, c...
Aprenda de uma vez por todas o Repository Pattern e suas formas na prática com Laravel e RabbitMQ.
มุมมอง 3.1Kปีที่แล้ว
O Repository Pattern é um padrão muito complexo e cheio de formatos, nesse vídeo eu falo dos formatos em diferentes literaturas como Patterns Of Enterprise Application Architecture e Domain-Driven Design, veja como é feito a implementação na prática com PHP 8 Laravel 10 e fazendo um strategy para RabbitMQ. (22:04) - Prática, adicionando Generic Repository ao Laravel (22:34) - Implementando Repo...
Criando um ValueObject usando Readonly Class com TDD no PHP 8.2
มุมมอง 1.4Kปีที่แล้ว
O PHP 8.1 nos apresentou o readonly por propriedades de classes, e agora no 8.2 temos o readonly class, neste vídeo eu crio um Value Object de CNPJ usando TDD e colocando readonly class, com uma pitada a mais de PHP usando \Stringable interface.
Novidades do PHP 8.1: Refatorando Abstract Class para Enum
มุมมอง 2.4K2 ปีที่แล้ว
Usávamos antigamente em PHP abstract class para fingir uma enumeração, agora no PHP 8.1 podemos usar as Enums. Neste vídeo faço uma refatoração de código onde troco código antigo para o novo formato Enum do PHP 8.1 #php #php8 #phpscripts #phptutorials #phpdeveloper Conteúdo por Leonardo Tumadjian
Design Patterns: O segredo do Strategy em PHP como nunca te ensinaram!
มุมมอง 3.5K2 ปีที่แล้ว
Neste vídeo eu mostro de um forma completamente prática de como implementar um design pattern Strategy, em cima de um biblioteca de logs com teste unitários usando o PHPUnit. 🔥 Garanta sua vaga na Turma II da Mentoria Next-Gen PHP! 🚀 Início: 04 de fevereiro de 2025 differdev.com/php-next-gen/ #php #php8.1 #phpasync #coroutines #phpparallel Link do formulário do material escrito de Design Patter...
Fibers no PHP 8.1: criando um EventLoop simples de teste para execuções assíncronas com coroutines!
มุมมอง 5K3 ปีที่แล้ว
Nesta aula demonstro como usar as Fibers no PHP 8.1 em conjunto com um EventLoop para alcançarmos execuções assíncronas! Que fique claro que não é uma implementação para produção sendo um exemplo de como a mecânica de um EventLoop funciona juntamente com as Fibers a nova implementação de green threads nativa do PHP 8.1! 🔥 Garanta sua vaga na Turma II da Mentoria Next-Gen PHP! 🚀 Início: 04 de fe...
Design Patterns: Factories em PHP 8 - Por que fabricar objetos é muito poderoso?
มุมมอง 5K3 ปีที่แล้ว
Uma sequencia de padrões bem conhecidas são os Factories, os tipos de padrões de criação mais simples porém muito poderosos, nessa aula mostro o surgimento desses padrões e a grande importância deles. 🔥 Garanta sua vaga na Turma II da Mentoria Next-Gen PHP! 🚀 Início: 04 de fevereiro de 2025 differdev.com/php-next-gen/ #php #php8 #designpatterns #boaspraticas #designpatterns #dependencyinjection...
Design Pattern Decorator de mercado aplicado na prática com PHP 8!
มุมมอง 2.9K3 ปีที่แล้ว
Aprenda na prática como funciona o Design Pattern Decorator no PHP 8, quais suas vantagens e desvantagens. Usando TDD fiz uma implementação do padrão Decorator, adicionando filtros como decorações. 🔥 Garanta sua vaga na Turma II da Mentoria Next-Gen PHP! 🚀 Início: 04 de fevereiro de 2025 differdev.com/php-next-gen/ Link do github: github.com/leoqbc/DesignPatternsPHP-Decorator #php #php8 #design...
4 padrões de mercado (PSRs) do PHP que você precisa conhecer!
มุมมอง 9K3 ปีที่แล้ว
As PSRs são propostas de definições de inúmeras formas de se trabalhar com o PHP, muitas vagas de emprego pedem o conhecimento delas, nesse vídeo eu falo quais são as mais importantes e exigidas por recrutadores técnicos. 🔥 Garanta sua vaga na Turma II da Mentoria Next-Gen PHP! 🚀 Início: 04 de fevereiro de 2025 differdev.com/php-next-gen/ #php #php8 #phppsrs #designpatterns #boaspraticas #progr...
PHP em fila SQS processando Lambda, nunca foi tão fácil PHP em serverless na AWS
มุมมอง 3.4K3 ปีที่แล้ว
Refatorei um contêiner Docker da lambda PHP 8 para Alpine, para que nesse vídeo eu mostre como comunicar uma fila SQS da AWS com uma Lamba escrita em PHP 8. FaaS = Function as a Service / Função como Serviço Formulário de pesquisa: pt.surveymonkey.com/r/KPCMKZT Link do repo base no github: github.com/leoqbc/sqs-and-lambda-php #php #php8 #serverless #phplambda #phpserverless #sqs Conteúdo by Leo...
Refatorando loop foreach em PHP 8 como você provavelmente nunca viu!
มุมมอง 2.1K3 ปีที่แล้ว
Neste vídeo mostro a refatoração de um algoritmo polyfill da nova função do PHP 8.1, array_is_list, onde mostro 2 formas de fazer iteração com arrays sem usar o mais comum que é o "foreach". Formulário de pesquisa: (ajude-nos a trazer melhores conteúdos) pt.surveymonkey.com/r/KPCMKZT Link do site do artigo: wallacemaxters.com.br/blog/2021/03/09/php-8.1-funcao-array-is-list Link da doc do ArrayI...
PHP 8 assíncrono com Swoole em AWS Lambda
มุมมอง 7K3 ปีที่แล้ว
Em processamento sequencial o custo de execução pode aumentar muito em caso de requisições que tomam tempo, com programação assíncrona usando o Swoole, conseguimos reduzir esse tempo fazendo execuções em paralelo. Link de pesquisa, queremos sua opinião! (É SUPER RÁPIDO) pt.surveymonkey.com/r/KPCMKZT Site da doc do Swoole: www.swoole.co.uk/ Github: Em breve (00:00) - Intro (00:37) - Momento JABA...
Union Types em PHP 8 e limpando código com Object Calisthenics
มุมมอง 1.5K3 ปีที่แล้ว
Union types facilitam na hora de validar tipos de dados passados como parâmetros, com ele conseguimos mais flexibilidade, aproveitei e limpei um código velho em PHP usando duas regras de Object Calisthenics. Link de pesquisa, queremos sua opinião! (É SUPER RÁPIDO) pt.surveymonkey.com/r/KPCMKZT 1. One level of indentation per method. 2. Don't use the ELSE keyword. Veja abaixo a lista das regras ...
Refatorando validação com Attributes, outra nova feature do PHP 8
มุมมอง 2.1K3 ปีที่แล้ว
Os Attributes em PHP 8 estão fantásticos, fiz um Factory de validação de Entity automática a partir do design pattern Factory Method em conjunto com Reflections. 00:00 Introdução 01:14 Como eram os annotations antigamente? 02:03 O que vamos fazer? 03:39 O Factory Method pattern 04:52 Colocando os atributos 08:38 Entendendo a validação 09:58 A classe Factory 10:35 Criando o atributo de validação...
PHP 8 rodando na AWS lambda, na raça, com docker, criando um próprio runtime!
มุมมอง 2.9K3 ปีที่แล้ว
PHP 8 rodando na AWS lambda, na raça, com docker, criando um próprio runtime!
Fiz um simples POC de como funciona o WeakMap, a nova funcionalidade do PHP 8!
มุมมอง 9114 ปีที่แล้ว
Fiz um simples POC de como funciona o WeakMap, a nova funcionalidade do PHP 8!
PHP 8 REFACTORING, limpando código com promoção de atributos no construtor!
มุมมอง 7694 ปีที่แล้ว
PHP 8 REFACTORING, limpando código com promoção de atributos no construtor!
Refatorando em PHP 8 - com Named Arguments
มุมมอง 9494 ปีที่แล้ว
Refatorando em PHP 8 - com Named Arguments
Refatorando código de PHP velho para PHP 8 com match expression e Calisthenics.
มุมมอง 2.2K4 ปีที่แล้ว
Refatorando código de PHP velho para PHP 8 com match expression e Calisthenics.
Teste o PHP8 beta usando docker em minutos
มุมมอง 8694 ปีที่แล้ว
Teste o PHP8 beta usando docker em minutos
Muito bom, a passagem de parametros no create do factory eu passaria um Dto como transferencia de dados, assim não colocaria o array ali com (object), ficou muito bom!
Boa também prefiro, evito array ao máximo possível era mais para exemplo, mas bom ponto levantado!
Lamento não ter conseguido me cadastrar para receber o material. Como posso resolver isso?
Insano!!!
Que conteúdo sinistro!!
Valeu rapaz um abraço!
Ótimo video, mas passar o parâmetro ['storekeys'] para o "get" poderia ser removido, já que a informação principal e o $this->applicationEnv!
Em 2024 vendo seus vídeos, bom demais.
Agradeço demais pelo comentario e por acompanhar, um abraço!
Conteúdo muito rico e interessante pra pouco engajamento. O TH-cam é injusto.
Obrigado demais pelo comentario,fiquei muito tempo sem gravar daí da aquela caída no algoritmo, mas vou voltar a postar mais, agradeço pelo apoio!
Top demais!
Valeu Cassius um grande abraço!
Legal! Ao mesmo tempo isso não vai resolver o problema do N + 1 completamente, certo?
dependendo do algorítmo o problema N + 1 ainda iria acontecer se a cada usuário fossem recuperadas todas as bids
@@marcosgrimmsim não se trata da resolução na necessidade de percorrer todos usuários para acessar todas as bids de cada usuário, daí a solução seria acessar as bid de forma separada, porém a solução apresentada, evita o N + 1 por default, ou por separação de busca de usuário individual ou map e só será ativado a busca de bids quando o atributo do objeto for chamado.
@@leonardotumadjian35 muito obrigado por complementar!
Parabéns pelo conteúdo, muito massa!
Muito obrigado Lucas, um abraço!
Como sempre, conteúdo sensacional! Aprendi demais, valeu!!!
Valeu Matheus, agradeço demais!
excelete
Valeu Fabio um grande abraço!
Cara, muito bom. Espero que venham muitos mais, obrigado.
Obrigado pelo comentário! vamos que vamos, em breve mais conteúdos!
Seus vídeos são incriveis, muito bom ter voce na comunidade do php!!!
Muito obrigado pelo feedback! fico feliz em ajudar um abraço!
Já por aqui! Quando sai vídeo nesse canal, é certeza de conteúdo de qualidade!
Agradeço demais pela presença e pelo comentário! um abraço!
bem vindo de volta
Obrigado, um abraço!
Cara, muito boa essa aula, sensacional. Uma duvida que fiquei, é de onde ficaria essa configuração do container. Ele ficaria em controller mesmo? Novamente, conteudo muito bom, estou assistindo as outras aulas, vlwwwwww!!!!
Obrigado pelo comentário! respondendo, normalmente o container fica na camada de setup do framework, cada um tem o seu, no caso do Laravel por exemplo fica em ServiceProviders, alí você configura suas injeções.
Finalmente uma abordagem lúcida sobre repositórios no Laravel.
Agradeço o comentário Daniel, grande abraço!
Sensacional!
Obrigado Daniel um grande abraço!
Usar Swoole seria uma boa para processar arquivos grandes e persistir os dados no banco, ou há uma abordagem melhor para isso?
Sim porém não recomendaria o uso de uma lambda serverless, pois lambdas são limitadas em input e também em tempo de execução, fora o alto custo, lambdas são feitas para processos rápidos, é mais vantajoso ter um servidor Swoole e processar seus arquivos em workers independentes com coroutines.
@@DifferDev Show de bola! Muito obrigado.
Interessante essa implementação de Repository. Vou brincar um pouco com ela. Muito bacana o vídeo. 👏🏻👏🏻.
Obrigado Lucas, fico feliz que tenha gostado e que possa ser útil para seus projetos!
caraio tu eh um heroi
Opa que show fico feliz, consegui ajudar? Se puder dar detalhes seria legal, um abraço
aqui na empresa a gente tem usado bastante o Pint do pessoal do laravel para essa parte de coding styling
Fala Patrício, agradeço seu comentário, sim o Pint usa uma lib chamada csfixer como base, o legal é que ele é focado em Laravel então reconhece o padrão que o Framework usa, por isso é recomendado!
@@DifferDev Sim sim, mas usando nele a psr12 e funciona muito bem e tem extensões para o vscode, funciona muito bem
Sim porém pra quem não usa Laravel é desnecessário, pois ele vem com dependências extras, o csfixer é indicado para microframeworks ou projetos php sem frameworks ou que talvez sejam legados, o Pint não funciona em projetos antes de php 8.1 por exemplo, mas vai de gosto.
utilidade => nenhuma
Para o seu intelecto sim
Muito bom, lembrou um pouco o Golang. Alias, enquanto o PHP nao faz isso nativamente, pode ser uma boa alternativa quebrar isso em um micro serviço com Go. Abraço!
Agradeço o comentário! sim bem observado o Swoole tem inspiração no Golang no seu modelo de uso de corrotinas!
Excelente didatica parabéns !
Opa muito grato pelo comentário, um grande abraço.
Foi lançado o vídeo sobre PSR-7 ?
Fala Douglas tudo bem? Ainda não fiz, tô pensando sim aliás acredito que será o próximo vídeo!
@@DifferDev valeu. Seu conteúdo é de muito alto nível com o PHP ... . Não desista do canal. kkk
Vídeo top dms !! Agradeço pelo conteúdo.
Opa obrigado Anderson, um grande abraço
Grande Léo, aula muita boa, e gostei do exemplo dado imaginando um cenário real, facilita o aprendizado.
Opa Felipe agradeço o comentário, fico feliz que tenha gostado um abraço
Obrigado! Parabéns pelo vídeo!
essa barba e intimidadora
Tenho uma dúvida, digamos que no frontEnd tenhamos um local onde o usuário poderia escolher a forma de log através de um rádio button: ['console', 'file'], como instanciar as classes de forma dinâmica? Eu teria que ter um LogStrategyFactory que recebe esse parâmetro e retorna a instância?
Nomelmante esse controla não relaciona com o Front, mas você pode controlar, e criar um factory baseado na string passado para a classe.
Com esse Union Type é mais fácil de implementar o padrão Either visto em outras linguagens como Node ou Dart?
Sim mesmo conceito e tem and e or
meu nome é Eneias...o dev! <3
Queria muito ver o pattern memento
Oi obrigado pelo comentário e pela sugestão, vou colocar na fila!
eu teria feito diferente.. adicionaria um array no início com os nomes do ambientes e no primeiro if adicionaria uma nova condição (ou criado um novo if): $stages = [ 'staging', 'development', 'production']; $if (config != 'storekeys' || !array_key_exists($stageEnv, $stages)) { return ["error" => "don't set storeys or stage"]; } e também usaria if pra demais situações: if (array_key_exists($stageEnv, $stages) && stageEnv === 'staging' || stageEnv === 'development'){ return ... } if (array_key_exists($stageEnv, $stages) && stageEnv === 'production'){ return ... } die("message error");
Um código que provávelmente daqui 4 meses nem você saberia dar manutenção lol
Top!
Muito grato pelo comentário, um abraço!
Muito show, ganhou um seguidor.
Opa humberto muito obrigado por seguir e apoiar, isso me motiva a continuar, um abraço!
eu fiquei estudando esse conteudo e agora vendo seu video eu validei que aprendi certo
Que bom que esse conteúdo te ajudou a validar seus estudos, fico contente, grande abraço!
muito show mano!
Opa valeu Raziel, um abraço!
Massa demais!! Por favor mais vídeos
Obrigado pelo comentario, em breve farei mais, um abraço
Que aula incrivel!! obrigado por compartilhar
Obrigado Devsnoob, fico feliz que tenha gostado agradeço por sua mensagem um abraço!
faltou fazer o if (count($video) == 0 ) virar if (empty($video))
Agradeço a sugestão mas não há necessidade, pois o count considera qualquer valor diferente de Array como zero, eliminando a necessidade da checagem com "empty" da qual é horrível e não recomendável em boas práticas.
@@DifferDev talvez eu esteja errado mesmo, mas eu acho q o count vai contar todos itens para validar, já o empty vai apenas verificar se existe algum elemento na array... então, se a array possuir uns 200 mil itens talvez não seja o ideal usar o count.
Entendo seu ponto, neste caso estou verificando se não há nenhum e esse é o interesse na condição negada, sobre o tamanho da array não é uma boa prática confiar em tabelas que podem chegar a altas quantidades, nesse caso seria mais válido a checagem se feita por Query no banco, e não trazer todos os registros, ou na opção de paginar o conteúdo.
Confesso que eu sou dos estaticos kkkk
Eu também era, hoje já evito hehehe
Eu enviei um email pedindo o ebook. Obrigado pelo vídeo!
Opa Bruno como está no Google forms não recebo notificação, daí acabo não vendo quem mandou, vou fazer isso até o final da semana, obrigado pelo interesse!
top
O Pai obrigado!
Pô professor, tinha vindo aqui ver se o senhor tinha colocado vídeo novo hehehe. Show de bola! Obrigado mais uma vez pelo conteúdo!
Opa que bom que gostou, um abraço!
Muito show meu querido, não aguenta mais ficar vendo diagrama de classes, e com PHP entendi mole mole
Valeu amigo fico feliz em ajudar, abraço!
Muito bom!
Opa obrigado Mateus um abraço