Les règles en SQL, les étapes en Python
Quand j’ai construit un traitement automatisé de facturation et de rapprochement pour un organisme de santé à Porto Rico, j’ai suivi une règle dès le départ : les règles d’appariement et de rapprochement vivent en SQL, et Python s’occupe de tout ce qui les entoure.
Cela ressemble à un petit choix technique. Il détermine qui peut lire les règles, comment on les teste et ce qui casse quand quelque chose change.
Le problème qu’il règle
L’organisme facturait ses membres chaque mois et rapprochait les encaissements selon la loi 95 de Porto Rico, pour les membres individuels et pour les adhésions conjointes de conjoints. Le travail se faisait à la main, et les chiffres devaient concorder exactement.
Ce genre de traitement mélange deux choses très différentes :
- Les règles : à quel membre appartient chaque paiement, quand deux enregistrements sont la même personne, ce qui compte comme une correspondance.
- Les étapes : recevoir les fichiers, les nettoyer, exécuter les vérifications dans le bon ordre, produire les résultats.
Quand les deux vivent dans le même script, chaque changement de règle est un changement du traitement, et chaque changement du traitement peut modifier une règle sans que personne ne s’en aperçoive.
Les règles en SQL
Les règles d’appariement sont en SQL, près des données. Cela a trois avantages :
- Lisibles. Une règle écrite sous forme de requête peut être lue par un analyste ou un auditeur qui ne programme pas en Python. Il voit la condition au lieu de devoir y croire.
- Testables. Une règle est une requête : on l’exécute sur des données connues et on vérifie le résultat.
- Vérifiables. Quand quelqu’un demande pourquoi un enregistrement a été apparié, la réponse est une requête qu’on peut relancer.
Les étapes en Python
Python fait ce qu’il fait bien : lire plusieurs fichiers d’entrée, les nettoyer, appeler les règles dans l’ordre et écrire les résultats. Il connaît la séquence, pas la logique d’affaires.
Ce qu’on y gagne
Une règle peut changer sans toucher au traitement, et le traitement peut changer sans toucher à une règle. Quand une réglementation ou un cas d’affaires change, le changement se fait à un seul endroit, et on voit facilement ce qui a changé.
Les résultats deviennent aussi plus honnêtes. Le traitement produit la facturation du mois, le rapport de rapprochement et une liste des enregistrements qui ne concordent pas. Comme les règles sont explicites, chaque enregistrement de cette liste a une raison qu’une personne peut lire. Et comme un utilisateur lance le cycle mensuel depuis un écran de l’application et confirme les résultats en cours de route, cette personne garde le contrôle de ce qui est facturé.
Quand je l’utilise
Chaque fois que les règles comptent plus que la tuyauterie : facturation, rapprochement, admissibilité, tout ce qu’on demandera d’expliquer plus tard. Le traitement peut être réécrit bien des fois. Les règles sont ce que l’organisation a réellement convenu, alors elles méritent l’endroit où elles se lisent le plus facilement.
Commentaires
Aucun commentaire pour l’instant. Soyez la première personne à commenter.