{"id":442005,"date":"2024-02-08T09:11:34","date_gmt":"2024-02-08T08:11:34","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=dotnet&#038;p=442005"},"modified":"2024-02-08T09:11:39","modified_gmt":"2024-02-08T08:11:39","slug":"utiliser-l-ai-assistant-de-jetbrains-pour-mieux-comprendre-les-changements-apportes-a-votre-code","status":"publish","type":"dotnet","link":"https:\/\/blog.jetbrains.com\/fr\/dotnet\/2024\/02\/08\/utiliser-l-ai-assistant-de-jetbrains-pour-mieux-comprendre-les-changements-apportes-a-votre-code\/","title":{"rendered":"Utiliser l&#8217;AI Assistant de JetBrains pour mieux comprendre les changements apport\u00e9s \u00e0 votre code"},"content":{"rendered":"<p>En tant que d\u00e9veloppeur, vous passez une grande partie de votre temps \u00e0 lire et \u00e0 comprendre des bases de code. Dans le cas d&#8217;une base de code qui \u00e9volue rapidement, cela peut s&#8217;av\u00e9rer fastidieux, surtout si vous ne pouvez pas contacter les auteurs d&#8217;origine et ne disposez que d&#8217;une documentation obsol\u00e8te. Heureusement, le code ne ment jamais, et les capacit\u00e9s des LLM et des assistants d&#8217;IA facilitent l&#8217;analyse et la synth\u00e8se des entr\u00e9es, ce qui favorise la compr\u00e9hension du travail r\u00e9alis\u00e9 et la planification des extensions ou des modifications d&#8217;une base de code.<\/p>\n<p>Dans cet article, nous allons voir comment utiliser l&#8217;AI Assistant de JetBrains pour r\u00e9sumer les commits pass\u00e9s dans un r\u00e9f\u00e9rentiel Git, affiner le r\u00e9sum\u00e9 pour les contributeurs et mieux comprendre le travail d&#8217;un contributeur au sein d&#8217;un symbole. Pour finir, nous vous fournirons plusieurs suggestions de prompts \u00e0 tester.<\/p>\n<p>Avant toute chose, vous devez activer le plugin JetBrains AI Assistant et disposer d&#8217;un abonnement valide au <a href=\"https:\/\/www.jetbrains.com\/fr-fr\/ai\/\" target=\"_blank\" rel=\"noopener\">service JetBrains AI Assistant<\/a>.<\/p>\n<h2 class=\"wp-block-heading\"><strong>R\u00e9sumer des commits avec l&#8217;AI Assistant de JetBrains<\/strong><\/h2>\n<p>Les IDE de JetBrains disposent d&#8217;un client de contr\u00f4le de code source de premier ordre, qui permet de visualiser l&#8217;ensemble des branches et des commits d&#8217;un r\u00e9f\u00e9rentiel existant. Si vous avez d\u00e9j\u00e0 travaill\u00e9 avec des outils de JetBrains, vous avez probablement utilis\u00e9 la <strong>fen\u00eatre d&#8217;outils Git<\/strong> et la navigation dans une base de code existante. Vous pouvez mettre en \u00e9vidence plusieurs commits lorsque l&#8217;AI Assistant est activ\u00e9 et choisir l&#8217;option <strong>Explain Commits with AI Assistant<\/strong>.<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-423737\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/01\/image.png\" alt=\"Fen\u00eatre d'outils Git de JetBrains Rider avec menu contextuel montrant l'option Explain Commits with AI Assistant\" width=\"1600\" height=\"834\" \/><\/figure>\n<p>Cela ouvrira une nouvelle session de chat avec l&#8217;AI Assistant, avec les commits s\u00e9lectionn\u00e9s inclus comme contexte. Veuillez noter que l&#8217;AI Assistant n&#8217;envoie au service JetBrains que les commits Git et les informations sur leur historique. Il n&#8217;envoie pas les fichiers en tant que tels, mais peut afficher localement le contenu d&#8217;un fichier r\u00e9f\u00e9renc\u00e9 pour fournir des informations suppl\u00e9mentaires.<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-423748\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/01\/image-1.png\" alt=\"Chat de l'AI Assistant avec les commits s\u00e9lectionn\u00e9s comme contexte et une explication\" width=\"1350\" height=\"1600\" \/><\/figure>\n<p>Comme vous pouvez le voir sur cette capture d&#8217;\u00e9cran, nous obtenons un r\u00e9sum\u00e9 de l&#8217;ensemble des modifications du code dans les commits s\u00e9lectionn\u00e9s. Vous pouvez restreindre la port\u00e9e du chat en excluant certaines actions ou le travail r\u00e9alis\u00e9 par certaines personnes. Dans cet exemple, j&#8217;ai pr\u00e9cis\u00e9 <strong>Summarize all the work by everyone except Khalid Abuhakmeh<\/strong> dans le chat.<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-423759\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/01\/image-2.png\" alt=\"JetBrains AI Assistant affichant le travail effectu\u00e9 \u00e0 l'exclusion de celui r\u00e9alis\u00e9 par Khalid Abuhakmeh\" width=\"1470\" height=\"1304\" \/><\/figure>\n<p>Remplacez le nom dans le prompt par votre nom pour faire le test dans votre base de code existante. Vous avez la possibilit\u00e9 d&#8217;<a href=\"https:\/\/www.jetbrains.com\/help\/rider\/Use_prompts_to_explain_and_refactor_your_code.html#ai_add_custom_prompts\" target=\"_blank\" rel=\"noopener\">enregistrer ce prompt afin de pouvoir l&#8217;utiliser dans de futurs chats<\/a>.<\/p>\n<p>Une autre approche int\u00e9ressante consiste \u00e0 regrouper les r\u00e9sum\u00e9s en fonction des contributeurs, en utilisant le prompt <strong>Group all summaries by contributors<\/strong><\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-423770\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/01\/image-3.png\" alt=\"JetBrains AI Assistant affichant le travail par contributeurs\" width=\"1474\" height=\"1598\" \/><\/figure>\n<p>La r\u00e9ponse du chat contiendra s\u00fbrement des symboles qui vous int\u00e9resseront. Saisissez cette opportunit\u00e9 pour approfondir l&#8217;explication d&#8217;un symbole en particulier. Pour ma part, comme je travaille avec la <a href=\"https:\/\/github.com\/khalidabuhakmeh\/Htmx.Net\" target=\"_blank\" rel=\"noopener\">base de code HTMX.NET<\/a>, je veux voir toutes les modifications affectant la classe HtmxHeadersTagHelperTests avec le prompt <strong>What work did Ricky do in <\/strong><strong>HtmxHeadersTagHelperTests<\/strong>.<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-423781\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/01\/image-4.png\" alt=\"JetBrains AI Assistant affichant le travail r\u00e9alis\u00e9 par Ricky sur une classe csharp\" width=\"1478\" height=\"1068\" \/><\/figure>\n<p>Voici quelques id\u00e9es suppl\u00e9mentaires pour affiner davantage le r\u00e9sum\u00e9 de l&#8217;AI Assistant\u00a0:<\/p>\n<ul>\n<li>What work was performed within JavaScript files? (Quel travail a \u00e9t\u00e9 effectu\u00e9 dans les fichiers JavaScript\u00a0?)<\/li>\n<li>Who made the most changes within these commits? (Qui a fait le plus de modifications dans ces commits\u00a0?)<\/li>\n<li>How many test files are within these commits? (Combien de fichiers de tests y a-t-il dans ces commits\u00a0?)<\/li>\n<li>Did any two contributors work on the same file within these commits? (Deux contributeurs ont-ils travaill\u00e9 sur le m\u00eame fichier dans ces commits\u00a0?)<\/li>\n<li>How many commits were there, excluding merge commits? (Combien de commits y a-t-il eu, outre les commits de fusion\u00a0?)<\/li>\n<li>Give me the selected commit history in a CSV format using only commas and quoted values. (Donne-moi l&#8217;historique des commits s\u00e9lectionn\u00e9s au format CSV en utilisant uniquement des virgules et des valeurs entre guillemets.)<\/li>\n<\/ul>\n<p>Ces prompts peuvent vous aider \u00e0 obtenir des informations plus approfondies et cibl\u00e9es, que vous pourrez partager avec les membres de votre \u00e9quipe. Assurez-vous de toujours bien v\u00e9rifier l&#8217;exactitude et l&#8217;exhaustivit\u00e9 des r\u00e9ponses.<\/p>\n<h2 class=\"wp-block-heading\"><strong>Conclusion<\/strong><\/h2>\n<p>L&#8217;AI Assistant de JetBrains vous accompagne dans la d\u00e9couverte, la compr\u00e9hension et la formulation de r\u00e9flexions sur le travail que vous et d&#8217;autres personnes ont d\u00e9j\u00e0 effectu\u00e9 dans une base de code, afin de faciliter votre travail et de vous permettre de mieux communiquer les id\u00e9es aux membres de votre \u00e9quipe. Un dialogue efficace permet de renforcer l&#8217;efficacit\u00e9 de l&#8217;\u00e9quipe, de d\u00e9couvrir et d&#8217;\u00e9liminer des bugs, et d&#8217;am\u00e9liorer la qualit\u00e9 des logiciels.<\/p>\n<p>Cet article donne quelques pistes d&#8217;utilisation de l&#8217;AI Assistant de JetBrains pour explorer le travail d\u00e9j\u00e0 r\u00e9alis\u00e9 dans votre base de code. Pour en d\u00e9couvrir plus par vous-m\u00eame, <a href=\"https:\/\/www.jetbrains.com\/fr-fr\/ai\/\" target=\"_blank\" rel=\"noopener\">essayez l&#8217;AI Assistant<\/a> gratuitement pendant 7 jours. Si vous utilisez d\u00e9j\u00e0 l&#8217;AI Assistant n&#8217;h\u00e9sitez pas \u00e0 nous faire part des autres prompts que vous utilisez dans votre workflow au quotidien.<\/p>\n<p><em>Auteur de l&#8217;article original en anglais<\/em> :<\/p>\n\n    <div class=\"about-author \">\n        <div class=\"about-author__box\">\n            <div class=\"row\">\n                <div class=\"about-author__box-img\">\n                    <img decoding=\"async\" src=\"https:\/\/secure.gravatar.com\/avatar\/?s=200&#038;r=g\" width=\"200\" height=\"200\" alt=\"\" loading=\"lazy\"  class=\"avatar avatar-200 wp-user-avatar wp-user-avatar-200 photo avatar-default\">\n                <\/div>\n                <div class=\"about-author__box-text\">\n                                                        <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n","protected":false},"author":813,"featured_media":434218,"comment_status":"closed","ping_status":"closed","template":"","categories":[4992,1401],"tags":[6847,8168,211,46,1978],"cross-post-tag":[8396],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/dotnet\/442005"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/dotnet"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/types\/dotnet"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/users\/813"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/comments?post=442005"}],"version-history":[{"count":10,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/dotnet\/442005\/revisions"}],"predecessor-version":[{"id":442243,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/dotnet\/442005\/revisions\/442243"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/media\/434218"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/media?parent=442005"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/categories?post=442005"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/tags?post=442005"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/cross-post-tag?post=442005"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}