Regras de codificação que todo programador deveria saber
Este é um post baseado em citaçes do livro “Mastering Machine Learning with Python in Six Steps” do cientista de dados Manohar Swamynathan.
Bonito é melhor do que feio - seja consistente.
Complexo é melhor do que complicado - use bibliotecas existentes.
Simples é melhor do que complexo - mantenha-o simples e estúpido (keep it simple and stupid, KISS).
Flat é melhor do que aninhado - evite
if's
aninhados.Explícito é melhor do que implícito - seja claro.
Disperso é melhor do que denso - separe o código em módulos.
A legibilidade é valiosa - use identação para facilitar a leitura e o entendimento.
Os casos especiais não são especiais o suficiente para quebrar as regras - tudo é um objeto.
Os erros nunca devem ser transmitidos silenciosamente - tenha um bom manipulador de exceções.
Contudo, a praticidade supera a pureza - se necessário, quebre as regras.
Silenciamento explícito - registro de erros e rastreabilidade.
Em situações de ambiguidade, evite a tentação de adivinhar - a sintaxe de Ruby é mais simples; no entanto, muitas vezes podemos demorar mais tempo para compreendê-la.
Embora dessa maneira não seja óbvio no começo, a menos que você seja holandês - não há apenas uma maneira de conseguir algo.
Deve haver preferencialmente apenas uma maneira óbvia de fazê-lo - use bibliotecas existentes.
Se a implementação é difícil de explicar, é uma má ideia - se você não pode explicar em termos simples, então você não entende bem o suficiente.
Agora é melhor do que nunca - há maneiras rápidas/sujas de fazer o trabalho em vez de tentar demais para otimizar.
Embora nunca seja geralmente melhor do que agora - embora exista uma maneira rápida/suja, não siga o caminho que não permitirá uma maneira graciosa de melhorar o que foi feito.
Namespaces são uma ótima ideia, então vamos fazer mais deles! - seja específico.
Se a implementação é fácil de explicar, pode ser uma boa ideia - simplicidade.
Referência
— https://www.amazon.com/Mastering-Machine-Learning-Python-Steps/dp/1484228650
Leave a Comment