Acho que todo desenvolvedor e equipe passam por etapas de amadurecimento bem parecidas ao longo da geração de logs de sistemas: Aplicações geram nenhum ou quase nenhum log; Escrevemos aplicações verbosas demais, com logs provavelmente muito extensos e voltados para outros humanos; Passamos a gerar logs estruturados, serializados para algum formato de fácil consumo e … Continue lendo Aiologger – Logger assíncrono para Python e asyncio
Tag: python
Python 3 e Type Hints
O uso de type hints no meu dia-a-dia de desenvolvedor se deu desde que comecei a utilizar Python 3. De lá pra ca, pela falta de divulgação, infelizmente não vi muita coisa mudar com relação a adoção de uma das features que considero mais legais e úteis do Python moderno. Na B2W Digital, onde trabalho … Continue lendo Python 3 e Type Hints
Concorrência e Paralelismo – Threads, múltiplos processos e AsyncIO – Parte 2
No post anterior falei sobre a diferença entre concorrência e paralelismo, classificação de processos e soluções para implementar aplicações com código concorrente. Se você ainda não leu esse post, recomendo que você comece por lá. É muito comum ver programadores escreverem código para executar uma tarefa qualquer, decidirem empiricamente que o desempenho não está adequado e que podem resolver … Continue lendo Concorrência e Paralelismo – Threads, múltiplos processos e AsyncIO – Parte 2
Concorrência e Paralelismo – Threads, múltiplos processos e AsyncIO – Parte 1
Antes de mais nada, gostaria de dizer que esse não é um post para iniciantes em programação, muito menos para iniciantes em Python. Vou abordar alguns assuntos e dar algumas explicações, considerando que você já possui certos conhecimentos prévios - que não vou explicar aqui. Fique a vontade para utilizar os comentários, ou entrar em … Continue lendo Concorrência e Paralelismo – Threads, múltiplos processos e AsyncIO – Parte 1
Dynamic Fibonacci: Além da recursividade
Se você teve aulas de programação, um dos primeiros algoritmos que você viu nas aulas sobre recursividade com certeza foi o da sequência de fibonacci. Neste post, vamos além da solução recursiva e utilizaremos o problema para dar um início conceitual sobre programação dinâmica. Problema A sequência de fibonacci é uma sequência numérica, onde o … Continue lendo Dynamic Fibonacci: Além da recursividade
Sabe o programador ctrl+c/ctrl+v? Não seja ele!
Códigos como o da imagem são comuns e motivos de muitas dores de cabeça para manutenção de código e refatoração. Se você não consegue sentir o cheiro desse code smell de longe, acha que meta programação e abstração de lógica coisa de outro mundo, ou que esse tipo de construção é totalmente aceitável, nesse post vamos discutir algumas técnicas de refatoração indispensáveis para todos os desenvolvedores!
Alfabeto Geométrico
O problema de hoje é simples, então não se assuste caso a solução não seja óbvia em um primeiro instante. Vamos construir o Alfabeto Geométrico (AG) passo-a-passo, assim como os subproblemas que devem ser solucionados para chegarmos na saída desejada. Problema: Dado um inteiro n, a tarefa consiste em criar um alfabeto geométrico de tamanho n. Entrada: … Continue lendo Alfabeto Geométrico
Você realmente consegue juntar duas ou mais listas em uma?
Uma situação relativamente rotineira é a necessidade de juntarmos duas coleções de dados em uma só. Por exemplo: temos um array A = [1, 2] e queremos juntá-lo com B = [3, 4], parar formar um C = [1, 2, 3, 4]. Para este caso, não há nenhum mistério e a solução é bem trivial. Nosso caso é … Continue lendo Você realmente consegue juntar duas ou mais listas em uma?
Você consegue escrever 3 soluções distintas para calcular a soma de uma lista de números?
A maioria das linguagens modernas já possuem uma função pronta para iterar sobre os elementos de uma coleção de dados e retornar sua soma. De forma alguma sugiro que você escreva sua própria solução para este tipo de problema, visto que o objetivo aqui é puramente didático. Problema: Escreva 3 funções que calculem a soma de uma … Continue lendo Você consegue escrever 3 soluções distintas para calcular a soma de uma lista de números?