Que fait python-anti-patterns ?
Utilisez cette compétence lors de la révision de code Python pour éviter les anti-patrons courants. Servez-vous-en comme liste de contrôle lors de la révision du code, avant de finaliser les implémentations, ou lors du débogage de problèmes pouvant provenir de mauvaises pratiques connues.
Anti-patrons courants à vérifier
- Importations sauvages : Évitez
from module import *, car cela peut causer des conflits de noms et rendre le code moins lisible. - Mutation de liste pendant l'itération : Ne modifiez pas une liste (ajout/suppression d'éléments) pendant que vous itérez dessus ; cela peut entraîner des bugs subtils.
- Appels de fonctions onéreux dans des boucles : Évitez d'appeler des fonctions coûteuses comme
len()ourange()à chaque itération si la valeur ne change pas. - Utilisation incorrecte des variables de base de données : Évitez d'utiliser des variables de base de données (comme
db) qui peuvent être modifiées accidentellement ; préférez des constantes ou des configurations immuables. - Chaînes de comparaison (comparaisons en cascade) : Utilisez
if a < b < c:plutôt queif a < b and b < c:pour une meilleure lisibilité.
Comment utiliser cette compétence
- Pendant la révision de code, parcourez la liste des anti-patrons ci-dessus.
- Si vous détectez un anti-patron, commentez-le et proposez une amélioration.
- Avant de finaliser une implémentation, effectuez une passe rapide avec ces vérifications.
- Lors du débogage, recherchez ces patterns pour identifier la cause racine de bugs récurrents.
Exemple de code avec anti-patron et correction
Anti-patron (mutation de liste pendant l'itération):
mylist = [1, 2, 3, 4]
for item in mylist:
if item % 2 == 0:
mylist.remove(item)
Correction:
mylist = [1, 2, 3, 4]
mylist = [item for item in mylist if item % 2 != 0]
Notes supplémentaires
- Cette compétence est compatible avec tous les environnements Python 3.x.
- Elle peut être utilisée avec des outils de linting comme
pylintouflake8pour une détection automatisée. - Pour une efficacité maximale, intégrez-la dans votre processus de revue de code et votre pipeline CI/CD.