Tous droits réservés

Une expérience : refactorer un peu de code de ZdS en live !

Demain, samedi 15 juillet, à 14h, heure de la frontière franco-allemande, je vais streamer sur twitch (https://www.twitch.tv/vhf_/) une petite séance de refactoring de Python.

J’ouvrirai un fichier où le code de ZdS est moche, et le but du jeu sera de le rendre meilleur en expliquant ce que je fais et pourquoi je le fais.

J’aimerais faire ça principalement à but didactique, pas dans le but immédiat de corriger le code de ZdS.

Refactorer du code, c’est une des activités principales dans le développement. Et pourtant c’est un des derniers skills que les développeurs acquièrent généralement. Ça s’apprend particulièrement bien par l’exemple, et le live est adapté à ça.

C’est une expérience, on verra comment ça se déroule, et éventuellement on remettra ça. Je pensais par exemple faire une session pour parler un peu du nouveau zmarkdown, éventuellement d’y résoudre un bug en live, ce qui permet de montrer le tooling puissant qui entoure l’écosystème Node. Par exemple comment utiliser notre suite de test et notre inspecteur d’AST, ou comment débugger :



Je vais faire en sorte de rendre ce stream le plus interactif possible. Idéalement, ayez un compte twitch pour pouvoir intervenir sur le chat, poser des questions, suggérer des choses. C’est optionnel je crois. Le seul vrai pré-requis, c’est d’apprécier l’accent suisse.

34 commentaires

Je ne sais pas à quel point je m’exprimais clairement ou je marmonnais des demi-phrases en mode stream of consciousness.

J’ai globalement réussit à comprendre ce que tu faisait alors que je ne sais quasiment pas programmer en python. Donc je pense que c’était plutôt clair. ;)

+4 -0

Je vais remettre ça, la flemme de faire un billet d’autant que c’est un peu dernière minute.

Donc dès 16h05, je vais faire du JavaScript avec le nouveau zmarkdown. Travailler un peu sur cette PR : https://github.com/zestedesavoir/zmarkdown/pull/123

https://twitter.com/_vhf

[edit] résultat : https://github.com/AmarOk1412/zmarkdown/pull/1/files

+0 -0

@victor : tu as vu la différence de viewers entre le live annoncé et celui-là ? Ca s’est passé comment à part ça, tu t’es senti plus à l’aise et plus fluide ?

tleb

Oui, grosse différence ! Ça s’est de nouveau pas super bien passé, de nouveau par manque de préparation. Je vais continuer à expérimenter.

+0 -0

@victor : tu as vu la différence de viewers entre le live annoncé et celui-là ? Ca s’est passé comment à part ça, tu t’es senti plus à l’aise et plus fluide ?

tleb

Dans mon cas je n’ai pas vu que tu allais streamer. Je pense que c’est le cas de beaucoup de monde.

Ça s’est de nouveau pas super bien passé

Le but n’est pas de te jeter gratuitement des fleurs. Il y a très certainement des choses à améliorer, le contraire serait étonnant. Mais ce que j’ai vu de ta première tentative et les quelques minutes de la deuxième se conjugue mal avec « mal passé » quand même.

+2 -0

Non clairement je dis pas "mal passé". Je dis "pas super bien". Bien mais pas top. Pas idéal. Je me sens pas super à l’aise.

J’aime bien faire ce genre d’expérience, voir qu’est-ce qui va mieux/pire comment.

Donc samedi j’ai repris une PR d’AmarOk sur laquelle il fallait régler plusieurs trucs, j’ai fait un stream d’1h30 dont voici le replay : https://www.youtube.com/watch?v=Nfat0DiNdu8

Le truc que je trouve frustrant, c’est que j’ai pas pu faire ce que je voulais entièrement. J’ai l’impression que ça se résume à "Je vais vous montrer comment je rends ce truc correct ET beau mais là ça fait 1h30 que je suis dessus est c’est un peu plus correct et un peu plus beau sauf que ça reste moche et que ça marche pas". Le lendemain j’y ai passé 1h offline et c’est devenu beau et correct. Quand je compare l’état actuel du code, qui est mergeable, avec l’état à la fin du stream de samedi, y’a un monde. Et j’aime pas trop l’idée qu’à la fin du stream ça soit si moche en comparaison (pas si moche en soi).

Dimanche après-midi, AmarOk en relisant mon code de samedi me posait 2 questions :

  • Pourquoi mocker le filesystem et pas seulement mocker les requêtes HTTP, dans les tests ?
  • C’est quoi ces debugger; qui trainent dans le code source JavaScript ?

Et je me suis dit que comme là j’étais super à l’aise pour répondre à ces questions, essayons en vidéo. Et là ça passe bien, ça se passe même vraiment bien je trouve. J’ai fait un petit stream de 14 minutes où je fais les choses 2x, d’abord j’implémente les mocks pour le filesystem en expliquant, puis je montre comment jouer avec le debugger. C’est clairement une expérience à refaire. Ce qui serait super, ce serait d’avoir des genres de séances de question/réponse/démo, je pense. Avoir une sorte d’heure de présence, et les gens peuvent venir sur le chat et poser des questions, et on y répond en live, petits exemples de code ou de tooling à l’appui.

Ça donne ça : https://www.youtube.com/watch?v=YQUND3GHlBs Seul regret : la voix sent le refroidissement à plein nez.

Et côté code c’est vraiment du code qui est bon, au final. Je pense que si je voulais être content d’un stream de ce développement, je devrais développer jusqu’à être content du code, puis tout virer, commencer le stream et refaire de 0. Là ce serait fluide et intéressant. Je serais pas en live à faire/défaire, ce qui est mon processus d’affinage.

+1 -0

Est-ce-que le format "présentation" pourrait aider ?

J’ai plusieurs fois tenté l’expérience "live-refacto" ou même "live-coding" et c’est hyper hyper chaud.

Par contre quand je code d’abord, que j’arrive à un résultat satisfaisant, et que je refais la démo en live, ça se passe beaucoup mieux. C’est très chronophage, mais ça fait vraiment gagner en sérénité. Quand j’ai vraiment du temps pour la préparation, je prépare mêmes des templates dans mon IDE pour m’aider sur les parties les plus triviales, ça aussi, ça permet d’éviter la typo que tout le monde a vue dans la salle sauf toi.

Ptet’ que c’est pas très adapté à ton format (ou tout simplement que ça serait beaucoup trop chronophage) mais ça m’a aidé à animer ces "code-reviews" intéractives.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte