Bonjour à tous,
J’aurais aimé savoir si certains d’entre vous ont déjà pu utiliser Mypy dans un projet (perso, ou dans votre boîte, en solo, ou au sein de votre équipe) et qu’est-ce que du typage statique sur le Python a pu vous apporter de bien ou de mal. Avez-vous déjà eu l’occasion de porter un code Python en Python typé ? Ou bien de commencer un projet en Python typé from scratch ? Ça m’intéresse de savoir ce que vous en avez pensé !
Je suis actuellement en train de lancer un projet dans lequel je serai certainement amené à collaborer avec d’autres personnes. L’application qui y est développée n’a rien de très exotique : une app Web faite avec du Flask et une base de données PostgreSQL. Ça reste une application CRUD assez basique à l’heure actuelle, mais j’attends une certaine montée en complexité du code dans les étapes à venir. J’ai du mal à voir où le typage sur Python (total ou partiel) pourrait m’aider dans mon projet : après tout, il y a déjà une certaine rigueur sur la validation des inputs (avec l’excellente lib Cerberus par exemple), du try/except
autour des erreurs SQL de violation de contraintes, etc. D’un autre côté, si cela peut améliorer la qualité du code de façon tangible, je ne voudrais pas passer à côté de ça.
D’où mon intérêt pour vos précieux retours.
Pour l’avoir essayé déjà un peu, je dois dire que je ne suis pas si déstabilisé par rapport à la verbosité qui augmente un peu. Ça ajoute des infos utiles, je trouve. J’ai pas mal apprécié que Mypy soit capable de détecter des petites erreurs d’inattention du genre, le type retourné par d.get('foo')
, n’est pas celui de d['foo']
(s’il est là) mais bien Optional[type(d['foo'])]
, ce qui force à considérer le cas où l’on aura None
ou bien de renseigner une valeur par défaut.
Merci de m’avoir lu !