Découvrez Resharper!

Julien on déc 18th 2008

Resharper est pour moi l'outil le plus important en dehors de Visual Studio pour développer en .Net. C'est simple, je suis incapable de travailler sans, et la plupart des personnes que je connais qui l'utilisent sont dans le même cas. Je vous parle d'une productivité augmenté de plusieurs dizaines de pour cent pour les taches de développements! Et d'une qualité accrue pour la simple raison que l'on se permets de refactoriser le code en permanence comme l'opération devient indolore et peu couteuse. Pourtant, pour avoir rencontré un certain nombre d'éditeurs de logiciels récemment, je peux vous assurer que le taux de pénétration de cet add-in magique reste faible, trop faible.

Certes, parler de resharper ici revient à précher aux convaincus. Si vous lisez ce blog, il y a de fortes chances pour que vous soyez déjà utilisateur... Si ce n'est pas le cas, je vous invite non seulement à lire la suite mais surtout à essayer et faire essayer cet outil !

Resharper, ça sert à quoi ?

Resharper est un outil qui permet d'améliorer significativement la productivité des développeurs. Ses fonctionnalités couvrent les points suivants :

  • Refactoring
  • Analyse de code
  • Génération de code
  • Formatage de code
  • Navigation
  • Exécution des tests unitaires

Concrètement, Resharper vous permet de passer moins de temps sur l'accessoire et plus sur l'essentiel. Vous ne me croyez pas? voici quelques exemples de fonctionnalités (non exhaustif !):

Refactoring :

  • Créer une interface à partir d'une classe
  • Créer une méthode à partir du code sélectionné
  • Introduire un membre, une variable ou un paramètre à partir d'une expression
  • Changer la signature d'une méthode (par exemple, modifier l'ordre des paramètres)
  • Réécrire des expressions pour utiliser l'opérateur ??

Analyse de code :

  • Détecter toutes les erreurs de compilation dans la solution (sans compiler)
  • Détecter le code non utilisé dans la solution
  • Détecter les exceptions potentielles de type NullReferenceException
  • Suggestions sur les paramètres des fonctions. Par exemple utiliser un ICollection en paramètre plutôt qu'un IList si on n'utilise que des membres de ICollection dans le code de la fonction

Génération de code :

  • Générer les propriétés pour les membres sélectionnés (totalement configurable pour utiliser des propriétés automatiques ou non, des propriétés en lecture seule, etc.)
  • Générer un constructeur à partir des membres sélectionnés
  • Implémenter une interface en générant la structure des méthodes
  • Générer un membre (par exemple, après avoir tapé _foo = new Foo(); je peux générer _foo automatiquement avec un raccourci)
  • Générer une méthode (par exemple, après avoir tapé foo.Bar(); je peux générer la méthode Bar dans la classe Foo avec un raccourci)
  • Suggestion des using à ajouter au fur et à mesure que l'on écrit le code
  • Templates pour le code et les fichiers

Formatage de code :

  • Retirer les using inutile
  • Trier les membres d'une classe par visibilité (private, protected, internal, public)
  • Organiser la classe avec des régions de façon automatique

Navigation :

  • Trouver toutes les utilisations d'un symbole (Visual Studio le fait déjà mais très lentement par rapport à Resharper)
  • Surligner l'utilisation d'un symbole
  • Accès rapide aux fichiers, types et symboles en tapant leur nom ou initiales
  • Aller à la classe dont la classe courante hérite, à la classe fille.

Exécution des tests unitaires :

  • Exécuter le test spécifié
  • Exécuter tous les tests

Le plus simple pour se faire une idée concrète est encore de visionner les nombreux webcasts réalisés ici et la :

Vous pouvez également lire l'excellente série 31 days of Resharper.

Enfin, si vous téléchargez la démo, je vous conseille vivement de télécharger et d'imprimer la feuille résumant les raccourcis :

Toutes ces fonctionalités ont évidemment un prix, soit 315€ pour la version complète (c# + vb.net) ou 225€ pour la version C# seulement. Je peux vous assurer que c'est rentabilisé en 1 semaine !

P.S : Non, je n'ai pas d'actions chez Jetbrains, le créateur de Resharper :-)

