[techdays tour 2015] améliorez la qualité de votre code avec roslyn !
TRANSCRIPT
AMBIENT INTELLIGENCE
#mstechdays techdays.microsoft.fr/tour
techdays•
2015tour
Améliorez la qualité de votre code avec Roslyn !Christophe HERAL@[email protected]
tech.days tour 2015#mstechdays
Qui suis-je ?
Consultant .NET et agiliste chez Neotech SolutionsCo-organisateur de l’Agile Tour BordeauxCo-organisateur d’Agile .NET Bordeaux
Et surtout :
Artisan logicielAméliorez la qualité de votre code avec Roslyn !
Titre session pied de page tech.days tour 2015#mstechdays
tech.days tour 2015#mstechdays
« La qualité d’aujourd’hui est la productivité de demain. »
Adage qui se transmet d’Extreme Programmer à Extreme Programmer
Améliorez la qualité de votre code avec Roslyn !
Clean Code
tech.days tour 2015#mstechdays
Quand on trouve du code non professionnel…
Améliorez la qualité de votre code avec Roslyn !
tech.days tour 2015#mstechdays
Code Smells
Améliorez la qualité de votre code avec Roslyn !
Méthodes longues / Grosses classesLongue liste de paramètresCode dupliquéCode mortNombres magiquesUtilisation de switchGOTO / Codes de retour d’erreurNoms de méthodes avec ET/OUCommentairesNavigation transitiveGénéralité spéculativeSéparation verticaleHéritage parallèle
tech.days tour 2015#mstechdays
Comment mesurer cette qualité ?
Améliorez la qualité de votre code avec Roslyn !
Pair programming Revue de code Avec des
outils
(ou non qualité…)
tech.days tour 2015#mstechdays
Sous forme de tableau de bord
Améliorez la qualité de votre code avec Roslyn !
tech.days tour 2015#mstechdays
Analyse statique de code
Améliorez la qualité de votre code avec Roslyn !
Analyse des binaires
Analyse du code source
tech.days tour 2015#mstechdays
Popularité de l’analyse statique
Améliorez la qualité de votre code avec Roslyn !
Qui l’utilise ?
tech.days tour 2015#mstechdays
Popularité de l’analyse statique
Améliorez la qualité de votre code avec Roslyn !
Qui crée ses propres règles ?
tech.days tour 2015#mstechdaysAméliorez la qualité de votre code avec Roslyn !
tech.days tour 2015#mstechdays
« .NET Compiler Platform » alias Roslyn
Améliorez la qualité de votre code avec Roslyn !
Changement majeurRéécriture complète du compilateur
Un vaporware ?
Rosly
nC
om
pilate
ur
C#
tech.days tour 2015#mstechdays
Eléments d’un langage de programmation
Améliorez la qualité de votre code avec Roslyn !
• Symboles« Mots clés » (type, méthode, propriété, champ, …)
• VocabulaireInstructions construites à partir de symboles
• SyntaxeRespect de la grammaire (= forme)
• SémantiqueSens des instructions (= fond)
tech.days tour 2015#mstechdays
La méta-programmation
Améliorez la qualité de votre code avec Roslyn !
« Ecriture de programmes qui manipulent des données
décrivant elles-mêmes des programmes. »
Définition de Wikipedia.fr
tech.days tour 2015#mstechdays
La méta-programmation
Améliorez la qualité de votre code avec Roslyn !
2 utilisations principales
• Génération de code
• Analyse de codeAccès à l'arbre syntaxique du code via une APIReconnaissance de motifs dans le code
Titre session pied de page tech.days tour 2015#mstechdays
tech.days tour 2015#mstechdays
Les fonctionnalités de Roslyn
Améliorez la qualité de votre code avec Roslyn !
Fonctionnalités de Visual Studio 2015IntellisenseRefactorisationDebugCode Lens
Compilateur « boîte blanche »Accès aux infos du compilateur Développer ses propres règles de qualité de code
tech.days tour 2015#mstechdays
API de Roslyn
Améliorez la qualité de votre code avec Roslyn !
Accès à l’arbre syntaxiqueEn lecture pour effectuer l’analyseEn modification pour effectuer des refactorings
Fidèle au code source
En liaison avec celui-ci
Accès depuis le menu « Others Windows »
tech.days tour 2015#mstechdays
Créer un diagnostic / code fix
Améliorez la qualité de votre code avec Roslyn !
Faire un diagnostic Proposer un Code Fix
tech.days tour 2015#mstechdays
Enrichir simplement son IDE
Améliorez la qualité de votre code avec Roslyn !
Choix du template « Diagnostic with Code Fix »
Distribution sous 2 formesPackage NuGetExtension Visual Studio
tech.days tour 2015#mstechdays
Exemple
Améliorez la qualité de votre code avec Roslyn !
Implémentation d’une règle StyleCopSA1028 - CodeMustNotContainTrailingWhitespaceUne ligne de code ne doit pas terminer par un espace ou une tabulation.
Cas de tests :- Code vide- Espace après un appel de méthode- Espace après une déclaration de variable- Espace après un commentaire mono-ligne- …
Code FixSuppression des
caractères d’espacement
superflus en fin de ligne.
tech.days tour 2015#mstechdays
Utiliser Roslyn pour analyser le code
Améliorez la qualité de votre code avec Roslyn !
Démo : DiagnosticAnalyzer
SA1028
tech.days tour 2015#mstechdays
Utiliser Roslyn pour fixer le code
Améliorez la qualité de votre code avec Roslyn !
Démo : CodeFixProvider
SA1028
tech.days tour 2015#mstechdays
Utilisation de la règle dans un projet
Améliorez la qualité de votre code avec Roslyn !
Démo : Utilisation de la
règle
tech.days tour 2015#mstechdays
Ressources
Github officiel : https://github.com/dotnet/roslyn
.NET Analyzers : https://github.com/DotNetAnalyzers
Roslyn Tester : https://www.nuget.org/packages/RoslynTester
Blogs : https
://ovaismehboob.wordpress.com/2014/09/29/writing-diagnostic-with-code-fix-using-roslyn-net-compiler-platform/
http://blog.thomaslebrun.net/2014/11/roslyn-implement-the-use-var-feature-using-a-visual-studios-extension
http://www.informit.com/articles/article.aspx?p=2301258&seqNum=2
Améliorez la qualité de votre code avec Roslyn !
tech.days tour 2015#mstechdays
Merci !
Améliorez la qualité de votre code avec Roslyn !
@ChrisHeral
© 2015 Microsoft Corporation. All rights reserved.
#mstechdays techdays.microsoft.fr/tour
techdays•
2015tour
#ns_expert www.neotech-solutions.fr