NDepend 5 en action par son créateur

Preview:

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

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

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