Novidades do PHP 8.2: Readonly classes | Dias de Dev
No final de Novembro de 2022 o PHP 8.2 está planejado para ser lançado e nesse #shorts nós vamos falar sobre uma novidade bem simples: readonly classes.
Com essa RFC, quando nós tivermos alguma classe que defina todos os atributos como readonly, nós podemos marcar a classe toda como readonly. Isso vai deixar o código um pouco mais conciso já que não vamos precisar ficar repetindo essa palavra chave em todas as propriedades.
E se quiser apoiar o canal e me incentivar a continuar criando conteúdo gratuito, você pode considerar me dar um "Valeu Demais" aqui no YouTube ou se tornar um "sponsor" lá no GitHub: https://github.com/sponsors/CViniciusSDias
----------------------------------
Para mais conteúdos sobre boas práticas de programação, testes, arquitetura de software e tudo que há de bom, não se esqueça de se inscrever e ativar o sininho para receber notificações.
Testes de software são um assunto bastante extenso, complexo e MUITO interessante. Nesse vídeo eu crio testes reais em uma base de código de produção. Com a criação desses testes nós vamos nos deparar com problemas reais do dia-a-dia da escrita de códigos e vamos ver que é possível ser termos código testável de forma isolada, sem a necessidade de testar junto o banco de dados, o framework, etc.
Se quiser aprender mais sobre testes e programação no geral, aqui tem 10% de desconto para assinar a Alura:
https://alura.com.br/promocao/diasdedev
0:00 - Introdução
0:40 - Conhecendo o código a ser testado
2:10 - Criando o primeiro teste de unidade
7:17 - Como saber quantos e quais testes criar?
8:16 - Entendendo o restante do código
10:29 - Criando o segundo teste de unidade
13:50 - Problemas do mundo real
15:10 - Conclusão
----------------------------------
Para mais conteúdos sobre boas práticas de programação, testes, arquitetura de software e tudo que há de bom, não se esqueça de se inscrever e ativar o sininho para receber notificações.
Para entrar em contato:
Telegram: https://t.me/diasdedev
Twitter: https://twitter.com/cviniciussdias
LinkedIn: https://www.linkedin.com/in/cviniciussdias/
GitHub: https://github.com/CViniciusSDias/
...
https://www.youtube.com/watch?v=z5RerQfPcvE
Criptografia é a área que estuda técnicas e práticas para comunicação segura na computação. Já encriptação, ou cifragem, é o processo de transformar uma informação em algo que seja impossível ler, a não ser por aqueles que possam decifrar nossos dados.
Para trabalhar com encriptação, utilizamos um algoritmo de chave simétrica ou chave assimétrica. Cada um deles possui suas vantagens e desvantagens.
Neste vídeo nós vamos utilizar um algoritmo de encriptação usando chave simétrica para cifrar um dado utilizando técnicas como vetor de inicialização e prevenção de ataques de side-channel como timing attack (ataque de temporização).
Para atingir esse objetivo, vamos utilizar uma das bibliotecas de criptografia mais conhecidas do mundo: a libsodium. Essa biblioteca escrita em C possui diversas funções já configuradas com os melhores algoritmos da atualidade para facilitar nosso trabalho quando o assunto é criptografia, seja fazendo hashing, encriptação ou assinaturas digitais.
Se quiser aprender mais sobre segurança e tecnologia em geral, aqui tem 10% de desconto na Alura:
https://alura.com.br/promocao/diasdedev
E se quiser apoiar o canal e me incentivar a continuar criando conteúdo gratuito, você pode considerar me dar um "Valeu Demais" aqui no YouTube ou se tornar um "sponsor" lá no GitHub:
https://github.com/sponsors/CViniciusSDias
0:00 - Introdução
0:25 - O que é criptografia?
1:18 - O que é encriptação ou cifragem?
2:07 - Algoritmos de chave simétrica e de chave assimétrica
3:25 - Realizando a cifragem (encriptando um texto)
10:22 - Realizando a decriptação (decifrando a informação)
12:44 - Revisão dos conceitos de vetor de inicialização (nonce), chave simétrica e libsodium
14:16 - Conclusão
----------------------------------
Para mais conteúdos sobre boas práticas de programação, testes, arquitetura de software e tudo que há de bom, não se esqueça de se inscrever e ativar o sininho para receber notificações.
Para entrar em contato:
Telegram: https://t.me/diasdedev
Twitter: https://twitter.com/cviniciussdias
LinkedIn: https://www.linkedin.com/in/cviniciussdias/
GitHub: https://github.com/CViniciusSDias/
...
https://www.youtube.com/watch?v=4MCO-FgukcA
#Memoization basicamente é um padrão para realizarmos #cache do processamento de funções.
Se uma função tem computação pesada e toda vez que a chamamos com os mesmos parâmetros, o resultado é o mesmo, podemos tirar proveito deste padrão para aumentar a performance de nossa aplicação.
Este padrão é muito utilizado no mundo front-end com funções como React.memo, createSelector, etc.
(0:00) - Introdução
(0:55) - Propósito do padrão
(1:42) - Exemplo prático
(2:54) - Aplicando memoization
(7:02) - Executando o exemplo
(7:35) - Revisão
(8:54) - Conclusão
----------------------------------
Para mais conteúdos sobre boas práticas de programação, testes, arquitetura de software e tudo que há de bom, não se esqueça de se inscrever e ativar o sininho para receber notificações.
Para entrar em contato:
Telegram: https://t.me/diasdedev
Twitter: https://twitter.com/cviniciussdias
LinkedIn: https://www.linkedin.com/in/cviniciussdias/
GitHub: https://github.com/CViniciusSDias/
...
https://www.youtube.com/watch?v=ZNIFN8NTvjw
Que o #PHP 8 está cheio de novidades enormes você já sabe, mas as minhas #novidades preferidas são as mais simples.
Nesse vídeo vou mostrar 3 novas funções de string bem simples mas muito úteis pro dia a dia.
(0:00) - Introdução
(0:30) - Citando catches sem variável
(1:13) - Mão na massa
(2:00) - Como era antes do PHP 8
(2:30) - Nova função str_contains
(3:10) - RFC da str_contains
(5:12) - Funções str_starts_with e str_ends_with
(6:13) - RFC da str_starts_with e str_ends_with
(7:00) - Conclusão
----------------------------------
Para mais conteúdos sobre boas práticas de programação, testes, arquitetura de software e tudo que há de bom, não se esqueça de se inscrever e ativar o sininho para receber notificações.
Para entrar em contato:
Telegram: https://t.me/cviniciussdias
Twitter: https://twitter.com/cviniciussdias
LinkedIn: https://www.linkedin.com/in/vinícius-dias/
GitHub: https://github.com/CViniciusSDias/
...
https://www.youtube.com/watch?v=vwoTLEmAwSo
Expressões regulares, ou RegEx, deixam muitos devs coçando a cabeça. Mas além de serem complicadas, podem ser perigosas e tirar um sistema do ar. Neste vídeo nós vamos falar sobre Regular expression Denial of Service (ReDoS), ou seja, negação de serviço utilizando RegEx.
Existem algumas expressões regulares que com determinados inputs podem simplesmente travar seu sistema e com isso torná-lo indisponível. Esse ataque não é tão comum quanto outros que já foram citados no canal, mas ainda assim é bastante perigoso e merece nossa atenção.
Aqui estão alguns links para você entender melhor este tipo de ataque:
- https://owasp.org/www-community/attacks/Regular_expression_Denial_of_Service_-_ReDoS
- https://snyk.io/blog/redos-and-catastrophic-backtracking/
- https://www.regular-expressions.info/catastrophic.html
E se quiser se aprender mais sobre expressões regulares, além de comentar aqui pedindo este conteúdo no canal, você pode conferir estes materiais:
- https://amzn.to/3EVcpy7
- https://amzn.to/3ABVYEc
- 10% de desconto na Alura, onde há cursos completos de RegEx:
https://www.alura.com.br/promocao/diasdedev
0:00 - Introdução
0:32 - Vendo o problema de ReDoS
1:17 - Entendendo como RegEx funcionam
1:55 - Vendo RegEx em linguagens diferentes (PHP e JS)
2:43 - Executando o ataque no console JavaScript
3:35 - O que é RegEx Denial of Service
4:05 - Como evitar ReDoS usando PHP?
5:52 - Como detectar problemas em Expressões Regulares?
7:47 - Referências sobre o assunto
8:28 - Conclusão
----------------------------------
Para mais conteúdos sobre boas práticas de programação, testes, arquitetura de software e tudo que há de bom, não se esqueça de se inscrever e ativar o sininho para receber notificações.
Para entrar em contato:
Telegram: https://t.me/diasdedev
Twitter: https://twitter.com/cviniciussdias
LinkedIn: https://www.linkedin.com/in/cviniciussdias/
GitHub: https://github.com/CViniciusSDias/
...
https://www.youtube.com/watch?v=MEfgCLE3Dw8
A programação funcional possui diversos conceitos que podem ter nomes difíceis, mas na prática são bastante simples. Higher order functions são um exemplo claro disso. Nesse vídeo nós vamos aprender o que são funções de ordem superior, ou funções de alta ordem, e vamos entender quando e como podemos utilizá-las.
Se quiser aprender mais sobre programação e tecnologia em geral, aqui tem 10% de desconto na Alura:
http://alura.tv/diasdedev
E se quiser apoiar o canal e me incentivar a continuar criando conteúdo gratuito, você pode considerar me dar um "Valeu Demais" aqui no YouTube ou se tornar um "sponsor" lá no GitHub:
https://github.com/sponsors/CViniciusSDias
----------------------------------
Para mais conteúdos sobre boas práticas de programação, testes, arquitetura de software e tudo que há de bom, não se esqueça de se inscrever e ativar o sininho para receber notificações.
Para entrar em contato:
Telegram: https://t.me/diasdedev
Twitter: https://twitter.com/cviniciussdias
LinkedIn: https://www.linkedin.com/in/cviniciussdias/
GitHub: https://github.com/CViniciusSDias/
Programação orientada a objetos nos permite escrever código que nem sempre é considerado ideal. Pra evitar uma das más práticas que tendemos a seguir, existe a lei de demeter.
Nesse vídeo eu vou explicar de forma resumida e simplificada o que é a lei de demeter (que basicamente diz: "Não fale com estranhos") e como obedecê-la na prática.
Para ver conteúdos mais aprofundados sobre a lei de demeter:
- https://medium.com/lets-grow/aplicando-a-lei-de-demeter-em-nossos-c%C3%B3digos-5e2c0d70efd4
- http://www.macoratti.net/13/01/net_dem1.htm
- https://www.youtube.com/watch?v=MgL_sOWFE1A
Se quiser mais referências (bem mais aprofundadas) sobre programação orientada a objetos:
- https://amzn.to/2PJzHl6 (Orientação a Objetos: Aprenda seus conceitos e suas aplicabilidades de forma efetiva)
- https://amzn.to/3sDve26 (Clean Coder)
- https://amzn.to/31zbBfK (Clean Code)
----------------------------------
Para mais conteúdos sobre boas práticas de programação, testes, arquitetura de software e tudo que há de bom, não se esqueça de se inscrever e ativar o sininho para receber notificações.
Para entrar em contato:
Telegram: https://t.me/cviniciussdias
Twitter: https://twitter.com/cviniciussdias
LinkedIn: https://www.linkedin.com/in/vinícius-dias/
GitHub: https://github.com/CViniciusSDias/
...
https://www.youtube.com/watch?v=sdEwsGpyAoY
Neste vídeo, vamos dar um passeio pelas novidades mais recentes do Laravel 10, a versão mais atual do popular framework PHP. Essa versão deixa de suportar o PHP 8.0 e exige pelo menos a versão 8.1 do PHP.
Ao longo deste vídeo, você vai descobrir as novas funcionalidades, recursos e melhorias que foram adicionados ao Laravel 10, incluindo novos pacotes como Laravel Pennant para Feature Flags, um novo serviço para lidar com processos e adição de tipos em códigos gerados pelo framework.
Se quiser aprender mais sobre programação e tecnologia em geral, aqui tem 10% de desconto na Alura:
http://alura.tv/diasdedev
E se quiser apoiar o canal e me incentivar a continuar criando conteúdo gratuito, você pode considerar me dar um "Valeu Demais" aqui no YouTube ou se tornar um "sponsor" lá no GitHub:
https://github.com/sponsors/CViniciusSDias
0:00 - Introdução
0:18 - Data de lançamento do Laravel 10
0:41 - Laravel abandona o PHP 8.0
2:01 - Release schedule do Laravel
3:01 - Laravel Pennant para feature flags
3:55 - Serviço de processos no Laravel 10
5:09 - Tipos nativos no Laravel 10
6:33 - Regras de validação Invokable por padrão
7:54 - Profiling de testes no Laravel 10
8:40 - Helper gerador de senhas no Laravel 10
9:28 - Código descontinuado no Laravel 10
9:44 - Como atualizar seu projeto para Laravel 10
10:13 - Conclusão
----------------------------------
Para mais conteúdos sobre boas práticas de programação, testes, arquitetura de software e tudo que há de bom, não se esqueça de se inscrever e ativar o sininho para receber notificações.
Para entrar em contato:
Telegram: https://t.me/diasdedev
Twitter: https://twitter.com/cviniciussdias
LinkedIn: https://www.linkedin.com/in/cviniciussdias/
GitHub: https://github.com/CViniciusSDias/
...
https://www.youtube.com/watch?v=FyxuKfD3XoQ
? 15% de desconto na Alura → https://tidd.ly/43UfATs
Descubra como uma vulnerabilidade na glibc pode impactar o PHP! Neste vídeo exploramos em detalhes como esse bug na glibc afeta o PHP e suas aplicações. Entenda os riscos e saiba como se proteger. Assista agora e mantenha-se informado sobre as últimas ameaças de segurança no mundo da programação!
Se quiser apoiar o canal e me incentivar a continuar criando conteúdo gratuito, você pode considerar me dar um "Valeu Demais" aqui no YouTube ou se tornar um "sponsor" lá no GitHub:
https://github.com/sponsors/CViniciusSDias
----------------------------------
Para mais conteúdos sobre boas práticas de programação, testes, arquitetura de software e tudo que há de bom, não se esqueça de se inscrever e ativar o sininho para receber notificações.
Para entrar em contato:
Telegram: https://t.me/diasdedev
Twitter: https://twitter.com/cviniciussdias
LinkedIn: https://www.linkedin.com/in/cviniciussdias/
GitHub: https://github.com/CViniciusSDias/
0:00 - Introdução
0:43 - Pronunciamento oficial do PHP sobre a vulnerabilidade
2:25 - Entendendo a vulnerabilidade na glibc
4:02 - Vulnerabilidade no PHP
5:21 - Como a vulnerabilidade pode ser explorada
6:40 - Como se defender dessa vulnerabilidade
7:47 - Como verificar se seu servidor está vulnerável
9:02 - Conclusão
...
https://www.youtube.com/watch?v=mOFjkf9cYl4