20

NDepend 5 en action par son créateur

Embed Size (px)

DESCRIPTION

NDepend est un outil populaire d'analyse de code .NET complètement intégré dans VisualStudio. Dans cette session le créateur de NDepend Patrick Smacchia et l'architecte logiciel Bruno Boucard, nous expliqueront sur plusieurs exemples concrets, que peut apporter NDepend à une équipe de développeurs en terme d'agilité, de maintenance et de qualité. Notamment, Patrick montrera comment NDepend est utilisé sur lui-même quotidiennement. Cette session sera l'occasion de mettre en pratique des principes de développements essentiels, efficaces et trop souvent ignorés. Ces principes incluent la programmation par contrat, la couverture de code par les tests-unitaires, les métriques de code et la structuration d'une application par composants. Speakers : Patrick Smacchia (NDepend), Bruno Boucard (Cellenza)

Citation preview

Page 1: NDepend 5 en action par son créateur
Page 2: 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/

Page 3: NDepend 5 en action par son créateur

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

Page 4: NDepend 5 en action par son créateur

Code/developpement#mstechdays

- NDepend Introduction

- Unit-Tests, Contrats, Couverture de Code

NDepend en deux axes

Page 5: NDepend 5 en action par son créateur

Code/developpement#mstechdays

NDEPEND INTRODUCTION

Page 6: NDepend 5 en action par son créateur

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

Page 7: NDepend 5 en action par son créateur

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?

Page 8: NDepend 5 en action par son créateur

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

Page 9: NDepend 5 en action par son créateur

démo

Code/developpement#mstechdays

NDEPEND INTRODUCTIONLES FONCTIONNALITÉS

Page 10: NDepend 5 en action par son créateur

Code/developpement#mstechdays

UNIT-TESTS, CONTRATS, COUVERTURE DE CODE

Page 11: NDepend 5 en action par son créateur

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

Page 12: NDepend 5 en action par son créateur

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

Page 13: NDepend 5 en action par son créateur

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

Page 14: NDepend 5 en action par son créateur

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

Page 15: NDepend 5 en action par son créateur

démo

Code/developpement#mstechdays

TESTS INTÉGRATIONS & CONTRATS

Page 16: NDepend 5 en action par son créateur

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

Page 18: NDepend 5 en action par son créateur

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 !

Page 19: NDepend 5 en action par son créateur

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 !

Page 20: NDepend 5 en action par son créateur

© 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