1
0
mirror of https://gitlab.com/free_zed/free_zed.gitlab.io.git synced 2024-06-09 11:52:31 +00:00

Update du python plus professionel

This commit is contained in:
Freezed 2023-02-18 11:46:31 +01:00 committed by freezed
parent 0d15ddd8fa
commit b4ec504933

View File

@ -24,33 +24,53 @@ _[Support][support]_
Notes personnelles
==================
* présentation
- [arolla - software gardening](https://www.arolla.fr/)
- Python craft
* syntaxe simple
* beaucoup de liberté et ça peut **beaucoup** dégénérer
* je peu faire beaucoup de très mauvaise qualité
* m_mais aussi de très bonne qualité
- Bidouiller c'est quoi?
* juste marche
* sans considérere le futur, meilleure approche
* du script
- le danger:
* maintenance complexe
* empoisonne la collaboration
* dette technique
* cercle vicieux, théorie des tas/vitre cassé
- pourquoi le _clean-code_?
* intention plus claire
* pour ajouter plus facilement du code
* éviter la peur de son propre code
* debug
- [Zen of Python - PEP 02][pep20]
* usage des `fstring`
* remplacer `get` qui est trop répendu
* usage des clés explicites, sans relire le `dict()`
* [PEP 8][pep8]
- présentation
* [arolla - software gardening](https://www.arolla.fr/)
- Python craft
* syntaxe simple
* beaucoup de liberté et ça peut **beaucoup** dégénérer
* je peu faire beaucoup de très mauvaise qualité
* mais aussi de très bonne qualité
- Bidouiller c'est quoi?
* juste marche
* sans considérere le futur, meilleure approche
* du script
- le danger:
* maintenance complexe
* empoisonne la collaboration
* dette technique
* cercle vicieux, théorie des tas/vitre cassé
- pourquoi le _clean-code_?
* intention plus claire
* pour ajouter plus facilement du code
* éviter la peur de son propre code
* debug
- [Zen of Python - PEP 02][pep20]
* usage des `fstring`
* remplacer `get` qui est trop répendu
* usage des clés explicites, sans relire le `dict()`
- [PEP 8][pep8]
- Conventions
* `_prefix` pour indiqué le caractère privé
* `snake_case_for_variable_and_function`, `CapitalizedCaseForClasses`, `CONSTANTE_CAPITALIZED`
* refleter le métier dans les noms
* éviter les abbreviations
- recommandations
* ne pas comparer les booleens `if valeur` au lien de `if valeur == True`
* `is not` au lieu de `not … is`
* préférer le `startswith` & `endswith` au lieu du _slicing_
* préférer les _comprehension lists_ (mais pas trop non plus)
* utiliser le multiparadigme
- la POO
* **Classe :** Cas d'usage pertinent ou pas
* **Encapsulation :** protection de variable (càd non modifiable par accident)
* Les fonctions sont des objets et manipulable comme telles
* Python aime les _design pattern_
* Des fonctionnalités attendue
- outils:
* `black`, `flake8`, `mypy`
* `black` a été testé avec différents paramètres pour choisir les paramètres par défaut
* `mypy`: _exemple dans les slides_, n'intervient pas sur le _runmtime_
[abstract]: https://www.pycon.fr/2023/fr/talks/