Tutorials

IA pour PHP : comment générer des implémentations de tests avec l’AI Assistant

Read this post in other languages:

Nous avons débuté cette série d’articles par l’examen de la façon dont l’AI Assistant peut générer des tests à partir d’une implémentation existante. Mais qu’en serait-il si nous voulions utiliser l’AI Assistant dans l’autre sens ? Que se passerait-il si nous voulions adopter une approche de développement davantage pilotée par les tests, en écrivant nos tests en premier, puis en demandant à l’AI Assistant d’en générer l’implémentation pour nous ?

Voyons comment nous pouvons faire cela.

Générer du code avec le chat de l’AI Assistant

La première étape pour générer une implémentation consiste à mettre un test en place. Imaginons que nous souhaitions créer un bus de commande et que nous ayons le test suivant :

Nous n’avons rien écrit d’autre, il n’y a pas encore de classe CommandBus et encore moins d’implémentation pour les méthodes handle et getHistory. Nous allons utiliser l’AI Assistant pour générer l’implémentation. Pour commencer, ouvrez le menu AI Actions en sélectionnant le texte et en appuyant sur Alt+Entrée / ⌥Entrée. Ensuite, choisissez New Chat Using Selection:

PhpStorm ouvre la fenêtre de chat de l’AI Assistant. Elle permet d’interagir avec l’AI Assistant et de lui demander ce que vous voulez. L’extrait de code que vous avez sélectionné sera déjà présent dans la fenêtre de chat et nous allons lui fournir un prompt simple : « écrire une implémentation pour ce test » :

L’AI Assistant prépare alors l’implémentation en quelques secondes :

Copions ce code dans un fichier et exécutons notre test pour voir ce qui se passe :

Ça fonctionne ! L’AI Assistant a écrit une implémentation opérationnelle pour notre test. En parcourant le code, on peut voir que cette implémentation semble solide, il n’y aura que quelques modifications de détails de style à effectuer. En utilisant l’AI Assistant, l’objectif n’est pas de lui faire écrire le code parfait à notre place, mais plutôt de générer le code à utiliser au départ afin de nous faire gagner du temps. Et c’est exactement ce qu’il a fait !

Et si nous voulons utiliser ce prompt à plusieurs reprises ? Y a-t-il un moyen de le réutiliser ?

Bien sûr !

Sauvegarder des prompts personnalisés

Ouvrez le menu AI Actions en appuyant sur Alt+Entrée / ⌥Entrée quelque part dans votre code. Au lieu de choisir un élément de menu existant, cliquez sur le lien Add Your Prompts en bas :

PhpStorm permet d’écrire des prompts personnalisés et de les enregistrer en tant qu’actions d’IA personnalisées. Dans ces prompts, vous pouvez utiliser la variable $SELECTION, qui contiendra le code que vous avez sélectionné lors de l’appel de votre prompt personnalisé.

Nous allons écrire un prompt pour notre cas d’utilisation, à savoir créer une implémentation pour un test sélectionné :

Faisons un essai ! Sélectionnez à nouveau le test, appuyez sur Alt+Entrée / ⌥Entrée pour ouvrir le menu AI Actions. Vous verrez que l’action personnalisée Write Implementation est maintenant disponible !

Sélectionnez cette action et PhpStorm écrira immédiatement le bon message à l’AI Assistant, ce qui rendra notre action assistée par IA réutilisable !

Conclusion

Dans cette série d’articles, nous avons vu plusieurs exemples d’utilisation de l’AI Assistant. Nous ne lui demandons pas d’écrire un code parfait, mais de générer du code qui puisse nous servir de point de départ. Le code fourni par l’AI Assistant est déjà très précis et j’ai hâte de découvrir ses améliorations à venir dans les prochaines versions. 

Personnellement, je ne crois pas que l’IA pourra remplacer les programmeurs de sitôt, mais je pense que c’est un excellent outil pour accélérer l’écriture du code, en particulier pour les parties répétitives, et donc pour nous permettre de nous concentrer sur les aspects les plus importants de notre code. 

Et vous, qu’attendez-vous de l’assistance par IA dans votre travail ? Dites-le nous dans les commentaires ! 

Liens utiles

Cet article vous a plu ? Voici les autres articles de cette série :

Ressources :

Vidéo :

Auteur de l’article original en anglais :

image description

Discover more