> For the complete documentation index, see [llms.txt](https://weekly-essay.mikey.wang/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://weekly-essay.mikey.wang/fr/2022/w35-new-understanding-of-standardization.md).

# W35-Une nouvelle compréhension de la standardisation

Quelques nouvelles idées sur la standardisation. Elle élimine les différences, réduit la complexité cyclomatique et rend le système plus prévisible.

Nous avons récemment accompagné WeChat dans un changement de canal de paiement tiers. Cela a exigé des adaptations métier et de compatibilité du module de paiement dans le contexte MMP. Pour le frontend, nous avons introduit une implémentation spécifique à MMP. Le code est devenu moins maintenable et le comportement du paiement moins prévisible pour les autres. Nous avons laissé des pièges au métier comme à nous-mêmes ; un incident associé s'est produit.

Cela révèle une standardisation insuffisante. On peut décrire le paiement en trois phases : ouverture, choix du moyen et débit, puis traitement après paiement. La phase centrale s'exécute dans Titans et est déjà unifiée sur les différents terminaux. Malgré son volume, elle présente peu de variantes métier et reste prévisible, avec moins de problèmes. Les deux extrémités posent davantage de difficultés. Il faut y supprimer les différences entre MMP, MRN, Flutter et les autres piles, pour harmoniser ouverture et traitement final et réduire la complexité d'adaptation. Nous devons trouver une bonne solution pour maîtriser les deux bouts.

Le module propose deux types de SDK, JavaScript et natif. Je voyais auparavant le SDK natif comme un moyen de raccourcir l'ouverture et d'en améliorer l'expérience. Son rôle est plus large : il sert de couche intermédiaire. En localisant la logique d'ouverture et d'après-paiement, il fournit un pont standard à toutes les piles et efface efficacement leurs différences. Il réduit ainsi la complexité cyclomatique du service central, les occasions d'erreur et les incidents. Le SDK JavaScript remplace difficilement ce rôle.
