RustIRC - Journal de dev - Update 0

Le dans «info» par Eleos
Mots-clés: ,

Ma vie bouge un peu en ce moment. Sans vouloir trop rentrer dans les détails, je prends un semestre de pause pour me reposer, me concentrer sur moi et ce que j'aime faire.

Mais pour éviter de tomber dans un mauvais cycle de fainéantise, j'essaye de me maintenir un minimum active. Dessiner, mettre mon nez en ville, faire du bénévolat, reprendre ce blog ... Ainsi que me mettre un peu plus sérieusement au développement software.

En effet jusqu'ici mon code se résume a :

  • des exercices (de cours ou disponibles sur le web), c'est à dire des fonctions pré-remplies et juste "fill in the blanks".
  • des petits scripts en python ou en shell pour mes serveurs / actions régulières sur mon laptop.
  • des projets de dev dans le cadre de cours

Le soucis avec ce dernier, c'est que les profs nous donnent les détails du projet et ce qu'on doit faire, sans vraiment de marge de manoeuvre.

Le seul moment où l'on était libre, c'était un projet de dev Android. En Java obligatoirement (alors que Kotlin venait d'etre adopté par Android Studio). par groupe de 6. Et comme organisation de dev, on devait utiliser [Scrum](https://fr.wikipedia.org/wiki/Scrum_(d%C3%A9veloppement), supervisé par des assistants ... startup nation. Comment dire que l'expérience ne m'a pas plu du tout.

Ce que je veux dev

Mais je sais que tout le dev de logiciel ne fonctionne pas comme ça. Et je compte bien apprendre seule sans avoir de deadline de rendu, de note a avoir, de contraintes imposé par autrui.

J'aimerais me mettre au dev, et pour ça je voudrais :

  • me créer un setup de dev confortable (vim + compilateur + correcteur syntaxique, je suis pas une grande fan des IDE)
  • Apprendre à lire des RFC - de la doc et en extraire les informations importantes
  • Apprendre a structurer mon projet avant de commencer à coder, puis coder "proprement"
  • Écrire des tests qui veulent dire quelque chose
  • Plein de trucs auxquels je ne pense pas.

Pour l'instant je vais bosser seule, ça me permettra de choisir précisément ce que je veux faire sans avoir a prendre en compte le travail en groupe (a long terme j'aimerais bien filer un coup de main a un projet libre communautaire qui me plait).

Mais sur quoi vais-je travailler ? Je pensais écrire une petite librairie implémentait le protocole (client) Internet Relay Chat, qui pourrait servir derrière pour un client maison ou bien des bots. IRC parce que c'est plutôt facile a tester (un channel sur freenode pour écrire 2-3 trucs et hop on s'en va) et l'on m'a dit que la doc était plutôt complete et facile.

Je vais faire tout ça en Rust, parce que:

  • Il faut toujours faire du forcing avec Rust
  • Je n'ai pas encore travaillé sur un projet en Rust et j'aimerais bien voir a quel point le langage se simplifie, ou au contraire se complexifie, quand le projet devient plus grand.
  • Le langage reste moins verbeux ou chiant a faire comme du Java ou du C (sans parler de C++).

Afin de continuer à me motiver, je vais poster une fois toutes les semaines / 2 semaines une update de mes avancées, sur quoi j'ai bloqué, ce que j'ai découvert ...

Pour la prochaine update, je me mets comme objectif (mais pas de deadline) :

  • parcourir la RFC d'IRC en prenant quelques notes
  • lire un résumé / parcourir en diagonale Code Complete 2 (au moins identifier les parties qui me concerneront pour la suite)
  • Commencer a faire un graph de l'implémentation (qu'est ce qui interagit avec quoi).

Le code du projet sera mis en ligne sur mon git et je vous invite fortement à faire des retours (via Mastodon ou par mail), que vous ayez des connaissances en Rust ou juste en dev en général.

Merci d'avance pour toutes les personnes qui vont suivre ce journal de dev, la suite arrive bientôt !