Aller au contenu
gaetancottrez.dev

Utiliser les Katas Code pour vous perfectionner

Published:le  à 05:00 | (7 min de lecture)
Utiliser les Katas Code pour vous perfectionner

Table des matières

Ouvrir table des matières

Utiliser les Katas Code pour vous perfectionner

Quand on apprend à coder que ce soit par une formation, l’école ou même en autodidacte, nous devons nécessairement nous exercer en réalisant des exercices sur des sujets plus ou moins divers afin de valider nos connaissances.

Bah les Katas Code c’est un peu le même principe et je vais vous expliquer concrètement de quoi il s’agit.

CommitStrip Kata Code Source : https://www.commitstrip.com/fr/2020/06/11/im-watching-you/ 🔗

Comprenons ce que c’est un Kata

Peut-être avez-vous déjà rencontré ce mot ? Il a une résonance à la culture nippone ? Et bien c’est le cas.

En fait, ce terme est tiré tout droit des arts martiaux et bien entendu, on reprend également l’idée qu’il y a derrière.

Le principe d’un Kata pour les arts martiaux ?

S’exercer sur UN geste technique précis en le RÉPÉTANT sous forme d’exercice afin de pouvoir le MAÎTRISER et qu’il devienne NATUREL.

Notez les mots en lettre capitale et en gras, car ils sont très importants pour réaliser un Kata en programmation.

D’ailleurs, le principe d’un Kata Code est le suivant : s’exercer sur UN concept ou UNE méthode de programmation en le RÉPÉTANT sous forme d’exercice afin de pouvoir le MAÎTRISER et que celui-ci devienne NATUREL.

Mais là vous vous dîtes peut-être que le principe de faire quelque chose de répétitif peut être contre-productif et vite devenir lassant.

Sachez que les katas sont tout l’inverse de cela, car si vous choisissez de réaliser des katas dans le but de vous améliorer, vous choisissez par conséquent de vous lancer dans une répétition bien veillante que vous avez choisie et dont on ne vous a pas forcé.

Autre chose : le fait de répéter un kata va vous permettre de bien maîtriser le sujet proposé avec ses contraintes.

Ainsi vous n’aurez qu’à vous focaliser sur la plus-value que vous souhaitez dégager de votre kata c’est-à-dire le réflexe ou le concept que vous souhaitez acquérir.

L’autre chose que vous pouvez vous demander c’est qu’elle est l’utilité de répéter un exercice de kata encore et encore. Des exercices divers et variés sur le même sujet comme ceux des cours ou des formations ne seraient-ils pas plus efficaces ?

Il faut comprendre que les katas et les exercices à l’école sont complémentaires et ils n’ont pas le même but.

L’un se repose sur la diversité ce qui va vous permettre de valider vos connaissances et de les mettre en application sur des contextes différents.

L’autre se repose sur la répétition ce qui va vous permettre d’acquérir la compétence pour que cela devienne naturel que vous n’ayez plus à réfléchir et faire l’effort d’appliquer ce que vous apprenez.

C’est un peu comme apprendre à conduire. Plus vous répétez les gestes, plus vous les ferez instinctivement.

Les cas d’usages des Katas Code

On peut donc résumer que les Katas Code vont vous permettre par la répétition de maîtriser votre écosystème technique et les concepts en programmation.

Cela va donc dans le bon sens, car cela va vous permettre de travailler de manière plus efficace et plus qualitative, car vous obtiendrez des réflexes basés sur les bonnes pratiques de la programmation.

Vous pouvez donc appliquer des Katas sur TOUT ce que vous voulez en programmation.

Cela peut-être la maîtrise d’un nouveau langage de programmation en passant par votre éditeur de code ou encore appliquer le principe de TDD 🔗 ou améliorer votre technique de refactoring de code.

Vous pouvez les utiliser donc pour tout, mais gardez bien en tête les règles à respecter que je vous ai communiquées plus haut :

Où trouver des Katas Dev ?

D’ailleurs, pour reprendre le dernier point, il est plus intéressant et plus motivant de les réaliser au début en équipe histoire de se challenger et de performer tous ensemble.

