Py-don'ts são anti-dicas para escrever bom código Python. Por vezes, aprender o que é bom não chega. Há que comparar as coisas boas com as más para aprender com o contraste!

Captura de ecrã com o resultado de correr

Daqui em diante vou tomar como minha responsabilidade mostrar-vos mau código Python, explicando não só porque é que é mau mas também como o melhorar.

As minhas anti-dicas não vão ser sobre algoritmos ou bibliotecas específicos. Vou mostrar código feio para que aprendam a apreciar código elegante. Na matemática também há um fenómeno semelhante: algumas provas de teoremas são mais elegantes do que outras e, em geral, as provas mais elegantes são mais fáceis de entender e fazem mais sentido. O mesmo se aplica a código feio/elegante. Código elegante é mais fácil de entender e, por vezes, até é significamente mais eficiente!

Dito isto, onde estão definidos os standards de código elegante? Para o Python, basta escrever import this e somos presenteados com o Zen of Python, um conjunto de premissas que podemos e devemos seguir quando programamos:

The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

O Zen of Python foi escrito por Tim Peters, um engenheiro informático que contribuiu bastante para o Python e para a comunidade do Python.

Pessoalmente acho que o Zen of Python é fácil de interpretar, a menos da piada sobre pessoas holandesas* e a referência aos namespaces, uma particularidade do Python. À medida que os próximos py-don't 's forem publicados, vou contrariar o Zen of Python repetidamente, portanto fiquem atentos!

Deixem um comentário se houver algum py-don't que queiram sugerir!

(*) Agora que penso nisso, isto pode ser uma referência a Guido van Rossum, o criador do Python. O Guido é holandês.

Blog Comments powered by Disqus.