Coroutines - O que são corrotinas? | Dias de Dev

แชร์
ฝัง
  • เผยแพร่เมื่อ 27 พ.ย. 2024

ความคิดเห็น • 48

  • @diogomascarenha
    @diogomascarenha 4 ปีที่แล้ว

    Parabéns pelo vídeo!
    Gostei da sua explicação!
    Já tive que usar generators algumas vezes, mas a que lembro mais recente foi para não estourar a memória por conta de um array em um relatório em que eu tinha que gerar uma listagem de vários valores relacionados a vendedores, sendo que a quantidade de colunas aumentava de acordo com o intervalo de datas, então caso passasse um intervalo de datas grande, tinham muitas colunas (quantidade de dias vezes a quantidade de valores para serem mostrados por vendedores, e as linhas eram cada vendedor cadastrado no sistema).
    A Query no banco de dados trazia cada item por linha usando generate_series do PostgreSQL para gerar o intervalo de datas, então como eram muitos registros, o fetch era feito por item e a solução do relatório fazer a transposição dos dados usando yield e escrita via stream, porque senão, estourava memória.
    Continue compartilhando seu conhecimento!
    Sucesso para você!
    Um abraço!

    • @DiasDeDev
      @DiasDeDev  4 ปีที่แล้ว +1

      Sensacional. Esse exemplo de muitos dados vindo do banco é o mais comum de acontecer mesmo.

  • @ruirossi6241
    @ruirossi6241 3 ปีที่แล้ว

    Obrigado, Vinícius. Exemplo simples e prático. Ajudou bastante.

    • @DiasDeDev
      @DiasDeDev  3 ปีที่แล้ว +1

      Opa, fico feliz que tenha útil, Rui.
      😁

  • @AnaLuizaMKarl
    @AnaLuizaMKarl 4 ปีที่แล้ว +2

    parabéns Vinícius! conteúdo de qualidade, ótima didática e muito explicativo =)

    • @DiasDeDev
      @DiasDeDev  4 ปีที่แล้ว

      Muito obrigado pelo feedback, Ana!

  • @wesley4973
    @wesley4973 4 ปีที่แล้ว +1

    Já cheguei mandando like, conteúdo sempre top, aguardando ansioso pelo vídeo de generator.

    • @DiasDeDev
      @DiasDeDev  4 ปีที่แล้ว

      Opa, valeu pela moral, Wesley! Tmj!!

  • @fernando-felicio
    @fernando-felicio 4 ปีที่แล้ว +1

    Tudo tranquilo Vinícius?
    Seria uma boa sim ter o vídeo sobre generator.
    Pra mim é igual caviar, já ouvi sobre, mas nunca soube onde utilizar.

    • @DiasDeDev
      @DiasDeDev  4 ปีที่แล้ว

      Boa, Fernando. Vou preparar sim! :-D

  • @LuizFernando-uo2ed
    @LuizFernando-uo2ed 4 ปีที่แล้ว +2

    seria maneiro um vídeo sobre generator!!!
    Achei espetacular o vídeo, tá de parabéns!

    • @DiasDeDev
      @DiasDeDev  4 ปีที่แล้ว

      Opa, seu desejo é uma ordem

  • @LumenLohn
    @LumenLohn 4 ปีที่แล้ว +1

    Excelente, como sempre!
    E adoraria um vídeo sobre generators!

    • @DiasDeDev
      @DiasDeDev  4 ปีที่แล้ว

      Boa, Josemar. Vou preparar. Valeu pelo feedback!

  • @eduardof.o2628
    @eduardof.o2628 9 หลายเดือนก่อน

    Excelente explicação.

    • @DiasDeDev
      @DiasDeDev  9 หลายเดือนก่อน

      Fico feliz que tenha curtido! :-D

  • @talyssonlima2820
    @talyssonlima2820 4 ปีที่แล้ว +4

    Seria legal sim um vídeo de generator!

    • @DiasDeDev
      @DiasDeDev  4 ปีที่แล้ว

      Opa, vou preparar algo legal. :-D

  • @claudioperesmendes9646
    @claudioperesmendes9646 ปีที่แล้ว

    show de bola

    • @DiasDeDev
      @DiasDeDev  ปีที่แล้ว

      Que bom que curtiu, Claudio.
      😁

  • @jansenfelipe
    @jansenfelipe 4 ปีที่แล้ว

    Muito bom mano!! Vc explica bem demais!

    • @DiasDeDev
      @DiasDeDev  4 ปีที่แล้ว

      Opa, valeu demais, man!

  • @niltonduarte3531
    @niltonduarte3531 2 ปีที่แล้ว +1

    Fale mais sobre os generators

    • @DiasDeDev
      @DiasDeDev  2 ปีที่แล้ว +1

      Opa, já falei aqui, Nilton:
      th-cam.com/video/1_TnGAxEoPk/w-d-xo.html
      :-D

  • @yteasantos
    @yteasantos 2 ปีที่แล้ว

    Valeu!

    • @DiasDeDev
      @DiasDeDev  2 ปีที่แล้ว

      Obrigado demais, Erick!
      🤩

  • @michelhenrique9546
    @michelhenrique9546 4 ปีที่แล้ว

    Muito bom!

    • @DiasDeDev
      @DiasDeDev  4 ปีที่แล้ว

      Que bom que curtiu, Michel. :-)

  • @BcVEVO
    @BcVEVO 4 ปีที่แล้ว

    Fala Vini parabens pelo conteudo!
    Existe o Swoole PHP tambem que usa a coroutine, se puder ate fazer um video demonstrando o framework seria legal :)
    tmj!!

    • @DiasDeDev
      @DiasDeDev  4 ปีที่แล้ว

      Fala, xará! Pretendo fazer algo no futuro sim. Até por isso não usei ele de exemplo também.
      Valeu pela dica. :-D

  • @jeidison
    @jeidison 4 ปีที่แล้ว

    Top

  • @caiohenrique9301
    @caiohenrique9301 4 ปีที่แล้ว

    Mano! tu é sensacional, já tinha visto uns vídeos seu no canal da alura e cara, é contagiante ver o quão voce domina essa linguagem!! Sei que tu é tutor da alura, mas seria sensacional um curso seu completo de php!! Enfim, fica uma dúvida que talvez possa servir de vídeo :)
    A respeito da execução do php ... tipo, php é como se fosse uma especie de framework em C, pelo menos eu vejo assim husauhshua, então assim, minha dúvida é, quando é gerado os opcodes, são gerados em base da linguagem do php mesmo, ou são apartir do código em C ?

    • @DiasDeDev
      @DiasDeDev  4 ปีที่แล้ว +3

      Opa, fico muito feliz que você curta meu trabalho, Caio.
      Agora quanto ao PHP. Ele sim nasceu como um framework de C pra web, mas hoje é uma linguagem completa. A runtime de PHP é escrita em C. É o motor que efetivamente executa os códigos PHP.
      Os opcodes que o opcache são códigos já "parseados" de PHP no formato que a engine entende. :-)
      Essa é uma superssimplificação do processo, mas espero que ajude a entender um pouco

  • @tariqueramos7416
    @tariqueramos7416 3 ปีที่แล้ว

    Parabéns conteúdo muito legal, no php 7 já tem ou só a partir do 8?

    • @DiasDeDev
      @DiasDeDev  3 ปีที่แล้ว +1

      Desde o PHP 5.5.
      rsrsrs

  • @Lucas-mu5no
    @Lucas-mu5no 4 ปีที่แล้ว

    ótimo vídeo cara. Vou assistir de novo pra entender direito =D Com essas coroutines eu poderia então fazer com que a aplicação executasse um método em background e após responder a request de um client?
    Tipo, client fez request, eu chamo um método que vai executar uma tarefa demorada usando o yield pra não bloquear o código e assim posso responder a request pro client. Funcionaria?

    • @DiasDeDev
      @DiasDeDev  4 ปีที่แล้ว +1

      Lucas, não porque pra devolver a resposta o processo precisa ser finalizado. Nesse seu caso você quer algo como fila de mensagens, ou algo mais rudimentar como fastcgi_finish_request

    • @Lucas-mu5no
      @Lucas-mu5no 4 ปีที่แล้ว

      @@DiasDeDev Entendi, no meu caso esse fastcgi_finish_request não estava atendendo o que eu precisava, o que fiz foi fazer uma nova request pro servidor com timeout zero e abafei a exceção, assim eu consigo responder pro client e executar as rotinas demoradas em background.
      Eu não poderia usar um Job (como normalmente faço com o Laravel), pq estou fazendo um plugin pra wordpress, então as opções são limitadas pois quero atingir o máximo possível de ambientes =D

  • @RonyAdersonpc
    @RonyAdersonpc 2 ปีที่แล้ว

    Fala sobre o Fibers parece muito com programação paralela

    • @DiasDeDev
      @DiasDeDev  2 ปีที่แล้ว

      Fibers são exatamente o que foi citado nesse vídeo: corrotinas. :-)
      Aqui eu falo sobre Fibers: th-cam.com/video/CFKGFYjJeY8/w-d-xo.html

  • @fernandofarofa
    @fernandofarofa 2 ปีที่แล้ว

    should i swoole or should i go

  • @McLipinhoTv
    @McLipinhoTv 6 หลายเดือนก่อน

    Interessante. Creio que não existe em Java, ou existe?

    • @DiasDeDev
      @DiasDeDev  6 หลายเดือนก่อน

      Em Kotlin eu sei que tem, então imagino que deva ser possível fazer com Java, mas "nativamente", até onde eu sei, não.

  • @thalles-dev
    @thalles-dev 3 ปีที่แล้ว

    Faz um vídeo sobre generator :)

    • @DiasDeDev
      @DiasDeDev  3 ปีที่แล้ว

      Opa, já tem, Thalles. :-D
      Tava até na tela final do vídeo. ;-p

  • @DanielHe4rt
    @DanielHe4rt 4 ปีที่แล้ว

    já entro dando like e rt no video fodase fi