Resumo da Live "Open Source Friday com Emerson de la Torre"
Key Concepts:
- Open Source Friday
- Domain Notification Pattern
- Flunt (biblioteca Python)
- Validação de Domínio
- Contratos de Validação
- Performance vs. Exceções
- Contribuição Open Source
- Python Brasil
1. Apresentação e Introdução:
- Apresentação de Emerson de la Torre, desenvolvedor na Luía Labes (Magalu), atuando na tribo de checkout, em um time de demandas táticas (SUAT).
- Emerson compartilha seus hobbies, incluindo o estudo da Bíblia e trabalho voluntário como Testemunha de Jeová.
- Discussão sobre a origem brasileira do mantenedor de projetos open source e a vantagem de ter suporte em português.
2. Quem é Emerson na Área de Tecnologia:
- Emerson trabalha na Luía Labes, parte do grupo Magalu, que possui um ecossistema com Magalu Cloud, Magalu Pay, Magalu Log, Magalu Ads, entre outros.
- Atua na vertical de experiência do e-commerce, cuidando do checkout.
- Experiência com tecnologias legadas e atualização para o .NET.
3. Jornada no Open Source:
- Início da jornada em open source por volta de 2016-2017, buscando atualização em programação.
- Estudo do .NET e curso com André Baltieri (Balta), MVP da Microsoft.
- Inspiração na biblioteca "Flunt" do Balta para criar uma versão em Python.
- Criação da biblioteca "PL Flant" em Python, inspirada no "Flunt" do .NET.
- Surpresa com o número de downloads da biblioteca (mais de 30.000).
- Recebimento de contribuições de pessoas de diferentes lugares, como da Índia.
- Decisão de manter a documentação principal em português para priorizar a comunidade brasileira.
4. Demonstração do PL Flant:
- O PL Flant implementa o padrão de notificações de domínio (Domain Notification Pattern).
- Alternativa ao uso de exceções para validação de inputs, especialmente em projetos com DDD (Domain Driven Design).
- Duas formas de uso:
- Criação de validações e trabalho com notificações.
- Criação de contratos para entidades do domínio.
- Exemplo de Value Object para nome, validando se o nome tem menos de três caracteres.
- Explicação do uso de contratos:
- A classe precisa herdar de "notifable".
- Encadeamento de métodos para validar o domínio (ex:
Requires,IsLowerThan,IsEmail). - Personalização das mensagens de erro.
- Validação com
pessoa.is_valide obtenção das notificações comget_notifications.
- Demonstração de código com a classe "Pessoa", construtor, contrato e validações.
- Exemplo de validação falhando e exibindo a mensagem de erro padrão em inglês.
5. Benefícios e Performance:
- Centralização das validações em um contrato para melhor organização.
- Melhora na performance ao evitar o uso excessivo de exceções.
- Comparação de performance entre validações com exceções,
if/try/excepte o PL Flant. - Demonstração de que o uso de exceções é custoso em termos de tempo de execução.
- Otimização do programa ao evitar exceções para validações, reservando-as para situações excepcionais.
- Impacto significativo em programas com alta escalabilidade.
6. Contribuição para o Projeto:
- Convite para a comunidade contribuir com o PL Flant.
- Explicação do "contributing guide" no GitHub.
- Passo a passo para criar um fork, configurar o ambiente (Python, UV), fazer alterações, criar a PR e atualizar o change log.
- Documentação detalhada no código com docstrings.
- Lista de "issues" abertas com sugestões de melhorias (ex: URL validation, Rejects validation, object validation).
7. Gerenciamento de Projetos:
- Discussão sobre o uso do GitHub Projects para gerenciar projetos.
- O GitHub Projects é mais simples que o Jira, mas pode ser suficiente dependendo do tamanho do projeto.
- Alternativas como o Azure DevOps.
8. Recomendações de Estudo para Python:
- Recomendação do livro "Fluent Python" de Luciano Ramalho para quem já tem base em programação.
- O livro aborda herança múltipla e duck typing, conceitos importantes em Python.
- Para iniciantes, recomendação do canal do Guanabara no YouTube.
9. Encerramento:
- Agradecimentos pela participação e atenção.
- Emerson se coloca à disposição para ajudar e tirar dúvidas nas redes sociais (fazedor de código).
- Incentivo para quem está começando na área de tecnologia.
- Saudação "alvegra" e menção à vitória do Botafogo sobre o PSG.
Síntese/Conclusão:
A live "Open Source Friday" apresentou o PL Flant, uma biblioteca Python para validação de domínio inspirada no Flunt do .NET. Emerson de la Torre demonstrou o uso da biblioteca, seus benefícios em termos de organização e performance, e incentivou a comunidade a contribuir com o projeto. A discussão também abordou dicas de estudo para Python e gerenciamento de projetos open source. O foco na comunidade brasileira e na documentação em português foi um destaque, visando facilitar a entrada de novos colaboradores.
AI summaries can miss context or contain errors. Check important details against the original video.





