Blog des Gens Compliqués

Wallah mon backend est écrit en Rust

03/05/2021 10:37:28+02:00|Par DkVZ
2 minutes de lecture (facile)

Le backend de ce blog c'était mon dernier projet en Java de ma vie (que je pense que sans doute).

Je vous parlais précédemment de mes expériences avec Actix web, le nouveau backend/API est en place (c'est ce repo).

Comme je le disais auparavant, je ne suis vraiment pas certain que ça soit plus intéressant que de juste utiliser Node. C'est sûr que l'utilisation mémoire est vraiment excellente, avec 1 seul thread + 1 autre que j'utilise pour des tâches internes.

Tout ce que je peux dire c'est que mon password manager, qui est en .NET Core, prend presque 6 fois plus de mémoire (~80MB VS ~14MB — Un projet Node tourne autour de 50MB) mais la comparaison est un peu injuste puisque, comme Java, .NET utilise un runtime async/await fortement multithreadé avec un panaché de threads système et userspace.

J'ai eu deux ou trois soucis avec SQLite parce qu'il s'avère que la crate Rusqlite ce sont des bindings vers la librairie officiel SQLite écrite en C/C++. C'est pas un secret hein, c'est genre la première ligne de leur README, mais ça m'était sorti de la tête et je me suis retrouvé avec une version de la librairie SQLite incapable de faire de la recherche fulltext sur mon serveur.

Apparemment, le driver Java embarque tout ça nativement ou bien a été re-écrit totalement en Java.

Ce qui veut dire que je respecte pas trop la règle moderne d'embarquer toutes tes dépendances avec ton projet mais je le vis plutôt bien donc ça va.

Maintenant y a plus qu'à espérer que ça plante pas et que tout fonctionne comme ça doit, notamment la version server rendered des articles que je livre aux robots des résaux sociaux (exemple: https://api.dkvz.eu/render-article/122).

Tout ça m'aura permis de découvrir quelques coquilles et bizarreries dans l'ancien code, ce qui n'est pas vraiment étonnant quand on voir ce type de messages de commit:

Un message de commit qui dit que j'ai codé le truc en regardant Naruto

Ou encore la super doc de mes méthodes:

Doc de méthode qui explique que le code est nul

Rust a toujours cet "effet" qui me donne envie de produire du code robuste avec des tests et des DTOs. Bon, ma couverture de tests est un peu nulle mais c'est c'est quand même infiniment plus de tests que ce que j'écris d'habitude.

Regarde maman, dES TESTS

Juste des tests, c'est vraiment rien de spécial en fait

Commentaires

Il faut JavaScript activé pour écrire des commentaires ici

Ajouter un commentaire

Votre commentaire a été ajouté
(enfin, je pense)