Si je vous dis Coding Dojo 🔗, ça vous parle ? C’est comme les Dojos dans les arts martiaux, ce sont des lieux de rassemblement de programmeurs dans le but de se donner un challenge à réaliser afin de se performer et de s’améliorer ensemble.

Ils utilisent donc fréquemment les Katas Code et ils pourront vous aider à débuter facilement dans cette pratique.

Ils existent des sites Internet spécialisés pour vous permettre de vous rassembler de manière virtuelle comme Coding Dojo 🔗, Code Wars 🔗 (vraiment pas mal celui-là) ou encore Code Chef 🔗.

Si vous préférez des rencontres physiques, fouiner sur le site Meetup 🔗.

Bien entendu, il y a aussi Github 🔗 qui peut vous permettre de faire des katas sans passer par ces plateformes.

Un exemple de Kata : Gilded Rose pour la méthode TDD

Nous souhaitons au sein de notre équipe développer nos features en méthode TDD. Nous sentons que c’est une méthode redoutable et éprouvée pour améliorer la qualité des applications de nos clients et du travail fourni.

Nous avons des clients qui sont sensibles à cela et surtout qui ont les moyens d’obtenir ce genre de qualité.

Au sein de l’équipe, on a déjà entendu parlé de TDD et certains l’ont même expérimenté, mais le problème c’est que nous ne sommes pas tous sensibilisés à cette technique. Pire aucun d’entre-nous n’a pas pu réellement utiliser cette méthode de manière efficace dans un projet concret.

Alors l’un de mes collègues a donné l’idée d’utiliser le kata Gilded Rose 🔗 pour apprendre et nous entraîner à réaliser des fonctionnalités en méthode TDD.

L’avantage de ce kata est qu’il existe dans la plupart des langages de programmation du marché. Vous pourrez donc l’utiliser de votre côté.

Pour information, vous pouvez aussi utiliser ce kata pour énormément d’autres choses (perfectionnement en refactoring, Clean Code, etc.).

Pour les fans de WoW (Word of Warcraft 🔗), vous aurez reconnu ce qu’est Gilded Rose.

Le principe est simple : vous avez un code existant qui permet de gérer le shop Gilded Rose qui contient une classe Item et une autre classe qui contient une méthode un peu barbare et dégueu qui gère les produits au niveau de leur qualité et de la date de vente max.

Bien entendu, ce Kata contient des contraintes à respecter (contrainte client) et vous n’avez pas le droit de modifier la classe Item.

Votre job est donc de rajouter un nouveau produit à cette gestion tout en respectant les contraintes.

Nous avons donc appliqué la méthode TDD pour nous exercer sur ce kata. Nous avons fait ce kata ensemble un vendredi après-midi.

On a bien pris le temps de rappeler à tout le monde ce qu’était la méthode TDD et en quoi cela consistait.

À tour de rôle sur un seul Mac, nous avons réécrit complètement le code en appliquant la méthode TDD.

Cela nous a pris entre 1h-1h30 pour faire l’exercice en ayant bien pris le temps et d’avoir expliquer les règles.

Et le but derrière ? Refaire le kata régulièrement pour obtenir les bons réflexes de TDD et surtout réécrire le kata beaucoup plus vite pour se donner du challenge.

Epilogue

J’espère que vous avez compris le principe des katas et surtout ce que cela peut vous apporter dans votre carrière de développeur.

Voyez cette technique comme un moyen de vous améliorer et de vous rapprocher des principes de coder plus efficacement et plus proprement.

Je vous conseille tout de même de faire une session de Kata Code avec d’autres personnes ou tout simplement de vous faire accompagner pour que vous soyez efficace dans cette discipline.

C’est plus motivant et plus challengeant pour vous. Car comme les arts martiaux, pour reproduire un geste correctement il vaut mieux le faire au début devant un maître sinon vous risquez de répéter constamment une erreur.

N’oubliez pas que je peux vous aider et vous accompagner pour débuter sur les katas et sur un concept technique spécifique ici.

Vous pourriez aussi aimer

Comment mettre en place une veille technologique efficace ?

Comment mettre en place une veille technologique efficace ?

Comment résoudre un problème en programmation

Comment résoudre un problème en programmation

Article précédent
Analyser la qualité et la sécurité de votre code avec SonarCloud
Article suivant
Comprendre et gérer la dette technique