[techdays tour 2015] améliorez la qualité de votre code avec roslyn !
TRANSCRIPT
![Page 1: [Techdays Tour 2015] Améliorez la qualité de votre code avec Roslyn !](https://reader035.vdocuments.pub/reader035/viewer/2022062304/55d2b7bcbb61eb65738b4579/html5/thumbnails/1.jpg)
AMBIENT INTELLIGENCE
#mstechdays techdays.microsoft.fr/tour
techdays•
2015tour
![Page 2: [Techdays Tour 2015] Améliorez la qualité de votre code avec Roslyn !](https://reader035.vdocuments.pub/reader035/viewer/2022062304/55d2b7bcbb61eb65738b4579/html5/thumbnails/2.jpg)
Améliorez la qualité de votre code avec Roslyn !Christophe HERAL@[email protected]
![Page 3: [Techdays Tour 2015] Améliorez la qualité de votre code avec Roslyn !](https://reader035.vdocuments.pub/reader035/viewer/2022062304/55d2b7bcbb61eb65738b4579/html5/thumbnails/3.jpg)
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 !
![Page 4: [Techdays Tour 2015] Améliorez la qualité de votre code avec Roslyn !](https://reader035.vdocuments.pub/reader035/viewer/2022062304/55d2b7bcbb61eb65738b4579/html5/thumbnails/4.jpg)
Titre session pied de page tech.days tour 2015#mstechdays
![Page 5: [Techdays Tour 2015] Améliorez la qualité de votre code avec Roslyn !](https://reader035.vdocuments.pub/reader035/viewer/2022062304/55d2b7bcbb61eb65738b4579/html5/thumbnails/5.jpg)
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 !
![Page 6: [Techdays Tour 2015] Améliorez la qualité de votre code avec Roslyn !](https://reader035.vdocuments.pub/reader035/viewer/2022062304/55d2b7bcbb61eb65738b4579/html5/thumbnails/6.jpg)
Clean Code
![Page 7: [Techdays Tour 2015] Améliorez la qualité de votre code avec Roslyn !](https://reader035.vdocuments.pub/reader035/viewer/2022062304/55d2b7bcbb61eb65738b4579/html5/thumbnails/7.jpg)
tech.days tour 2015#mstechdays
Quand on trouve du code non professionnel…
Améliorez la qualité de votre code avec Roslyn !
![Page 8: [Techdays Tour 2015] Améliorez la qualité de votre code avec Roslyn !](https://reader035.vdocuments.pub/reader035/viewer/2022062304/55d2b7bcbb61eb65738b4579/html5/thumbnails/8.jpg)
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
![Page 9: [Techdays Tour 2015] Améliorez la qualité de votre code avec Roslyn !](https://reader035.vdocuments.pub/reader035/viewer/2022062304/55d2b7bcbb61eb65738b4579/html5/thumbnails/9.jpg)
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é…)
![Page 10: [Techdays Tour 2015] Améliorez la qualité de votre code avec Roslyn !](https://reader035.vdocuments.pub/reader035/viewer/2022062304/55d2b7bcbb61eb65738b4579/html5/thumbnails/10.jpg)
tech.days tour 2015#mstechdays
Sous forme de tableau de bord
Améliorez la qualité de votre code avec Roslyn !
![Page 11: [Techdays Tour 2015] Améliorez la qualité de votre code avec Roslyn !](https://reader035.vdocuments.pub/reader035/viewer/2022062304/55d2b7bcbb61eb65738b4579/html5/thumbnails/11.jpg)
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
![Page 12: [Techdays Tour 2015] Améliorez la qualité de votre code avec Roslyn !](https://reader035.vdocuments.pub/reader035/viewer/2022062304/55d2b7bcbb61eb65738b4579/html5/thumbnails/12.jpg)
tech.days tour 2015#mstechdays
Popularité de l’analyse statique
Améliorez la qualité de votre code avec Roslyn !
Qui l’utilise ?
![Page 13: [Techdays Tour 2015] Améliorez la qualité de votre code avec Roslyn !](https://reader035.vdocuments.pub/reader035/viewer/2022062304/55d2b7bcbb61eb65738b4579/html5/thumbnails/13.jpg)
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 ?
![Page 14: [Techdays Tour 2015] Améliorez la qualité de votre code avec Roslyn !](https://reader035.vdocuments.pub/reader035/viewer/2022062304/55d2b7bcbb61eb65738b4579/html5/thumbnails/14.jpg)
tech.days tour 2015#mstechdaysAméliorez la qualité de votre code avec Roslyn !
![Page 15: [Techdays Tour 2015] Améliorez la qualité de votre code avec Roslyn !](https://reader035.vdocuments.pub/reader035/viewer/2022062304/55d2b7bcbb61eb65738b4579/html5/thumbnails/15.jpg)
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#
![Page 16: [Techdays Tour 2015] Améliorez la qualité de votre code avec Roslyn !](https://reader035.vdocuments.pub/reader035/viewer/2022062304/55d2b7bcbb61eb65738b4579/html5/thumbnails/16.jpg)
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)
![Page 17: [Techdays Tour 2015] Améliorez la qualité de votre code avec Roslyn !](https://reader035.vdocuments.pub/reader035/viewer/2022062304/55d2b7bcbb61eb65738b4579/html5/thumbnails/17.jpg)
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
![Page 18: [Techdays Tour 2015] Améliorez la qualité de votre code avec Roslyn !](https://reader035.vdocuments.pub/reader035/viewer/2022062304/55d2b7bcbb61eb65738b4579/html5/thumbnails/18.jpg)
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
![Page 19: [Techdays Tour 2015] Améliorez la qualité de votre code avec Roslyn !](https://reader035.vdocuments.pub/reader035/viewer/2022062304/55d2b7bcbb61eb65738b4579/html5/thumbnails/19.jpg)
Titre session pied de page tech.days tour 2015#mstechdays
![Page 20: [Techdays Tour 2015] Améliorez la qualité de votre code avec Roslyn !](https://reader035.vdocuments.pub/reader035/viewer/2022062304/55d2b7bcbb61eb65738b4579/html5/thumbnails/20.jpg)
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
![Page 21: [Techdays Tour 2015] Améliorez la qualité de votre code avec Roslyn !](https://reader035.vdocuments.pub/reader035/viewer/2022062304/55d2b7bcbb61eb65738b4579/html5/thumbnails/21.jpg)
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 »
![Page 22: [Techdays Tour 2015] Améliorez la qualité de votre code avec Roslyn !](https://reader035.vdocuments.pub/reader035/viewer/2022062304/55d2b7bcbb61eb65738b4579/html5/thumbnails/22.jpg)
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
![Page 23: [Techdays Tour 2015] Améliorez la qualité de votre code avec Roslyn !](https://reader035.vdocuments.pub/reader035/viewer/2022062304/55d2b7bcbb61eb65738b4579/html5/thumbnails/23.jpg)
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
![Page 24: [Techdays Tour 2015] Améliorez la qualité de votre code avec Roslyn !](https://reader035.vdocuments.pub/reader035/viewer/2022062304/55d2b7bcbb61eb65738b4579/html5/thumbnails/24.jpg)
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.
![Page 25: [Techdays Tour 2015] Améliorez la qualité de votre code avec Roslyn !](https://reader035.vdocuments.pub/reader035/viewer/2022062304/55d2b7bcbb61eb65738b4579/html5/thumbnails/25.jpg)
tech.days tour 2015#mstechdays
Utiliser Roslyn pour analyser le code
Améliorez la qualité de votre code avec Roslyn !
Démo : DiagnosticAnalyzer
SA1028
![Page 26: [Techdays Tour 2015] Améliorez la qualité de votre code avec Roslyn !](https://reader035.vdocuments.pub/reader035/viewer/2022062304/55d2b7bcbb61eb65738b4579/html5/thumbnails/26.jpg)
tech.days tour 2015#mstechdays
Utiliser Roslyn pour fixer le code
Améliorez la qualité de votre code avec Roslyn !
Démo : CodeFixProvider
SA1028
![Page 27: [Techdays Tour 2015] Améliorez la qualité de votre code avec Roslyn !](https://reader035.vdocuments.pub/reader035/viewer/2022062304/55d2b7bcbb61eb65738b4579/html5/thumbnails/27.jpg)
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
![Page 28: [Techdays Tour 2015] Améliorez la qualité de votre code avec Roslyn !](https://reader035.vdocuments.pub/reader035/viewer/2022062304/55d2b7bcbb61eb65738b4579/html5/thumbnails/28.jpg)
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 !
![Page 29: [Techdays Tour 2015] Améliorez la qualité de votre code avec Roslyn !](https://reader035.vdocuments.pub/reader035/viewer/2022062304/55d2b7bcbb61eb65738b4579/html5/thumbnails/29.jpg)
tech.days tour 2015#mstechdays
Merci !
Améliorez la qualité de votre code avec Roslyn !
@ChrisHeral
![Page 30: [Techdays Tour 2015] Améliorez la qualité de votre code avec Roslyn !](https://reader035.vdocuments.pub/reader035/viewer/2022062304/55d2b7bcbb61eb65738b4579/html5/thumbnails/30.jpg)
© 2015 Microsoft Corporation. All rights reserved.
#mstechdays techdays.microsoft.fr/tour
techdays•
2015tour
#ns_expert www.neotech-solutions.fr