Filed in outils | 8 responses so far

8 Responses to “Découvrez Resharper!”

  1. Olivier déc 18th 2008 at 06:38 1

    Je confirme, c’est un must have du genre. Ce qui est pratique, en plus de tous les points énumérés, c’est de pouvoir apprendre les spécificités de la v3.5 quand on vient récemment de la 2.0 pour C#, R# nous apprend a écrire proprement.

    Egalement, lors des tests unitaires (grandiose le runner R# !), quand on utilise NHibernate, R# permet d’afficher automatiquement les requêtes que NH construit, ou tout simplement de tracer grâce a Console.WriteLine, ça évite d’écrire un pg. console rien que pour ça, et ça, c’est top. (voir sur mon blog pour les exemples).

    Normalement, la 4.5 est prévue au 1er trimestre 2009, gratuite pour les (heureux) possesseurs de la 4 (http://johnpapa.net/all/early-peek-at-resharper-4-5-features/).

  2. Romain Verdier déc 18th 2008 at 07:56 2

    Ca a l’air pas mal ce petit outil, je vais peut-être me laisser convaincre :’)

    Ou plus sérieusement : ouais, difficile de s’en passer. Je regrette juste le manque de doc pour les addins… Etendre R# offre un paquet de possibilités (cf. Agent Smith, xUnit runners, etc.) mais on ne trouve pas assez de bon addins.

    Je souhaiterais aussi que Jetbrains se penche sur le debug time, je suis assez persuadé qu’il y a quelques trucs sympas à faire de ce côté pour améliorer l’expérience utilisateur : visualiseurs, sessions/profils de debug, etc.

  3. oolon déc 19th 2008 at 11:02 3

    Ca fait déjà quelques temps que j’utilise cet outil merveilleux,

    Mais j’en oublie toujours de passer un peu de temps à l’apprendre à fond. Ce qui pourtant serait rentabilisé en moins de deux jours :D

    Cet article va me pousser à faire ca sur ma petite pause de midi :D

    Merci merci

  4. Simon Mourier avr 21st 2009 at 09:33 4

    J’ai plusieurs fois essayé d’utiliser cet outil mais malheureusement, il est (était? j’ai essayé jusqu’à la 4.0 je crois) truffé de bugs, dont le plus pénible est de manger petit à petit toute la mémoire de la machine. A la fin d’une seule journée de travail, mon Visual Studio 2005/2008 monte à 600-1000M de RAM, et répond de plus en plus mal, ce qui n’est pas le cas si je le désinstalle. C’est malheureux parce que fonctionnellement, c’est très bien, et pas trop cher.

  5. Julien avr 22nd 2009 at 06:24 5

    Au niveau des bugs, je trouve que la dernière version (4.5) est particulièrement stable. On a pas eu de problème dans mon équipe.

    Pour la consommation mémoire, c’est effectivement le problème #1 de Resharper. La doc recommende d’ailleurs 4go de RAM. Cependant, en productivité, on sera toujours gagnant à redémarrer son Visual Studio 1 fois par jour plutôt que de ne pas utiliser Resharper.

  6. Simon Mourier mai 7th 2009 at 06:55 6

    Au delà de la consommation mémoire (j’ai 8G en 64bits), au final, l’éditeur de VS ralentissait de plus en plus, et ça c’est carrément intolérable. Il faudra que j’essaye la 4.5 un de ces jours :)

  7. Simon Mourier mai 20th 2009 at 10:26 7

    Bon, ben j’ai essayé la 4.5 est c’est exactement pareil. Mon VS 2008 prend normalement 300-400M (40 projets, 2000 .cs). Avec Resharper, il prend 700M au bout d’une heure, et VS se met à ralentir! bref, c’est inutilisable pour moi

  8. Julien mai 21st 2009 at 06:20 8

    Avec 8g de ram, une consommation de 700mo pour Visual ne devrait pas être un gros problème en soit. As-tu désactivé l’analyse de solution? sur ce type de solution cette feature n’est pas utilisable.

Trackback URI | Comments RSS

Leave a reply