Je peux déjà entendre les puristes de Go aiguiser leurs fourches. « Utilise la bibliothèque standard », scandent-ils. « Les frameworks sont un anti-pattern », hurlent-ils.
Je m’en moque.
Je n’utilise pas Fiber parce que je suis paresseux. Je ne l’utilise pas parce qu’il ressemble à Express.js. Je l’utilise parce que j’ai une addiction pathologique à la vitesse, et net/http, que bénie soit son âme sûre et compatible, est tout simplement trop poli pour la violence que je veux infliger à mon CPU.
Je dois vider mon sac. Quelque chose qui ronge mon âme depuis la première fois que j’ai rejoint un projet en cours de développement et que j’ai posé la question fatidique : « Où est la documentation de l’API ? »
La réponse était invariablement l’une des suivantes :
« Regarde la collection Postman. » (Traduction : un cimetière de 200 requêtes, dont la moitié est obsolète, nommées des choses comme GET users FINAL v2 (copie))
« Regarde juste le code. » (Traduction : reverse-engineer notre spaghetti et bonne chance)
« On la documentera plus tard. » (Traduction : on ne la documentera jamais)
Je commence ce post par une confession qui pourrait me valoir quelques ennemis : Je déteste le JSON.
Ce n’est pas une haine irrationnelle, du genre qui apparaît de nulle part. C’est une haine construite, brique par brique, au fil des années de débogage de payloads malformés, de champs qui auraient dû être des nombres mais qui arrivent en tant que chaînes de caractères, et ce classique null là où vous vous attendiez à un tableau vide. Le JSON est l’équivalent numérique d’une conversation téléphonique avec votre grand-mère : vous croyez avoir compris ce qu’elle a dit, mais quand vous arrivez, le gâteau aux carottes n’avait pas ce glaçage au chocolat tant attendu (les Brésiliens comprendront).
Pour ceux qui ont séché les cours de l’Académie de la Flotte Stellaire, le Kobayashi Maru est un exercice d’entraînement conçu comme un “scénario sans issue”. Le but n’est pas de gagner, c’est de voir comment vous gérez un échec inévitable. Dans le monde de l’ingénierie Backend, notre scénario sans issue est l’Exception Non Gérée.
Vous passez des semaines à concevoir un service beau et propre. Vous utilisez des Records, vous optimisez vos requêtes SQL, vous appliquez les principes SOLID. Et puis, le jour de la mise en production, un utilisateur envoie un JSON malformé, et votre API vomit une Stack Trace de 50 lignes directement dans la console de son navigateur. C’est moche, c’est peu professionnel, et cela expose votre logique interne au monde entier.
Si vous êtes un développeur qui a déjà géré du traitement de paie ou de la réconciliation bancaire/financière dans une entreprise utilisant Spring, vous avez probablement travaillé avec Spring Batch. J’avoue que je n’en suis pas un grand fan ; il a cette verbosité et cette lourdeur caractéristique de l’écosystème Java, donnant l’impression que même le job le plus simple nécessite bien plus de structure que nécessaire. Mais à quoi bon se plaindre ? La technologie que votre entreprise utilise est ce qui assure votre survie (logement, nourriture, vêtements). Donc, râler n’est pas le sujet du jour.