Mon utilisation de l'IA
Mis à jour mercredi 2 avril 2025
J'ai deux craintes par rapport à l'IA :
- passer à côté
- réduire mon cerveau en chamallow
La deuxième crainte est plus forte que la première. Beaucoup.
À 7 ans, je savais lire une partition de musique. L'institutrice nous a donné une astuce pour lire plus facilement : colorier chaque note d'une couleur. Cela a fonctionné. Les notes étaient plus faciles à lire. Mais j'ai désappris à lire sans annotations.
J'ai eu ma première calculatrice à 17 ans. Avant cela, je faisais mes calculs de tête. Je posais ceux qui étaient difficiles. Et je m'en sortais. J'étais bon en calcul mental. Mais quand j'ai commencé à utiliser la calculatrice de façon régulière, mes capacités se sont affaiblies. J'ai désappris à calculer.
Je ne veux pas que l'IA écrive/pense à ma place. C'est la ligne que je trace. Sinon, je l'utilise tous les jours pour les cas d'usages suivants.
Rechercher de l'information
Lorsque je recherche une information, je procède dans cet ordre :
- dans ma tête
- dans mes notes
- dans la documentation officielle
- à ChatGPT/Claude
- à Google
Interroger un LLM n'est pas mon premier réflexe. Mais si je dois chercher l'information en ligne, c'est par là que je commence.
Demander du feedback sur ce que j'écris / code
J'aime écrire. Et c'est une compétence que je souhaite développer. Mais je n'ai pas de problème à utiliser l'IA pour obtenir des retours :
- Corriger les fautes d'orthographe (ex :
Corrige les fautes de grammaire, d’orthographe et de syntaxe dans le texte suivant. Ne reformule pas. Affiche en gras tes modifications.
) - Suggérer des améliorations à partir d'une liste de principes d'écriture.
- Trouver un meilleur nom de variable ou de classe
Il m'arrive de demander un exemple de code à Claude. Mais je le retape moi-même :
- pour l'adapter
- pour développer ma mémoire musculaire
- pour ressentir la friction du code que j'ajoute
- pour n'ajouter que le nécessaire
Explorer différentes architectures de code
C'est un de mes usages préféré.
Par exemple, je lui ai posé les questions suivantes pour explorer des exemples de Clean Architecture avec le framework Python Dash :
- "is it possible to implement clean architecture with dash?"
- "how does it fit with a multipage application?"
- "can it also fit with type annotation?"
- "who is responsible to create the view model?"
- "what goes in the state of the application ? Domain objects ? (because I can only store serialized stuff)"
- "in dash, do you recommend a single central state or several states ?"
Pour chaque question, il a généré un exemple que j'ai pu étudier.
J'ai ensuite créé un script qui rassemble le code de l'application dans un seul fichier.
Le fichier obtenu a cette forme :
# run.py
if __name__ == "__main__":
...
# src/file1.py
# le code du fichier 1 ...
# src/file2.py
# le code du fichier 2 ...
J'ai donné le fichier à Claude. Et je lui ai demandé "Comment améliorer ce code en suivant les principes de la Clean Architecture" ?
J'ai itéré sur le design avec des questions comme :
- "Que penses-tu de l'idée de regrouper au même niveau les services, et les interfaces/implémentations des repositories ?"
- "Core ?" (pour lui demander de clarifier ce qu'il entend par "core")
- "I would like to regroup the repositories and the gateways in the same folder. What name can I give to this folder? Do you have suggestions?"
- ...
Puis je me suis inspiré des exemples pour refactorer l'application.
C'est cas d'usage fonctionne uniquement sur un petit projet. Mais c'est génial pour apprendre. Et pour visualiser les compromis de chaque décision d'architecture.
Autres usages
Voici les autres usages que j'ai des LLM au quotidien :
- Générer des diagrammes. Ex :
What is langage server protocol ? Can you generate a mermaid diagram of how jedi, jedi-vim and vim works together? and where the lsp takes place?
- Discuter de solutions possibles et générer des prototypes quand je documente une décision d'architecture (aka ADR)
- Clarifier la différence entre deux concepts. Ex :
In Michael Feather's book, what is the difference between a Seam and an Enabling Point?
- Discuter une traduction. Pour une traduction statique, j'utilise DeepL. Mais si je veux une traduction interactive, avec une explication sur les choix de traduction, je passe par un LLM. Ex :
How would you translate Michael Feathers concept of "Seam" in french ?
- Vérifier que j'ai bien compris un concept / poser des questions sur un concept.Ex :
Can we say that docker compose allow some infrastructure as code ?
(la réponse est oui) - Identifier la cause d'un bug et des pistes de résolutions
- Optimiser un morceau de code (après l'avoir couvert de tests automatisés)
- Identifier des catégories dans une liste d'éléments
Usages à expérimenter
Voici des usages que je n'ai pas encore testés, mais qui m'intriguent :
- Générer des questions provocantes sur un concept pour approfondir ma réflexion
- Identifier les concepts d'une note littéraire
- Générer une liste de question "empowering" (et y répondre)
- Reformuler un concept
- générer des prototypes pour communiquer une idée de feature (ex avec https://v0.dev/)
- établir une spécification produit de type product requirement document (PDR) (ex avec https://www.chatprd.ai/)
Usages à venir
Je demande à chaque personne que j'interview ses usages préférés de l'IA.
Je mettrai cette page à jour au fil de mes découvertes.
D'ici là, bonne exploration !