NDepend 5 en action par son créateur
-
Upload
microsoft -
Category
Technology
-
view
374 -
download
1
description
Transcript of NDepend 5 en action par son créateur
Code/Developpement
NDepend 5 en action par son créateur
http://www.NDepend.com
Bruno BOUCARDLEAD ArchitectCellenza
Patrick SMACCHIALEAD Dev
CODER IMPACT
blogs.msdn.com/devpara/
Présentation de Cellenza
Cabinet de consei l IT exclusivement dédié aux technologies Microsoft et aux méthodes Agi les
Comment nous le faisons :• Format ion cont inue• Partage de
connaissance• Partenar iats
Notre passion, les technologies MSN o u s s o m m e s d e s ex p e r t s M i c ro s o f t , a g i l i s t e s p a r n a t u re , p a s s i o n n é s p a r n o t re m é t i e r. C o n s u l t a n t s , c o a c h s , f o rm a t e u r s e t / o u M V P , n o u s a v o n s à c œ u r d e p a r t a g e r a v e c l a c o m m u n a u t é u n s a v o i r t e c h n i q u e e t m é t h o d o l o g i q u e , m a i s a u s s i n o s v a l e u r s
150 billets
de blog
> 12j
formation
30 art.de
presse
7 MVP
7 MCT
Code/developpement#mstechdays
- NDepend Introduction
- Unit-Tests, Contrats, Couverture de Code
NDepend en deux axes
Code/developpement#mstechdays
NDEPEND INTRODUCTION
Code/developpement#mstechdays
• Outil pour développeurs .NET, créé en Avril 2004
• Il est devenu commercial en Février 2007• Plus de 4.000 clients dans le monde
– Microsoft, Nasa, Intel, Google, Sony, HSBC, Thalès, Société Générale, BBC, MacLaren…
• Outil spécialisé dans l’analyse statique de code .NET– Intégré à Visual Studio 2013, 2012, 2010 et 2008– Intégrable dans le Build Process pour généré des rapports (TFS,
TeamCity…)
• JArchitect pour Java, CppDepend pour C++
NDepend Introduction - Les Faits
Code/developpement#mstechdays
• Outil spécialisé dans la qualité et la
maintenance de code .NET
• Pourquoi nos clients utilisent NDepend: – Rendre le code plus maintenable– Œuvrer pour le moyen et le long terme– Reprendre en main une code base legacy– Rendre le métier du développeur plus agréable et
stimulant– Donner des métriques au management pour prévenir
les dérives
NDepend Introduction - Pourquoi s’en servir?
Code/developpement#mstechdays
• Règles et requête de code écris en C# LINQ
• Visualisation des dépendances, Graph et Matrice
• Métriques de code• Analyse de la Couverture de code• Tendances• Code Diff• Génération de rapports
NDepend Introduction - Les Fonctionnalités
démo
Code/developpement#mstechdays
NDEPEND INTRODUCTIONLES FONCTIONNALITÉS
Code/developpement#mstechdays
UNIT-TESTS, CONTRATS, COUVERTURE DE CODE
Code/developpement#mstechdays
• Les clés de la maintenance• De bonnes habitudes à prendre• Appliquées avec succès pour le dev de
NDepend• Un rapport cout/bénéfices très favorable• Il n’est jamais trop tard pour s’y mettre
Unit-Tests, Contrats, Couverture de Code
Code/developpement#mstechdays
• Pratique inventée par Bertrand Meyer, créateur du langage EIFFEL, dans les années 80s
• L’idée: Truffer le code de vérifications (les contrats) pour vérifier un maximum de conditions sur les états– Cette méthode retourne une référence qui n’est jamais nulle– Ce paramètre de type string, n’est jamais nulle, ni vide, et sa longueur
n’est jamais plus grande que 64– Ce champs de type int a une valeur constamment comprise entre 10 et
100
• Contrat violé = Bug! • Durant le développement, on a pas à tenir compte
du cas où un contrat est violé
Code Contrats - Introduction
Code/developpement#mstechdays
• Microsoft Code Contract– Adapté à la surface publique d’une API– Standardisée (documentation, outillage…)– Non-adapté à un usage intensif dans tous le code
(compilation lente)
• System.Diagnostics.Debug.Assert()– Adapté à un usage intensif dans tous le code – Marche seulement en mode DEBUG– Pas d’impact performance en production
Code Contrats - Choisir entre 2 APIs
Code/developpement#mstechdays
• Du point de vue pratique c’est la même chose!!• Dans les deux cas
– On veut que des assertions sur des états à l’exécution soient vérifiées
– Une assertion violée implique un problème à fixer– On doit impérativement être averti lorsqu’une assertion est violée
• Conséquences– Si un contrat est violé lors de l’exécution des tests, on doit être
averti– Des tests avec peu d’assertions peuvent vérifier efficacement des
grosses portions de codes contenant un grand nombre de contrat
Code Contrats vs Unit Tests
démo
Code/developpement#mstechdays
TESTS INTÉGRATIONS & CONTRATS
Code/developpement#mstechdays
• En 2014, plus que jamais la tendance est à l’outillage du développement logiciel pour s’affranchir de tout ce qui peut être automatisé
• NDepend est un des ces outils qui cible la qualité, la maintenance pour éviter l’érosion et la régression
• Nous utilisons avec succès dans nos dev les différentes fonctionnalités de NDepend mais aussi les contrats et la mesure de la couverture de code par les test
• Changez vos habitudes !
Conclusion
Code/developpement#mstechdays
http://en.wikipedia.org/wiki/NDepend
http://visualstudiogallery.msdn.microsoft.com/EF4E8DB0-2079-4819-BA1C-51E5EB53E8C7
http://www.hanselman.com/blog/content/binary/NDepend%20metrics%20placemats%201.1.pdf
http://realfiction.net/files/NDependMetricsCheatSheet.pdf
http://codebetter.com/patricksmacchia/
Liens
Code/developpement#mstechdays
Depuis votre smartphone sur :http://notes.mstechdays.fr
De nombreux lots à gagner toute les heures !!!Claviers, souris et jeux Microsoft…
Merci de nous aider à améliorer les Techdays !
Donnez votre avis !
Présentation de Cellenza
Vous pouvez vous inscr i re à notre jeu concours sur notre stand ou en l igne :
http: / / jeu-concours.ce l lenza.com
Venez nous retrouver sur notre Stand #15
Merci !
© 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Digital is business