Ode au code de merde

Ode au code de merde

Je me suis récemment rendu-compte que ça faisait désormais 15 ans que j'étais "ingénieur développement", et très franchement, je me suis jamais senti "digne" du truc. Bien que j'ai toujours pondu du code qui fait ce qu'on lui demande, je n'ai jamais été pleinement satisfait de la qualité du code fourni.

Spud dans Trainspotting

Dans le cadre professionnel, ça a peut-être tendance à me ralentir mais au final, puisque je dois fournir quelque chose, j'arrive toujours à rendre du code, je l'espère, d'une qualité pas trop dégueu. Dans ma boite, comme dans beaucoup j’espère, on doit assigner notre merge request à quelqu'un, ce qui garanti un minimum de qualité.

Par contre, pour le code perso, c'est la plaie. Je n'ai aucune contrainte, donc ça n'avance pas, parce que je veux toujours essayer de faire un truc niquel. Un exemple récent, c'est mon API d'agrégation RSS. Je veux la faire en Rust, parce que je trouve que c'est un langage assez bas niveau, sécurisé, et performant. Mais il a aussi une courbe d'apprentissage assez hardcore. Et puisque c'est un langage assez jeune, il évolue beaucoup, son écosystème avec.

J'ai donc déjà changé de librairie web pour passer de rocket.rs à actix, parce que c'est async, et que l'async c'était la "nouveauté" à la mode . J'ai changé d'ORM pour passer de diesel.rs à SeaORM, parce que c'est aussi async et que c'était con de bloquer le code sur des appels à la base de données. Et je galère parce que je me bats encore beaucoup avec le borrow checker. Pour finir le tout, j'ai aucune idée de si mon code est idiomatique.

Le premier commit date du 7 novembre 2020. Un an et demi que je bosse dessus, et j'ai toujours rien de "présentable". J'ai à peine un proto qui me fait honte, et dont les sources étaient hébergées sur mon instance Gitlab perso.

Et ben j'ai décidé que j'en avais rien à foutre désormais.

Tant pis si le code est mal branlé, tant pis si c'est moche, tant pis si c'est pas du rust idiomatique. Je fais ce projet pour apprendre, et on apprend en faisant des conneries (...je vais beaucoup apprendre). Quand j'aurais un truc qui tient la route, peut-être demanderai-je l'avis de la communauté Rust qui a la réputation d'être plutôt bienveillante. Si retour il y a, j'appendrai de nouveau plein de truc, et ça améliorera le prochain projet.

Ca m'a également permis de me lancer sur un projet de jeu avec mon fils de 4 ans, et ma femme:  monstre térifian. C'est donc mon fils qui l'a imaginé et dessiné avec l'aide de ma femme, et j'ai fait le code avec Godot. Le code est moche, il y a quand même pas mal de bugs, c'est pas fini et ça le sera probablement jamais, mais je m'en fous, parce que mon fils adore, et j'aime passer du temps avec lui à l'écouter raconter comment les balles de tennis et les lasers assomment les ennemis (et c'est parfaitement logique).

Cet état d'esprit m'a même permis d'oser soumettre une pull request au projet SeaORM. C'est une PR de rien du tout, peut-être qu'elle sera rejettée, peut-être pas, mais c'est quand même cool d'avoir tenté.

Donc comme disait quelqu'un de très célèbre, probablement Mark Twain ou quelqu'un de ce cru:

Dance Code like nobody's watching
(meilleur film)