Contre le typage statique dans Python

Après l’asynchrone, le typage statique est la nouvelle tendance dans les langages de programmations : TypeScript, Ruby 3, etc. Python n’y échappe pas et voilà pourquoi ça m’agace. Ce que j’aime dans Python J’ai commencé à développer en Python en 2006. C’était avant les décorateurs, les générateurs, les gestionnaires de contextes, etc. Avant unittest et mock aussi. Le Python de l’époque peut paraître rudimentaire aujourd’hui. J’avais le sentiment d’écrire du code aussi simple qu’en C ou PHP, mais avec une syntaxe plus élégante, plus expressive. On pouvait facilement remplacer du C, PHP, Perl ou Java avec du Python avec moins de code et moins de bibliothèques tierces. ...

20 décembre 2021 · 6 min · Étienne BERSAC

JSON5

Le monde des formats de fichier de configuration est foisonnant. C’est la course aux standards. ini, xml, json, yaml, toml et py tout court : il y a déjà pas mal de choix. Et pour combler le tout, je redécouvre json5. La version 1.0 datant de 2018. Fonctionnalités Les fonctionnalités de JSON5 sont très simples : Les commentaires sur une ou plusieurs lignes. Guillemets optionnels pour les clefs d’objet. Virgule finale pour les objets et les tableaux. Chaînes de caractères multilignes. Guillemets simple ou double pour les chaînes de caractères. Les nombres hexadécimaux avec 0xff. Et une poignée d’autres extensions que vous trouverez décrites sur la page du projet. Voici une illustration: ...

19 mai 2021 · 3 min · Étienne BERSAC

Les stratégies de test

J’en peut plus des tests soit-disant unitaires ! Tout le monde fait des “tests unitaires” . C’est devenu un mot magique. Et ça ne veut plus rien dire. C’est plutôt l’enfer des tests automatiques : lenteurs, invasion de mocks, faux-positifs, découragement, dénigrement des tests unitaires, etc. Qui n’a pas vécu ça au boulot ? Regardons ça de plus près. La jungle des tests automatiques Les tests automatiques ont des tas de variantes : test d’acceptation, test bout-en-bout (end to end), behaviour test, test fonctionnels, test de régression, test de performance, test d’intégration, smoke test, pen test, test de résilience, fuzzy test, etc. chaque année a sa nouvelle variante de test automatique. Un test unitaire peut être un test de régression. Mais un test d’intégration aussi. Parcontre, un test d’intégration ne peut pas être un test unitaire. Pas facile de s’y retrouver. ...

13 mai 2019 · 6 min · Étienne BERSAC

Pub-Sub avec Postgres

Dès qu’une application web a besoin de déléguer une tâche lourde ou critique en arrière-plan, on se retrouve avec Redis pour stocker le résultat des tâches et parfois RabbitMQ pour gérer la messagerie. La mode est maintenant d’utiliser Redis aussi pour la messagerie, grâce à une procédure stockée en lua, ça économise le gros bousin qu’est RabbitMQ. Postgres peut déjà remplacer Redis grâce à JSONb. Mais pour notifier, va-t-on bourriner Postgres avec des SELECT ? Heureusement non, grâce à LISTEN/NOTIFY ! ...

20 février 2019 · 3 min · Étienne BERSAC

Débuter avec Python en 2019

De temps en temps, on me demande des conseils d’articles et de tutoriels pour connaître l’état de l’art en Python sur tel ou tel sujet. Pas si facile quand on baigne dedans et qu’on a déjà digéré l’essentiel des bonnes pratiques depuis des années. Et puis ça bouge. Alors voici ma version 2019 ! Utiliser Python 3 Vous découvrez Python et on vous a pris la tête avec Python 2 vs Python 3 ? Pour 2019, c’est plus simple : partez directement sur Python 3, au minimum 3.4. Si vraiment on vous demande d’être compatible Python 2, le portage ne sera pas bien compliqué à faire après coup. ...

25 janvier 2019 · 6 min · Étienne BERSAC