O que são Testes de Unidade | Programando com Vinicius Dias
O termo Testes de Unidade (ou Testes Unitários em alguns lugares) é bastante usado, mas você sabe o que eles são?
Um #TesteDeUnidade nada mais é do que um teste automatizado que testa a menor unidade de código possível. Normalmente, um único método.
Nesse vídeo a gente vai ver um exemplo claro de um caso de teste que não testa uma únidade só, e vamos "corrigí-lo" para testar apenas a unidade desejada.
Vou deixar aqui alguns links sobre #testes onde o conceito de testes de unidade é explicado de forma bem mais detalhada:
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.
Descubra como aplicar os princípios F.I.R.S.T. para garantir qualidade na criação de testes automatizados! Neste vídeo, exploramos cada um desses princípios essenciais, ajudando você a escrever testes robustos e eficazes.
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/
...
https://www.youtube.com/watch?v=p6opbsek-zs
O PHP 8.3, que deve ser lançado no final de 2023, já possui novidades implementadas. Uma das novidades do PHP 8.3 é a nova função json_validate.
A função json_validate do PHP, como o nome diz, vai servir para validar se uma string é um JSON válido ou não. Essa função, por exigir menos memória e processamento, pode inclusive aumentar a segurança da aplicação, mitigando possíveis ataques de negação de serviço.
Se quiser aprender mais sobre programação 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
----------------------------------
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=7rnKavIf67w
Aprenda o que são e como utilizar quantificadores em expressões regulares (regex).
Se quiser aprender mais sobre programação e tecnologia em geral, aqui tem 15% de desconto na Alura:
https://tidd.ly/43UfATs
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/
...
https://www.youtube.com/watch?v=qCtcNY1nPGE
Muitos pedem #Generics no #PHP, mas tem uma galera que ainda não sabe o que são generics. Nesse vídeo eu explico da forma mais resumida possível o que é o conceito de generics.
Cupom de desconto para a semana da Black Friday 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/
...
https://www.youtube.com/watch?v=zkswwcbQBAk
Será que dá pra ler e-mails com #PHP? E fazer o computador falar usando PHP? Nesse vídeo eu fiz um leitor de notícias 100% em PHP que lê determinados e-mails em voz alta pra mim.
Recentemente eu assisti um vídeo no canal @Refatorando que usando Python criou um leitor para a newsletter do @FilipeDeschamps e então eu pensei: Por que não fazer um com PHP?
Acho válido citar que há formas muito mais sofisticadas de "fazer o computador falar", mas eu preferi seguir pela abordagem mais simples possível. Se quiser ver algo mais completo e complexo, essa palestra é sensacional:
https://www.youtube.com/watch?v=m050iDb5H2A
Esses foram os componentes usados:
- phpimap/phpimap
- cviniciussdias/php-text-to-speech
E aqui tá o código completo (como se fosse muito grande) do script:
https://gist.github.com/CViniciusSDias/e669bfe04097545068870cb33e067413
----------------------------------
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=cBtccqplPmo
Você leu recentemente em algum lugar que a #Microsoft vai abandonar o suporte para o #PHP? Nesse vídeo eu te explico toda essa confusão e te mostro como praticamente nada vai mudar na nossa vida.
Links citados no vídeo:
- Mensagem original do Dale (da Micro$oft): https://externals.io/message/110907
- Thread no Reddit: https://www.reddit.com/r/PHP/comments/ho9dgq/microsoft_not_going_to_officially_support_php_8/
----------------------------------
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=0VxhLJqOKlE
O estudo de boas práticas de programação é muito importante, e hoje vou falar sobre um conceito bastante famoso da programação orientada a objetos: Obsessão por tipos primitivos.
Se quiser ler um pouco sobre algumas más práticas comuns na programação #oo, tenho 2 artigos sobre programação procedural orientada a classes:
- https://dias.dev/2020-04-13-programacao-procedural-orientada-a-classes-parte-1/
- https://dias.dev/2020-04-16-programacao-procedural-orientada-a-classes-parte-2/
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)
(0:00) - Introdução
(0:40) - Exemplo de código
(1:05) - Entendendo o problema
(2:41) - Aberrações de classes Utils
(3:10) - Como resolver?
(3:35) - Criando a classe CPF
(5:20) - Ganhos desta abordagem
(6:10) - Questionamento sobre o código
(6:30) - 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=KV3_NCnwSto
Você já se perguntou como pode fazer para contribuir para projetos open source? Nesse vídeo nós vamos criar um pull request real com uma sugestão de melhoria para o pacote headless-chromium-php.
O mundo #OpenSource (código aberto) é simplesmente fenomenal e todo #PullRequest é mais do que bem-vindo desde que bem intencionado, claro, então espero que além de ensinar o processo, esse vídeo também te incentive a colaborar com algum projeto.
Se você ainda não se sente confiante com o uso de Git e GitHub, pode mandar perguntas aqui nos comentários, mas também vou deixar algumas referências aqui:
- https://amzn.to/3vrmixJ (Big Little Book on Git - Gitlab Github GitOps DevOps & CICD) (Gratuito)
- https://amzn.to/3sW2XmI (Controlando Versões com Git e GitHub)
- https://www.alura.com.br/curso-online-git-github-controle-de-versao (Curso de Git e GitHub da Alura)
----------------------------------
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=cdL_F3FiSWI
Essa é uma das minhas novidades preferidas do PHP 8.1: Readonly Properties. Com essa RFC que foi implementada recentemente, criar objetos imutáveis fica bem mais simples em PHP.
Através de readonly properties nós podemos ter propriedades que são escritas apenas uma vez (no construtor, por exemplo) e depois são acessíveis apenas para leitura. Desta forma não vamos mais precisar criar getters em vários casos.
Criar Value Objects provavelmente é a tarefa que mais se tornará facilitada com essa nova RFC.
Se quiser aprender mais sobre PHP e vários outros assuntos, aqui está um cupom de desconto para assinar a Alura, plataforma onde existem vários cursos gravados por mim:
https://www.alura.com.br/promocao/diasdedev
0:00 - Introdução
0:22 - Definição de objetos imutáveis
0:48 - Criando objetos imutáveis em PHP
2:12 - Novidade com Readonly properties do PHP 8.1
6:52 - Conhecendo a RFC de Readonly properties a fundo
12:34 - 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=u5hge87rCCQ