Pular para o conteúdo principal

Desenvolvendo uma Aplicação em FastAPI para Compartilhamento de Arquivos - Parte 1

Desenvolvendo uma Aplicação em FastAPI para Compartilhamento de Arquivos - Parte 1

Este é um tutorial de construção de uma aplicação WEB para compartilhamento de arquivos, bastante útil nos casos em que não há acesso via SSH. A aplicação será desenvolvida a partir do gabarito do projeto FastAPI mínimo, o que economizará bastante tempo e esforço pois partiremos de uma estrutura básica de projeto já pronta.

Leia mais…

Empacotamento e Distribuição do Projeto FastAPI Mínimo

Este é o segundo da série de artigos sobre a construção do projeto FastAPI mínimo. Enquanto o artigo anterior tratava de estrutura de diretórios, ambiente virtual, linting de código, integração contínua, controle de versão e testes automatizados, este artigo trata da distribuição da aplicação na forma de contêineres Docker.

Como resultado final, teremos a aplicação FastAPI rodando em um contêiner Docker, acessível através do Caddy como proxy reverso e com os serviços orquestrados pelo Docker Compose. Essa solução pode ser usada diretamente em produção ou como base para projetos mais complexos. Além disso, funciona da mesma forma em desenvolvimento e em produção.

Leia mais…

Projeto FastAPI Minimo

Este artigo mostra como começar mesmo o menor projeto FastAPI da melhor maneira possível, com uma estrutura adequada, usando ambiente virtual, linting de código, integração contínua (GitHub Actions), controle de versão e testes automatizados. A partir daí, é possível expandir o projeto de acordo com as necessidades, usando-o para serverless, ciência de dados, REST API, ensino de programação, base para novos gabaritos e outros fins.

A principal diferença deste projeto em relação a outros modelos é que ele possui apenas o conjunto mínimo de funcionalidades e dependências para formar uma base sólida para outros projetos.

Leia mais…

Gerenciamento de Versões, Ambientes Virtuais e Dependências com Pyenv e Poetry

Quem é desenvolvedor de software sempre tem vários projetos no computador usando diferentes linguagens, versões dessas linguagens, bibliotecas e ferramentas. Para que um projeto não interfira no outro, é importante que sejam isolados de alguma forma. No caso de projetos Python, vamos precisar de ferramentas que gerenciem versões do Python, ambientes virtuais e dependências de projeto. Existem várias opções, mas vamos nos concentrar em duas:

  1. pyenv gerencia diferentes versões do Python na mesma máquina
  2. poetry gerencia ambientes virtuais e as dependências do projeto dentro desses ambientes virtuais.

Leia mais…

Lançamento do rst2html5 v2.0

Eu acabo de lançar a versão 2.0 do projeto rst2html5!

rst2html5 é um projeto que transforma documentos em restructuredText para HTML5.

restructuredText é um formato bastante utilizado na documentação de projetos em Python e também em geradores de sites estáticos (blog) tais como Nikola e Pelican.

Houve várias alterações nesta nova versão, a maioria relacionada a atualizações nas tecnologias usadas no projeto:

  1. Fim do suporte a versões anteriores ao Python 3.6
  2. Solução definitiva para o conflito com a instalação do docutils. Uma solução bem engenhosa, diga-se de passagem. Com isso, o módulo rst2html5_ foi renomeado de volta para rst2html5 mas, de quebra, a importação de rst2html5_.HTML5Writer ainda funciona. Há uma seção na documentação a respeito dessa implementação (link).
  3. Criação de novo papel rst :abbr:, que transforma uma entrada do tipo :abbr:`SAP (Single-Page Application)` em uma saída <abbr title="Single-Page Application">SPA</abbr>
  4. Nova seção no README explicando como usar o rst2html5 programaticamente
  5. Melhora a geração da subseção <figcaption>
  6. Melhora o processamento dos atributos scale, height, width e alt da diretiva image.
  7. Adiciona Type Annotations ao código do projeto
  8. Adiciona análise estática do código (linting) ao projeto
  9. Substitui o framework de teste de nose para pytest
  10. Mudança do gerenciador de dependências de Pipenv para Poetry
  11. Instalação do pacote no PyPi (Python Package Index) agora é feita pelo Poetry ao invés do setup.py.

Consulte a página do projeto do rst2html5 para ver exemplos de uso e aplicação.

Programe pelo Navegador com Code Lab

O projeto Code Lab permite programar diretamente pelo navegador, sem nenhuma outra dependência externa. É interessante para os casos em que se quer fazer um experimento rápido mas não há um computador com a linguagem instalada e configurada por perto.

Esse projeto foi feito originalmente como uma prova de conceito e também ajudar meus alunos a usarem diferentes linguagens de programação sem a necessidade de instalar nada na máquina deles.

Leia mais…

12 Fatores na Construção de um Aplicativo Web

The Twelve-Factor App é um conjunto de recomendações muito popular para desenvolvimento de aplicações web, que é resultado de anos de experiência do pessoal da Heroku na administração de centenas de milhares de aplicações na forma de software-como-serviço.

Os 12 fatores é um conjunto de soluções conceituais que visa tornar as aplicações mais portáveis, escaláveis e fáceis de serem desenvolvidas e implantadas. Pode ser aplicado a projetos escritos em qualquer linguagem de programação.

Leia mais…

Qual a melhor ferramenta de controle de versão: Subversion, Git ou Mercurial?

As ferramentas mais interessantes atualmente de controle de versão são o Subversion, Git e Mercurial. Se você ainda não escolheu uma, ficará feliz em saber que existe sim uma solução simples e eficaz dependendo do perfil da equipe e das necessidades do projeto. A surpresa está em saber que a melhor opção certamente será o Subversion ou o Mercurial, mas dificilmente o Git. Vamos analisar os porquês neste artigo.

Leia mais…