🇧🇷 PyBR 2019 Talks

Rob Novelino
October 24, 2019
<p>Slides from talks given during the Python Brazil 2019 event will be posted here. This post and the slides are written in Brazilian Portuguese.Only one slide will be missing until presentation day, since one of the talks will be one keynote of the event and we don't want to spoil the surprise.</p><h3 id="em-nome-das-boas-pr-ticas-de-c-digo-da-casa-django-rainha-do-backend-eu-te-sentencio-a-testar-a-game-of-tests">Em nome das Boas Práticas de Código da Casa Django, Rainha do Backend, eu te sentencio a testar - A Game of Tests</h3><ul><li>Palestrante: <a href="https://twitter.com/afsavluchinske">Amanda Savluchinske</a></li><li>Link dos Slides: <a href="https://docs.google.com/presentation/d/1nsqz9jF3CW-kl8AU3T0Hh-34ygGrYtOwUuU7Dzazhv0/edit?usp=sharing">Em nome das Boas Práticas de Código da Casa Django, Rainha do Backend, eu te sentencio a testar - A Game of Tests</a></li></ul><p>Valar Testhaeris, todos os homens devem testar. Muitos desenvolvedores subestimam o poder dos testes, mas a noite é escura e cheia de erros. Nessa palestra, você irá aprender os truques do Game of Tests. E porque o homem que passa a sentença deve brandir a espada, nessa palestra, meu objetivo é te ajudar a entender testes automatizados em Django como iniciante, boas ferramentas que podem te ajudar no caminho e mostrar alguns exemplos práticos no assunto. Porque o que dizemos para o deus dos bugs? Hoje não.</p><h3 id="docker-melhorando-sua-vida-como-desenvolvedor">Docker: Melhorando sua vida como desenvolvedor</h3><ul><li>Palestrante: <a href="https://twitter.com/gtcarvalh0">Gustavo Carvalho</a></li><li>Link dos Slides: <a href="https://docs.google.com/presentation/d/1ScZz10zc3pThoTPKB4BVEhZz8k-HQXn2i_YB03PkQlQ/edit#slide=id.p">Docker: Melhorando sua vida como desenvolvedor</a></li></ul><p>Anos atrás o processo de implantação de uma aplicação era basicamente um serviço como LAMP, que gerenciava interpretador da linguagem, banco de dados e servidor web.</p><p>Atualmente, a tecnologia evoluiu a ponto de uma aplicação se comunicar com os serviços mais diversos, desde banco de dados até servidor de logs e engines de buscas.</p><p>Com essa evolução, cresce também a complexidade de gerenciar tanto ambiente de desenvolvimento, quanto de produção.<br>Docker é uma ferramenta que auxilia o provisionamento e execução dos mais variados serviços e linguagens sem muito trabalho, usando um ambiente isolado e controlado chamado de container. Com ele, é possível gerar imagens que se comportam da mesma maneira, independente do ambiente em que estão sendo executadas.</p><p>Nesta palestra pretendo apresentar uma aplicação que reproduz um cenário real, com banco de dados, webpack, servidor web, Celery, Redis, RabbitMQ e mostrar como Docker pode ajudar a gerenciar tudo isso sem dor de cabeça.</p><h3 id="1-1-1-ou-pareamento-de-registros-com-python">1 + 1 = 1 ou Pareamento de Registros com Python</h3><ul><li>Palestrante: <a href="https://twitter.com/flaviojuvenal">Flávio Juvenal</a></li><li>Link dos Slides: <a href="https://github.com/vintasoftware/deduplication-slides/">1 + 1 = 1 ou Pareamento de Registros com Python</a></li></ul><p>Como encontrar duplicatas em um conjunto de dados quando este não tem identificadores únicos como CPF para cidadãos brasileiros? A resposta é usando técnicas de Pareamento de Registros, as quais procuram por correspondências entre registros limpando e comparando seus atributos de maneira difusa. Nesta palestra, você aprenderá com exemplos Python como fazer isso tanto de forma determinística quanto de forma aproximada com classificadores de aprendizagem de máquina.</p><p>Desenvolvedores de nível intermediário conseguirão aprender o básico de como deduplicar registros utilizando Python. Apesar de alguns conceitos serem relacionados a aprendizagem de máquina, não é necessário conhecimento prévio nessa área.</p><p>Nesta palestra, a audiência aprenderá os principais conceitos de Pareamento de Registro: quais tipos de problema podem ser resolvidos, qual sequência de passos do processo, quais algoritmos estão envolvidos, e quais ferramentas utilizar.</p><h3 id="de-100-para-1000-estrat-gias-para-quem-est-come-ando-a-se-preocupar-com-performance">De 100 para 1000: estratégias para quem está começando a se preocupar com performance</h3><figure class="kg-card kg-embed-card"><iframe width="480" height="270" src="https://www.youtube.com/embed/gL-MMur7HNk?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></figure><ul><li>Palestrante: <a href="https://twitter.com/xima">Filipe Ximenes</a></li><li>Link dos Slides: <a href="https://docs.google.com/presentation/d/1dSTUiA_yds6TATlYujBvdxdC93FR63AtMIOmMNjZEhQ/edit?usp=sharing">De 100 para 1000: estratégias para quem está começando a se preocupar com performance</a></li></ul><p>Eventualmente todo mundo que trabalha com desenvolvimento web vai se deparar com um sistema que precisa lidar com muitas requisições. Para quem nunca passou por isso antes esse é normalmente um momento estressante: clientes reclamam da velocidade do site, o sistema fica fora do ar por algumas horas, coisas que antes funcionavam começam a quebrar ou demorar demais, entre outras situações geralmente não muito divertidas. Nessa palestra vamos falar da tal "escalabilidade" dos sitemas web. Mas não a escalabilidade necessária para atender milhões de usuários, e sim sobre aquele primeiro passo que é fazer a aplicação começar a lidar com algumas centenas de usuários, talvez milhares.</p><p>Iremos utilizar o framework Django para guiar os exemplos porém os conceitos poderam ser aplicados em qualquer framework ou linguagem de programação. Vamos mostrar como poucas mudanças no código podem ter um efeito muito grande na performance da sua aplicação. Também exploraremos algumas estratégias um pouco mais avançadas (como por exemplo as diversas formas de se fazer caching) mostrando vantágens e desvantágens.</p><h3 id="-algoritmo-info-for-algoritmo-in-algoritmos-sort-">[algoritmo.info for algoritmo in algoritmos.sort()]</h3><ul><li>Palestrante: <a href="https://twitter.com/_rebecasarai">Rebeca Sarai</a></li><li>Link dos Slides: <a href="https://docs.google.com/presentation/d/1HFwTTYZYpLY26QsIJ4EfrNLEN3dgvr-CsaDEyu40Be0/edit#slide=id.g631a695015_1_18">[algoritmo.info for algoritmo in algoritmos.sort()]</a></li></ul><p>Algoritmos são um grande campo de estudo em ciência da computação e não por acaso, algoritmos estão em praticamente tudo na programação.</p><p>Sem levar muito tempo, qual algoritmo de ordenação é executado ao chamar o método sort do python?</p><p>some_list = [2, 5, 6, 1, 3]</p><p>some_list.sort()</p><p>Python usa um algoritmo híbrido chamado Timsort, construido de forma a garantir o desempenho do algoritmo em várias situações reais. Nessa palestra você vai ver vários exemplos similares, e conhecer quais algoritmos utilizam as funções internas da sua linguagem preferida.</p><h3 id="keynote-talk-jenga-aprendizados-de-uma-gerente-de-projetos">Keynote Talk: JENGA! Aprendizados de uma gerente de projetos</h3><ul><li>Keynote: <a href="https://twitter.com/laisvarejao">Lais Varejão</a></li><li>Link dos Slides: <a href="https://docs.google.com/presentation/d/1lDDuUAAKIMKV6L3U2gPZcUUBECrlivRDNHpzqFWSoEA/edit?ts=5db2c00e#slide=id.g62f66a5a4e_0_6">JENGA! Aprendizados de uma gerente de projetos</a></li></ul><p>Crescer e se entender como gerente nem sempre é fácil. Mais do que uma mudança de atividades, toda sua rotina e preocupações com atividades mudam. Essa talk vai falar um pouco sobre meu aprendizado até aqui nessa jornada e do entendimento (tanto meu quanto da Vinta) que o gerente é muito mais do que só alguém que aloca atividades e cuida de um escopo. A ideia é ressaltar as responsabilidades como formação de carreira, criação de processos para o time, gerência de expectativas e o papel do gerente numa gestão mais orientada a produtos e métricas.</p>