SlideShare une entreprise Scribd logo
1  sur  30
AMBIENT INTELLIGENCE
#mstechdays techdays.microsoft.fr/tour
tech days•
2015tour
Améliorez la qualité de
votre code avec Roslyn !
Christophe HERAL
@ChrisHeral
cheral@neotech-solutions.fr
tech.days tour 2015#mstechdays
Consultant .NET et agiliste chez Neotech Solutions
Co-organisateur de l’Agile Tour Bordeaux
Co-organisateur d’Agile .NET Bordeaux
Et surtout :
Artisan logiciel
Améliorez la qualité de votre code avec Roslyn !
tech.days tour 2015#mstechdaysTitre session pied de page
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#mstechdaysAméliorez la qualité de votre code avec Roslyn !
tech.days tour 2015#mstechdaysAméliorez la qualité de votre code avec Roslyn !
Méthodes longues / Grosses classes
Longue liste de paramètres
Code dupliqué
Code mort
Nombres magiques
Utilisation de switch
GOTO / Codes de retour d’erreur
Noms de méthodes avec ET/OU
Commentaires
Navigation transitive
Généralité spéculative
Séparation verticale
Héritage parallèle
tech.days tour 2015#mstechdaysAméliorez la qualité de votre code avec Roslyn !
Pair programming
Revue de code Avec des outils
(ou non qualité…)
tech.days tour 2015#mstechdaysAméliorez la qualité de votre code avec Roslyn !
tech.days tour 2015#mstechdaysAméliorez la qualité de votre code avec Roslyn !
Analyse des binaires
Analyse du code source
tech.days tour 2015#mstechdaysAméliorez la qualité de votre code avec Roslyn !
Qui l’utilise ?
tech.days tour 2015#mstechdaysAmé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#mstechdaysAméliorez la qualité de votre code avec Roslyn !
Changement majeur
Un vaporware ?
tech.days tour 2015#mstechdaysAméliorez la qualité de votre code avec Roslyn !
• Symboles
• Vocabulaire
• Syntaxe
• Sémantique
tech.days tour 2015#mstechdaysAmé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#mstechdaysAméliorez la qualité de votre code avec Roslyn !
2 utilisations principales
• Génération de code
• Analyse de code
tech.days tour 2015#mstechdaysTitre session pied de page
tech.days tour 2015#mstechdaysAméliorez la qualité de votre code avec Roslyn !
Fonctionnalités de Visual Studio 2015
Compilateur « boîte blanche »
tech.days tour 2015#mstechdaysAméliorez la qualité de votre code avec Roslyn !
Accès à l’arbre syntaxique
Fidèle au code source
En liaison avec celui-ci
Accès depuis le menu
« Others Windows »
tech.days tour 2015#mstechdaysAméliorez la qualité de votre code avec Roslyn !
Faire un diagnostic Proposer un Code Fix
tech.days tour 2015#mstechdaysAméliorez la qualité de votre code avec Roslyn !
Choix du template « Diagnostic with Code Fix »
Distribution sous 2 formes
tech.days tour 2015#mstechdaysAméliorez la qualité de votre code avec Roslyn !
Implémentation d’une règle StyleCop
SA1028 - CodeMustNotContainTrailingWhitespace
Une 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 Fix
Suppression des
caractères d’espacement
superflus en fin de ligne.
tech.days tour 2015#mstechdaysAméliorez la qualité de votre code avec Roslyn !
Démo :
DiagnosticAnalyzer
SA1028
tech.days tour 2015#mstechdaysAméliorez la qualité de votre code avec Roslyn !
Démo :
CodeFixProvider
SA1028
tech.days tour 2015#mstechdaysAméliorez la qualité de votre code avec Roslyn !
Démo :
Utilisation de la règle
tech.days tour 2015#mstechdays
 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#mstechdaysAméliorez la qualité de votre code avec Roslyn !
@ChrisHeral
© 2015 Microsoft Corporation. All rights reserved.
#mstechdays techdays.microsoft.fr/tour
tech days•
2015tour
#ns_expert www.neotech-solutions.fr

Contenu connexe

Similaire à [Techdays Tour 2015] Améliorez la qualité de votre code avec Roslyn !

Similaire à [Techdays Tour 2015] Améliorez la qualité de votre code avec Roslyn ! (20)

LnL - Assurer la qualité de vos outils PowerShell
LnL - Assurer la qualité de vos outils PowerShellLnL - Assurer la qualité de vos outils PowerShell
LnL - Assurer la qualité de vos outils PowerShell
 
Gérer sa dette technique avec SonarQube
Gérer sa dette technique avec SonarQubeGérer sa dette technique avec SonarQube
Gérer sa dette technique avec SonarQube
 
Vivre dans une ère post OS et gérer l'hébergement des applications et la mobi...
Vivre dans une ère post OS et gérer l'hébergement des applications et la mobi...Vivre dans une ère post OS et gérer l'hébergement des applications et la mobi...
Vivre dans une ère post OS et gérer l'hébergement des applications et la mobi...
 
Aspectize
AspectizeAspectize
Aspectize
 
Capitaliser sur Office 365 et implémenter des applications métiers personnali...
Capitaliser sur Office 365 et implémenter des applications métiers personnali...Capitaliser sur Office 365 et implémenter des applications métiers personnali...
Capitaliser sur Office 365 et implémenter des applications métiers personnali...
 
Quand on change de code, on prévient !(1)
Quand on change de code, on prévient !(1)Quand on change de code, on prévient !(1)
Quand on change de code, on prévient !(1)
 
