{"id":34190,"date":"2019-12-10T10:11:09","date_gmt":"2019-12-10T09:11:09","guid":{"rendered":"https:\/\/blog.jetbrains.com\/fr\/?p=400"},"modified":"2019-12-10T10:19:41","modified_gmt":"2019-12-10T09:19:41","slug":"intellij-idea-2019-3-performances-et-qualite-encore-ameliorees","status":"publish","type":"post","link":"https:\/\/blog.jetbrains.com\/fr\/2019\/12\/10\/intellij-idea-2019-3-performances-et-qualite-encore-ameliorees\/","title":{"rendered":"IntelliJ IDEA 2019.3 : performances et qualit\u00e9 encore am\u00e9lior\u00e9es"},"content":{"rendered":"Nous avons le plaisir de vous annoncer la disponibilit\u00e9 d'IntelliJ IDEA 2019.3 \u2013 la troisi\u00e8me et derni\u00e8re mise \u00e0 jour majeure de notre EDI phare cette ann\u00e9e !\r\n\r\nPour cette nouvelle version d'IntelliJ IDEA, nous nous sommes concentr\u00e9s sur les performances et la qualit\u00e9 globale de l'EDI. Nous avons litt\u00e9ralement organis\u00e9 un marathon de la qualit\u00e9, dans le cadre duquel notre \u00e9quipe s'est associ\u00e9e \u00e0 plusieurs autres \u00e9quipes de d\u00e9veloppement de JetBrains pour travailler notamment sur le perfectionnement de l'EDI, l\u2019accroissement de ses performances, la r\u00e9solution des probl\u00e8mes de r\u00e9activit\u00e9 de l'interface utilisateur, l'am\u00e9liorations du confort d'utilisation et des fonctionnalit\u00e9s existantes.\r\n\r\nNous nous sommes plus que jamais appuy\u00e9s sur vos commentaires et retours d\u2019exp\u00e9rience afin de d\u00e9finir les priorit\u00e9s pour ce cycle de d\u00e9veloppement. Nous tenons \u00e0 remercier tout particuli\u00e8rement les personnes qui nous ont fait part de suggestions d'am\u00e9liorations et signal\u00e9 des incidents. Notre \u00e9quipe est parvenue \u00e0 corriger plus de 1 600 incidents qui ont re\u00e7u plus de 3 900 votes dans notre syst\u00e8me de suivi.\r\n\r\nNous avons aussi plusieurs projets en cours, comme la prise en charge des nouveaux frameworks de Microservices, parmi lesquels Micronaut, Quarkus et Helidon, ainsi que la prise en charge tr\u00e8s attendue de MongoDB.\r\n\r\nNous esp\u00e9rons que tout cela rendra le d\u00e9veloppement avec IntelliJ IDEA encore plus agr\u00e9able !\r\n\r\n\r\n\r\n\r\nPoursuivez votre lecture pour en savoir plus.\r\nAm\u00e9lioration des performances\r\nNos efforts pour am\u00e9liorer les performances d'IntelliJ IDEA nous ont permis d'obtenir les r\u00e9sultats suivants :\r\n\r\n\tD\u00e9marrage plus rapide de l'EDI\r\n\tAm\u00e9lioration de la r\u00e9activit\u00e9 globale de l'interface, r\u00e9duction du nombre de blocages de l'interface et de l'\u00e9diteur\r\n\tR\u00e9duction de la consommation de m\u00e9moire, notamment pour l'importation des projets Gradle\r\n\r\nL'une de nos priorit\u00e9s cette ann\u00e9e a \u00e9t\u00e9 d'acc\u00e9l\u00e9rer le d\u00e9marrage. Pour y parvenir, nous avons apport\u00e9 plusieurs modifications significatives \u00e0 la plateforme IntelliJ, revu certains processus qui s'ex\u00e9cutaient auparavant de fa\u00e7on s\u00e9quentielle afin qu'ils s\u2019ex\u00e9cutent d\u00e9sormais en parall\u00e8le, r\u00e9organis\u00e9 les classes pour que le chargement de la classe initiale soit plus rapide, optimis\u00e9 le chargement des polices sous macOS, et bien plus encore.\r\n\r\nL\u2019am\u00e9lioration de la r\u00e9activit\u00e9 de l'interface utilisateur \u00e9tait un autre point prioritaire pour nous. Nous avons donc r\u00e9solu les probl\u00e8mes de blocage de l'interface qui se produisaient \u00e0 diff\u00e9rents niveaux d'IntelliJ IDEA. Nous avons facilit\u00e9 le signalement des blocages de l'interface utilisateurs, et pendant ce cycle de publication, nous avons ainsi pu travailler sur la r\u00e9solution des signalements que nous avons re\u00e7us (Merci !). Nous avons finalement r\u00e9ussi \u00e0 r\u00e9soudre les probl\u00e8mes de blocage provenant de plus de 1 600 tickets.\r\n\r\nEn outre, il n'y a plus de blocage d'IntelliJ IDEA lorsqu'un sch\u00e9ma d'expression r\u00e9guli\u00e8re correspond \u00e0 de tr\u00e8s longues cha\u00eenes dans \"Find in path\" ou lors de l'utilisation d'un grand nombre d'onglets de l'\u00e9diteur ou du d\u00e9bogueur. L'EDI assure \u00e9galement un rendu plus rapide de l'arborescence du projet.\r\n\r\nNous avons \u00e9galement r\u00e9solu diff\u00e9rents blocages de l'\u00e9diteur en travaillant \u00e0 l'optimisation de l'inf\u00e9rence de type Java. Et en parlant d'am\u00e9liorations des performances de Java, l'inf\u00e9rence de type Java pour les cha\u00eenes d'appel de m\u00e9thode longues fonctionne d\u00e9sormais beaucoup plus rapidement. Nous avons acc\u00e9l\u00e9r\u00e9 le surlignage du code dans les fichiers Java, notamment pour les m\u00e9thodes avec des arguments de variable g\u00e9n\u00e9riques (Arrays.asList, Map.ofEntries, etc.) dans lesquelles des dizaines d'arguments sont pass\u00e9s. Les performances de l'action Join Lines, lorsqu'elle est appel\u00e9e pour plusieurs lignes \u00e0 la fois, ont \u00e9galement \u00e9t\u00e9 am\u00e9lior\u00e9es.\r\n\r\nNous proposons le plugin Kotlin v1.3.60 avec IntelliJ IDEA, ce qui permet d'acc\u00e9l\u00e9rer \u00e9galement la mise en \u00e9vidence de l\u2019\u00e9diteur dans les fichiers Kotlin.\r\n\r\nDans le sous-syst\u00e8me de contr\u00f4le de versions, nous avons optimis\u00e9 le traitement des \u00e9v\u00e9nements et des fichiers ignor\u00e9s. Il y a moins de blocages et la mise \u00e0 jour du statut se fait plus rapidement dans les grands projets.\r\n\r\nDans le sous-syst\u00e8me Build, nous avons r\u00e9duit le pic de consommation de m\u00e9moire lors de l'importation des gros projets Gradle. Pour les projets Maven, nous avons \u00e9limin\u00e9 les blocages lors de la modification des fichiers pom.xml. Par cons\u00e9quent, l'EDI affiche d\u00e9sormais des suggestions de saisie automatique sans d\u00e9lais.\r\n\r\nNous sommes satisfaits des r\u00e9sultats que nous avons obtenus, mais nous ne comptons pas en rester l\u00e0 ! Nous allons continuer sur cette lanc\u00e9e afin d\u2019acc\u00e9l\u00e9rer encore le d\u00e9marrage et d\u2019apporter davantage d'optimisations dans les prochaines versions.\r\nAm\u00e9lioration de la qualit\u00e9 des fonctionnalit\u00e9s existantes\r\nIntelliJ IDEA dispose d'un riche \u00e9cosyst\u00e8me de plugins auxquels vous avez acc\u00e8s dans notre r\u00e9f\u00e9rentiel. Toutefois, cela avait pour inconv\u00e9nient de rendre la gestion des plugins difficile car le chargement et le d\u00e9chargement de plugins n\u00e9cessitait \u00e0 chaque fois le red\u00e9marrage de l'EDI. IntelliJ IDEA 2019.3 r\u00e9sout ce probl\u00e8me en impl\u00e9mentant l'infrastructure de base sous-jacente pour la prise en charge de l'installation dynamique des plugins. L'EDI peut ainsi charger et d\u00e9charger les plugins sans red\u00e9marrage. Cela fonctionne actuellement pour les plugins de th\u00e8me et de carte clavier. Nous pr\u00e9voyons d'\u00e9tendre cela \u00e0 la plupart de nos plugins dans la prochaine version. Il s'agit de l'une des premi\u00e8res \u00e9tapes pour simplifier la gestion des plugins.\r\n\r\nDe nombreuses am\u00e9liorations de l'utilisation ont \u00e9t\u00e9 apport\u00e9es dans le sous-syst\u00e8me de contr\u00f4le des versions. Pour plus de clart\u00e9, nous avons am\u00e9lior\u00e9 le workflow d'extraction de Git en rempla\u00e7ant l'action \"Checkout as\" par 2 nouvelles actions distinctes : 'New Branch from Selected' et 'Checkout'. La nouvelle action \"New Branch from Selected' cr\u00e9e un nouvelle branche et ne d\u00e9finit pas le suivi. L'action 'Checkout' cr\u00e9e une nouvelle branche locale, l'extrait, et d\u00e9finit le suivi de la branche distante s\u00e9lectionn\u00e9e en l'absence de branche locale du m\u00eame nom.\r\n\r\nPour unifier l'interface utilisateur et obtenir des projets provenant de diff\u00e9rents services d'h\u00e9bergement VCS, nous avons remani\u00e9 la bo\u00eete de dialogue Clone. Vous pouvez maintenant vous connecter depuis cette bo\u00eete de dialogue ou, si vous \u00eates d\u00e9j\u00e0 connect\u00e9, l'EDI vous donnera instantan\u00e9ment un aper\u00e7u des listes de tous les r\u00e9f\u00e9rentiels regroup\u00e9s par comptes ou par organisations.\r\n\r\nD'autre part, il n'est pas n\u00e9cessaire d'extraire une branche pour faire un Push : il suffit d\u00e9sormais de rechercher la branche voulue dans la fen\u00eatre contextuelle Branches et d'effectuer un Push. Nous avons \u00e9galement ajout\u00e9 une colonne de noms de fichiers dans l'historique des fichiers pour les fichiers renomm\u00e9s ou d\u00e9plac\u00e9s. Une autre am\u00e9lioration que vous trouverez sans doute utile, est la capacit\u00e9 de forcer l'ajout d'un fichier \u00e0 Git (ou Mercurial), m\u00eame s'il est dans la liste .gitignore ou .hgignore.\r\n\r\nNous avons introduit une prise en charge basique de Java 13 dans IntelliJ IDEA 2019.2, et avec cette version, nous avons am\u00e9lior\u00e9 de fa\u00e7on significative la prise en charge des blocs de texte Java13. Nous avons r\u00e9cemment publi\u00e9 un article de blog pr\u00e9sentant ces modifications. en d\u00e9tail.\r\n\r\nUne nouvelle action Field Call Hierarchy a \u00e9t\u00e9 ajout\u00e9e. Utlisez simplement Ctrl+Alt+H (Windows, macOS, Linux) pour visualiser la hi\u00e9rarchie d'un champ s\u00e9lectionn\u00e9. Cela rend toutes les autres op\u00e9rations beaucoup plus simples.\r\n\r\nD\u00e9sormais, si la case 'Show quick documentation on mouse move' est coch\u00e9e, le survol d'un avertissement ou d'une erreur avec le pointeur affiche une infobulle unifi\u00e9e qui d\u00e9crit l'avertissement ou l'erreur et donne des informations de r\u00e9f\u00e9rence sur le code.\r\nAuparavant, dans ce cas, l'EDI affichait uniquement les infobulles d'inspections au lieu de la documentation ou parfois affichait m\u00eame 2 fen\u00eatres contextuelles \u00e0 la fois.\r\n\r\nLe comportement par d\u00e9faut de la bo\u00eete de dialogue des intentions a \u00e9t\u00e9 mis \u00e0 jour afin que les actions d'intention ne disparaissent pas de la liste de suggestions si vous choisissez une action d'intention puis annulez la bo\u00eete de dialogue.\r\n\r\nLa fen\u00eatre d'outils Services est d\u00e9sormais syst\u00e9matiquement affich\u00e9e et peut \u00eatre configur\u00e9e directement depuis elle-m\u00eame. De plus, vous pouvez masquer des configurations d'ex\u00e9cution particuli\u00e8res \u00e0 partir de cette fen\u00eatre d'outils.\r\n\r\nVoici les principales am\u00e9liorations :\r\n\r\n\tL'infobulle de discordance des types a \u00e9t\u00e9 remani\u00e9e pour am\u00e9liorer sa lisibilit\u00e9.\r\n\tLors de l'ouverture d'un projet, IntelliJ IDEA affiche d\u00e9sormais le nom du projet.\r\n\tVous pouvez d\u00e9sormais injecter plus de langages de mod\u00e8les dans votre code, notamment Plug (ex-Jade), Handlebars, EJS et Slim.\r\n\tLe d\u00e9filement avec la molette de la souris est d\u00e9sormais plus fluide.\r\n\tLa barre de d\u00e9filement peut \u00eatre rendue plus visible, gr\u00e2ce \u00e0 la case \u00e0 cocher \"Use contrast scrollbars\" dans la section Preferences\/Settings | Appearance &amp; Behavior | Appearance.\r\n\r\nPrise en charge de nouveaux frameworks et de nouvelles technologies\r\nM\u00eame si cette version a pour principal objectif l'am\u00e9lioration de la qualit\u00e9, un certain nombre de fonctionnalit\u00e9s qui \u00e9taient en cours de d\u00e9veloppement ont \u00e9t\u00e9 finalis\u00e9es. Veuillez noter que les nouveaut\u00e9s mentionn\u00e9es ci-dessous sont seulement disponibles dans IntelliJ IDEA Ultimate.\r\n\r\nLes microservices faisaient le buzz longtemps avant la pr\u00e9paration de cette nouvelle version. \u00c0 un certain stade, nous avons pens\u00e9 que cela rendrait le d\u00e9veloppement plus agr\u00e9able et ajouterait la prise en charge des frameworks et des technologies qui sont commun\u00e9ment utilis\u00e9es pour d\u00e9velopper des projets Java et Kotlin avec une architecture bas\u00e9e sur les microservices. Cette nouvelle version a b\u00e9n\u00e9fici\u00e9 d'un alignement favorable des plan\u00e8tes et nous avons commenc\u00e9 \u00e0 travailler sur l'int\u00e9gration.\r\n\r\nTout d'abord, nous avons enrichi l'assistance au codage et la navigation pour la nouvelle g\u00e9n\u00e9ration de frameworks de microservices, notamment Micronaut, Quarkus et Helidon. Nous avons \u00e9galement pens\u00e9 aux utilisateurs de services web r\u00e9actifs en compl\u00e9ment de Spring et ajout\u00e9 la prise en charge de Spring Web Flux.\r\n\r\nHabituellement, les microservices communiquent entre eux sur une liaison HTTP\/ WebSocket. Par cons\u00e9quent, l'\u00e9tape suivante pour nous a consist\u00e9 \u00e0 ajouter la prise en charge des API clientes HTTP Java, telles que java.net.URI \/ URL, Retrofit v2, OkHttp v3, ainsi que les biblioth\u00e8ques de clients des frameworks c\u00f4t\u00e9 serveur les plus populaires : Spring Feign, MicroProfile REST Client, etc. Le plus int\u00e9ressant avec cette nouvelle prise en charge est que l'EDI peut d\u00e9sormais assurer la saisie automatique des URL et la navigation pour les API HTTP\/WebSocket.\r\n\r\nPour l'\u00e9tape suivante, nous avons souhait\u00e9 fournir un cadre agr\u00e9able pour la saisie des points de terminaison dans votre projet et avons donc ajout\u00e9 la fen\u00eatre d'outils \"Endpoints\". Cette fen\u00eatre permet de voir \u00e0 la fois les API client et serveur. Elle a vocation \u00e0 devenir progressivement un espace central pour toutes vos API, pas seulement HTTP, mais aussi de messagerie, gRPC et GraphQL.\r\n\r\nEnfin, nous avons ajout\u00e9 la prise en charge \u00e9tendue des sp\u00e9cifications de la documentation des API. Dans cette version, il s'agissait de Swagger v2 et d'OpenAPI Sp\u00e9cification v3. Nous esp\u00e9rons que tous les utilisateurs ayant une approche centr\u00e9e sur les sp\u00e9cifications appr\u00e9cieront la prise en charge de la validation par sch\u00e9ma, de la saisie automatique du code, de la navigation, de la recherche des utilisations et de la refactorisation rename dans les fichiers YAML\/JSON contenant des descriptions d'API dans leur EDI.\r\n\r\nPour le moment, seuls les projets Java et Kotlin sont pris en charge, mais nous ne comptons pas en rester l\u00e0 et pr\u00e9voyons d\u2019\u00e9tendre la prise en charge \u00e0 de nouveaux langages et frameworks dans la prochaine version.\r\n\r\nEn compl\u00e9ment, IntelliJ IDEA 2019.3 propose la prise en charge tr\u00e8s attendue de MongoDB. Pour l'instant, il ne s'agit que d'une prise en charge initiale, mais nous pr\u00e9voyons de l'am\u00e9liorer. IntelliJ IDEA vous permet d\u00e9sormais d'afficher des collections et des champs dans l'explorateur de bases de donn\u00e9es, d'ex\u00e9cuter des requ\u00eates et d'en v\u00e9rifier les r\u00e9sultats.\r\nCorrectifs de bugs notables\r\nNous avons corrig\u00e9 de nombreux incidents, parmi lesquels :\r\n\r\n\tIntelliJ IDEA peut d\u00e9sormais localiser le r\u00e9pertoire d'installation de Gradle lorsqu'il a \u00e9t\u00e9 install\u00e9 par l'interm\u00e9diaire de Homebrew.\r\n\tIl est maintenant plus facile de d\u00e9finir manuellement le r\u00e9pertoire utilisateur de Gradle.\r\n\tL'EDI prend d\u00e9sormais en charge le stockage de mots de passe via KWallet sous Linux.\r\n\tLorsque vous travaillez sur un projet JavaFX, l'EDI peut afficher un fichier FXML avec Scene Builder int\u00e9gr\u00e9 dans l'onglet du m\u00eame nom.\r\n\tIl est maintenant possible de naviguer avec le clavier dans la fen\u00eatre d'outil Debug.\r\n\tIl est ainsi possible de copier le texte s\u00e9lectionn\u00e9 dans la fen\u00eatre contextuelle d'inspection avec Ctrl+C.\r\n\tLe focus est maintenu lors du basculement entre les fen\u00eatres de l'EDI.\r\n\tCorrectifs pour les positions de fen\u00eatres et de fen\u00eatres contextuelles.\r\n\tLes fen\u00eatres macOS appel\u00e9es sont ouvertes et utilisent le th\u00e8me sombre si le th\u00e8me Darcula est s\u00e9lectionn\u00e9 dans l'EDI.\r\n\r\nNous avons \u00e9galement mis \u00e0 jour JetBrains Runtime 11 (JBR 11) pour int\u00e9grer de tr\u00e8s nombreux correctifs.\r\n\r\n\tLe probl\u00e8me de rendu des polices sous macOS Catalina a \u00e9t\u00e9 corrig\u00e9.\r\n\tR\u00e9solution du probl\u00e8me d'ouverture des projets sous macOS 10.15 Catalina.\r\n\tR\u00e9paration des symboles dans la bo\u00eete de dialogue Evaluate Expression.\r\n\tD\u00e9tection des conflits de disposition du clavier avec le syst\u00e8me d'exploitation.\r\n\tR\u00e9solution du probl\u00e8me d'affichage constant en italiques dans l'\u00e9diteur.\r\n\tR\u00e9paration de l'\u00e9cran de bienvenue sous Windows.\r\n\tL'EDI signale d\u00e9sormais les conflits de keymap de l'EDI avec celui du syst\u00e8me d'exploitation natif.\r\n\tCorrection des polices incorrectes (italique) dans l'\u00e9diteur.\r\n\r\nAutres \u00e9volutions\r\nCette version reprend \u00e9galement toutes les modifications d'Android Studio 3.5.\r\n\r\nNous avons \u00e9galement retir\u00e9 les plugins Vaadin et de prise en charge des applets Java. Ils resteront cependant disponibles dans notre r\u00e9f\u00e9rentiel de plugins et peuvent \u00eatre install\u00e9s manuellement.\r\n\r\nNous avons essay\u00e9 d'adopter une approche diff\u00e9rente avec cette version et nous esp\u00e9rons que le r\u00e9sultat vous plaira ! Si vous souhaitez vous plonger dans la liste exhaustive d'incidents r\u00e9solus, nous vous invitons \u00e0 consulter les notes de publication.\r\n\r\nD\u00eetes-nous ce que vous en pensez ! Vous pouvez nous contacter sur Twitter, Facebook ou en laissant un commentaire ci-dessous.\r\n\r\nConsultez la page Nouveaut\u00e9s et regardez la vid\u00e9o de pr\u00e9sentation.\r\nT\u00e9l\u00e9chargez IntelliJ IDEA 2019.3 et b\u00e9n\u00e9ficiez d'une version encore plus stable de votre EDI Java pr\u00e9f\u00e9r\u00e9 !\r\n\r\nBon d\u00e9veloppement\u00a0!\r\n\r\nAuteur de l'article original en anglais :\u00a0Zlata Kalyuzhnaya","protected":false},"excerpt":{"rendered":"Nous avons le plaisir de vous annoncer la disponibilit\u00e9 d'IntelliJ IDEA 2019.3 \u2013 la troisi\u00e8me et derni\u00e8re mise \u00e0 jour majeure de notre EDI phare cette ann\u00e9e !Pour cette nouvelle version d'IntelliJ","protected":false},"author":{"name":"Delphine Massenhove","link":"https:\/\/blog.jetbrains.com\/fr\/author\/delphine-massenhovejetbrains-com"},"featured_media":34191,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[89],"tags":[5640,477],"cross-post-tag":[],"acf":[],"featured_image":"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2019\/12\/fr-blog@2x-3.png","_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/posts\/34190"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/users\/813"},{"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=34190"}],"version-history":[{"count":0,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/posts\/34190\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/media\/34191"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/media?parent=34190"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/categories?post=34190"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/tags?post=34190"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/cross-post-tag?post=34190"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}