Posts tagueados com python.

Opinião: Python Brasil [8]

opiniao, python brasil, python, evento

Logo Python Brasil 8 Nos dias 21 a 24 de Novembro de 2012 aconteceu a Python Brasil. Em sua oitava edição, o evento mais aguardado pelos desenvolvedores Python “tupiniquins” me surpreendeu completamente. Um dos melhores eventos que participei nos últimos tempos!

E não é só pelo conteúdo apresentado durante as palestras, ou pelos convidados especiais que deram um show a parte em suas apresentações, mas esse “sentimento” deve-se ao fato de ser a primeira vez que fiquei tão próximo da comunidade Python, e me senti muito feliz por compartilhar estes dias com pessoas tão bacanas e interessantes.

Entendendo o CGI, FastCGI e WSGI

desenvolvimento, infra-estrutura, web, python, cgi, fastcgi, wsgi, gunicorn

CGI Pelos vários anos que programei com o PHP e Apache, nunca precisei me preocupar com o que acontecia entre esses dois. Para mim, era tudo uma “mágica” maravilhosa, que entregava as minhas páginas Web de forma dinâmica. Era uma troca justa: Eles não me traziam preocupação, logo, eu não me preocupava.

Com o passar do tempo, o uso do Nginx e a necessidade de aprender Python, comecei a me deparar com o famoso “cgi-bin“, e entender que os truques que o mod_php ocultava iam muito além do que eu imaginava.

Django e Cache: Uma dupla de alta performance - Parte 2

desenvolvimento, web, python, django, memcached, johnny-cache, cache

Memcached logo Continuando o post Django e Cache: Uma dupla de alta performance, vamos ver na prática como utilizar o framework de cache do Django.

Embora eu esteja utilizando o Memcached para escrever estes artigos, vale ressaltar que a abstração do Django lhe permite utilizar a ferramenta mais apropriada para você.

Django e Cache: Uma dupla de alta performance - Parte 1

desenvolvimento, web, python, django, memcached, cache

Logo do Django abreviado Embora o caching HTTP seja essencial para qualquer aplicação Web, (IMO) essa modalidade de cache deve ser encarada como um acréscimo à experiência de uso, e não necessariamente como uma “arma” contra problemas de performance. Os usuários poderão abdicar desta funcionalidade, e aí a sua aplicação não poderá depender do protocolo para atingir tempos de resposta atrativos.

Desenvolvedores Django podem contar com boas soluções, do próprio framework e de terceiros, que podem melhorar o caching das aplicações (e consequentemente a performance). A grande notícia é que essas ferramentas são fáceis e práticas. Vamos conhecê-las?

Automatize o deploy dos seus projetos com Fabric

desenvolvimento, ambiente-de-desenvolvimento, python, django, fabric, deploy

Deploy now! Durante a minha árdua trajetória com o PHP, sempre fiz “subidas” de projetos utilizando um cliente FTP. Um processo manual, extremamente repetitivo (e chato).

Já com Python, pude utilizar o SSH, que me proporcionou maior agilidade e liberdade dentro do ambiente de produção. Mas que não deixou de ser um processo manual, extremamente repetitivo, chato e muito suscetível a falhas.

Foi utilizando o Django que conheci o Fabric, e percebi quanto tempo podemos economizar automatizando o processo de deploy de nossos projetos.

Migrations em Django com South

desenvolvimento, ambiente-de-desenvolvimento, python, django, migrations, south

Logotipo do South E quem nunca precisou adicionar ou remover alguma coluna, nas tabelas do seu banco de dados, depois que a aplicação já estava em produção? Os riscos existem (e são altos), e podem ser diminuidos através de processos automatizados.

Em um mundo ideal, o procedimento de deploy (para entregas contínuas) deve ser automatizado. Com o South, “migrar” a estrutura e os dados da sua base de dados para a versão presente em seu novo deploy, é simples, prático e 100% integrado ao Django.

Assegure a qualidade do seu código Python - Clone Digger

desenvolvimento, ambiente-de-desenvolvimento, python, qualidade, clone-digger

Código clonado? Mesmo que você possa verificar a qualidade do seu código com pep8, Pylint e Pyflakes, uma das virtudes de um projeto de software é não possuir código duplicado (leia mais sobre DRY). O fato é que tanto intencionalmente como propositalmente, podemos duplicar um trecho de código e acabar prejudicando manutenções futuras (atire a primeira pedra quem nunca deu aquele CTRL+C e CTRL+V, e prometeu um refactoring depois).

Para facilitar a busca por código duplicado, podemos utilizar uma ferramenta chamada Clone Digger. Prático, rápido e muito simples. Agora ficou fácil “caçar” código duplicado em projetos Python.

Assegure a qualidade do seu código Python - Pyflakes

desenvolvimento, ambiente-de-desenvolvimento, python, pyflakes, qualidade

Código em Python Depois da dar uma pincelada na pep8 e no Pylint, chegou a hora de falarmos um pouco sobre o Pyflakes.

Resumidamente, o Pyflakes é uma ferramenta de qualidade que analisa o seu código Python atrás de erros (de sintaxe e importação, por exemplo), retornando um relatório muito objetivo com o arquivo, linha e o tipo de incoerência que ele encontrou.

Uma excelente ferramenta para você ter “plugada” ao seu editor favorito.

Assegure a qualidade do seu código Python - Pylint

desenvolvimento, ambiente-de-desenvolvimento, python, pylint, qualidade

Analogia a qualidade e código Se você precisa de uma ferramenta mais poderosa que o pep8, talvez você precise do Pylint.

De forma (bem) resumida, o Pylint analisa de forma minuciosa o código do seu projeto Python, lhe retornando uma variedade de relatórios (as vezes, detalhistas até demais) sobre todo o tipo de problema que ele encontra. Indo de incoerências com a PEP 8, até nome de variáveis.

Assegure a qualidade do seu código Python - pep8

desenvolvimento, ambiente-de-desenvolvimento, python, qualidade, pep8

Código-fonte do Python Convenções de código! Já tive a oportunidade de escrever sobre elas no Profissionais TI. Benção ou maldição? Há quem goste, há quem ache uma perda de tempo…

Acredito muito que a organização e a qualidade do código são benéficas para qualquer projeto, principalmente para aqueles que possuem alta rotatividade de profissionais. Padrões de projetos, padrões estruturais e de escrita facilitam a “assimilação” do que já foi produzido, facilita a manutenção e “orienta” as novas produções.