SPA avec SignalR et Angular Js
SPA avec SignalR et Angular JsSPA avec SignalR et Angular Js
SPA avec SignalR et Angular Js
 
Retour d’expérience sur ‘TFS Online’ (VSTS) dans une solution industrielle (c...
Retour d’expérience sur ‘TFS Online’ (VSTS) dans une solution industrielle (c...Retour d’expérience sur ‘TFS Online’ (VSTS) dans une solution industrielle (c...
Retour d’expérience sur ‘TFS Online’ (VSTS) dans une solution industrielle (c...
 
Microsoft Experieces 2016 - Retour d’expériences sur TFS Online
Microsoft Experieces 2016 - Retour d’expériences sur TFS OnlineMicrosoft Experieces 2016 - Retour d’expériences sur TFS Online
Microsoft Experieces 2016 - Retour d’expériences sur TFS Online
 
Adoption incrémentale des tests dans VS ALM
Adoption incrémentale des tests dans VS ALMAdoption incrémentale des tests dans VS ALM
Adoption incrémentale des tests dans VS ALM
 
Adoption incrémentale des tests dans VS ALM
Adoption incrémentale des tests dans VS ALMAdoption incrémentale des tests dans VS ALM
Adoption incrémentale des tests dans VS ALM
 
DevOps au coeur de la transformation digitale
DevOps au coeur de la transformation digitaleDevOps au coeur de la transformation digitale
DevOps au coeur de la transformation digitale
 
Windows Server vNext- administration et réseau
Windows Server vNext- administration et réseauWindows Server vNext- administration et réseau
Windows Server vNext- administration et réseau
 
Windows Server vNext - administration et réseau
Windows Server vNext - administration et réseauWindows Server vNext - administration et réseau
Windows Server vNext - administration et réseau
 
Pas d'agilité sans qualité
Pas d'agilité sans qualitéPas d'agilité sans qualité
Pas d'agilité sans qualité
 
Créer une UX pour tous les écrans avec Universal App
Créer une UX pour tous les écrans avec Universal AppCréer une UX pour tous les écrans avec Universal App
Créer une UX pour tous les écrans avec Universal App
 
Entity Framework 7 : nouvelle version majeure d’Entity Framework
Entity Framework 7 : nouvelle version majeure d’Entity FrameworkEntity Framework 7 : nouvelle version majeure d’Entity Framework
Entity Framework 7 : nouvelle version majeure d’Entity Framework
 
Javascript pour les développeurs C#
Javascript pour les développeurs C#Javascript pour les développeurs C#
Javascript pour les développeurs C#
 
Hands on Sonar
Hands on SonarHands on Sonar
Hands on Sonar
 
AddInn Tunisie - Nos offres de stage 2020
AddInn Tunisie - Nos offres de stage 2020AddInn Tunisie - Nos offres de stage 2020
AddInn Tunisie - Nos offres de stage 2020
 

Plus de Christophe HERAL

[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
Christophe HERAL
 

Plus de Christophe HERAL (6)

[Agile Tour Toulouse 2016] Développeur après 30 ans, n'as-tu donc aucune ambi...
[Agile Tour Toulouse 2016] Développeur après 30 ans, n'as-tu donc aucune ambi...[Agile Tour Toulouse 2016] Développeur après 30 ans, n'as-tu donc aucune ambi...
[Agile Tour Toulouse 2016] Développeur après 30 ans, n'as-tu donc aucune ambi...
 
L’art d’avoir tort
L’art d’avoir tortL’art d’avoir tort
L’art d’avoir tort
 
[Agile Tour Paris 2014] Comment rendre testable du code qui ne l'est pas ?
[Agile Tour Paris 2014] Comment rendre testable du code qui ne l'est pas ?[Agile Tour Paris 2014] Comment rendre testable du code qui ne l'est pas ?
[Agile Tour Paris 2014] Comment rendre testable du code qui ne l'est pas ?
 
Scrum Day 2013 - L'agilité selon Starcraft 2
Scrum Day 2013 - L'agilité selon Starcraft 2Scrum Day 2013 - L'agilité selon Starcraft 2
Scrum Day 2013 - L'agilité selon Starcraft 2
 
TFS 2012 : un pas vers l'agilité... en avant ou en arrière ?
TFS 2012 : un pas vers l'agilité... en avant ou en arrière ? TFS 2012 : un pas vers l'agilité... en avant ou en arrière ?
TFS 2012 : un pas vers l'agilité... en avant ou en arrière ?
 
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
 

[Techdays Tour 2015] Améliorez la qualité de votre code avec Roslyn !

Notes de l'éditeur

  1. La qualité n’est pas négociable pour une application professionnelle.
  2. Nécessité de métriques et d'indicateurs pour mesurer la qualité
  3. Pourquoi si peu de monde crée ses règles : règles existantes suffisantes, pas facile d’analyser le code (réflexion), DLL à installer sur chaque poste de dév.
  4. Pourquoi si peu de monde crée ses règles : règles existantes suffisantes, pas facile d’analyser le code (réflexion), DLL à installer sur chaque poste de dév.
  5. Considérer le code comme de la donnée
  6. Considérer le code comme de la donnée Méta = au delà
  7. Par opposition au compilateur Black Box
  8. Avec test
  9. Ecriture du test du Code Fix + le Code Fix
  10. Ecriture du test du Code Fix + le Code Fix
  11. ~3 min