SlideShare une entreprise Scribd logo
NDepend 5 en action
par son créateur
Bruno BOUCARD
LEAD Architect
Cellenza
blogs.msdn.com/devpara/

Code/Developpement

Patrick SMACCHIA
LEAD Dev
CODER IMPACT
http://www.NDepend.com
Présentation de Cellenza

Cabinet de conseil IT exclusivement dédié
aux technologies Microsoft et aux méthodes
Agiles
Notre passion, les technologies MS
Nous sommes des experts Microsoft, agilistes
par
nature,
passionnés
par
notre
métier.
Consultants, coachs, formateurs et/ou MVP,
nous avons à cœur de partager avec la
communauté
un
savoir
technique
et
méthodologique, mais aussi nos valeurs

150

billets
de
blog

Comment nous le
faisons :
•
•
•

Formation continue
Partage de connaissance
Partenariats

> 12j

formati
on

7 MVP
7 MCT

30

art.

de
presse
NDepend en deux axes
- NDepend Introduction
- Unit-Tests, Contrats, Couverture de
Code

#mstechdays

Code/developpement
NDEPEND INTRODUCTION

#mstechdays

Code/developpement
NDepend Introduction - Les Faits
• 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++
#mstechdays

Code/developpement
NDepend Introduction - Pourquoi s’en
servir?

• Outil spécialisé dans la qualité et la maintenance
de code .NET
• Pourquoi nos clients utilisent NDepend:
–
–
–
–
–
#mstechdays

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
Code/developpement
NDepend Introduction - Les
Fonctionnalités

• 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
#mstechdays

Code/developpement
NDEPEND INTRODUCTION
LES FONCTIONNALITÉS

#mstechdays

Code/developpement
UNIT-TESTS, CONTRATS,
COUVERTURE DE CODE

#mstechdays

Code/developpement
Unit-Tests, Contrats, Couverture de Code
•
•
•
•
•

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

#mstechdays

Code/developpement
Code Contrats - Introduction
• 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é
#mstechdays

Code/developpement
Code Contrats - Choisir entre 2 APIs
• 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

#mstechdays

Code/developpement
Code Contrats vs Unit Tests
• 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

#mstechdays

Code/developpement
TESTS INTÉGRATIONS &
CONTRATS

#mstechdays

Code/developpement
Conclusion
• 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 !
#mstechdays

Code/developpement
Liens
http://en.wikipedia.org/wiki/NDepend
http://visualstudiogallery.msdn.microsoft.com/EF4E8DB0-20794819-BA1C-51E5EB53E8C7
http://www.hanselman.com/blog/content/binary/NDepend%20metr
ics%20placemats%201.1.pdf
http://realfiction.net/files/NDependMetricsCheatSheet.pdf

http://codebetter.com/patricksmacchia/
#mstechdays

Code/developpement
Donnez votre avis !
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 !

#mstechdays

Code/developpement
Présentation de Cellenza

Ve n e z n o u s r e t r o u ve r s u r n o t r e St a n d # 1 5

Vous pouvez vous inscrire à
notre jeu concours sur notre
stand ou en ligne :
http://jeuconcours.cellenza.com

Merci !
Digital is
business

Contenu connexe

Tendances

Présentation de Logikart
Présentation de LogikartPrésentation de Logikart
Présentation de Logikart
Benjamin Mathieu
 
Extension de votre de votre infrastructure vers Microsoft Azure avec ExpressR...
Extension de votre de votre infrastructure vers Microsoft Azure avec ExpressR...Extension de votre de votre infrastructure vers Microsoft Azure avec ExpressR...
Extension de votre de votre infrastructure vers Microsoft Azure avec ExpressR...
Microsoft Décideurs IT
 
System Center Operations Manager et la supervision des applications (.Net et ...
System Center Operations Manager et la supervision des applications (.Net et ...System Center Operations Manager et la supervision des applications (.Net et ...
System Center Operations Manager et la supervision des applications (.Net et ...
Microsoft Technet France
 
Power BI : 1 an après
Power BI : 1 an aprèsPower BI : 1 an après
Power BI : 1 an après
Microsoft Décideurs IT
 
Power Query Demos Extravaganza
Power Query Demos Extravaganza Power Query Demos Extravaganza
Power Query Demos Extravaganza
Microsoft Technet France
 
Développer une Single Page Application HTML 5 pour tous les devices
Développer une Single Page Application HTML 5 pour tous les devices Développer une Single Page Application HTML 5 pour tous les devices
Développer une Single Page Application HTML 5 pour tous les devices
Microsoft
 

Tendances (6)

Présentation de Logikart
Présentation de LogikartPrésentation de Logikart
Présentation de Logikart
 
Extension de votre de votre infrastructure vers Microsoft Azure avec ExpressR...
Extension de votre de votre infrastructure vers Microsoft Azure avec ExpressR...Extension de votre de votre infrastructure vers Microsoft Azure avec ExpressR...
Extension de votre de votre infrastructure vers Microsoft Azure avec ExpressR...
 
System Center Operations Manager et la supervision des applications (.Net et ...
System Center Operations Manager et la supervision des applications (.Net et ...System Center Operations Manager et la supervision des applications (.Net et ...
System Center Operations Manager et la supervision des applications (.Net et ...
 
Power BI : 1 an après
Power BI : 1 an aprèsPower BI : 1 an après
Power BI : 1 an après
 
Power Query Demos Extravaganza
Power Query Demos Extravaganza Power Query Demos Extravaganza
Power Query Demos Extravaganza
 
Développer une Single Page Application HTML 5 pour tous les devices
Développer une Single Page Application HTML 5 pour tous les devices Développer une Single Page Application HTML 5 pour tous les devices
Développer une Single Page Application HTML 5 pour tous les devices
 

En vedette

NDepend
NDependNDepend
Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.
Microsoft
 
La Blockchain pas à PaaS
La Blockchain pas à PaaSLa Blockchain pas à PaaS
La Blockchain pas à PaaS
Microsoft
 
Tester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileTester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobile
Microsoft
 
Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo
Microsoft
 
Créer un bot de A à Z
Créer un bot de A à ZCréer un bot de A à Z
Créer un bot de A à Z
Microsoft
 
Uwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuUwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieu
Microsoft
 
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Microsoft
 
Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?
Microsoft
 

En vedette (9)

NDepend
NDependNDepend
NDepend
 
Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.
 
La Blockchain pas à PaaS
La Blockchain pas à PaaSLa Blockchain pas à PaaS
La Blockchain pas à PaaS
 
Tester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileTester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobile
 
Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo
 
Créer un bot de A à Z
Créer un bot de A à ZCréer un bot de A à Z
Créer un bot de A à Z
 
Uwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuUwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieu
 
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
 
Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?
 

Similaire à NDepend 5 en action par son créateur

Vincent Biret Societic devops Sherbrooke
Vincent Biret Societic devops SherbrookeVincent Biret Societic devops Sherbrooke
Vincent Biret Societic devops Sherbrooke
Vincent Biret
 
Webinar - Mieux s'entendre entre Dev / PO / Testeur avec TDD et BDD
Webinar - Mieux s'entendre entre Dev / PO / Testeur avec TDD et BDDWebinar - Mieux s'entendre entre Dev / PO / Testeur avec TDD et BDD
Webinar - Mieux s'entendre entre Dev / PO / Testeur avec TDD et BDD
DC CONSULTANTS
 
Introduction à DevOps
Introduction à DevOpsIntroduction à DevOps
Introduction à DevOps
Microsoft
 
Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...
Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...
Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...
DC CONSULTANTS
 
Vers des applications modernes : retour d'expérience
Vers des applications modernes : retour d'expérienceVers des applications modernes : retour d'expérience
Vers des applications modernes : retour d'expérience
Microsoft
 
Appel candidature ingenieur_ed
Appel candidature ingenieur_edAppel candidature ingenieur_ed
Appel candidature ingenieur_ed
etisa1984
 
Meetup #1 low-code, Pourquoi ? Pour qui ? Comment ? Rencontrons-nous !
Meetup #1 low-code, Pourquoi ? Pour qui ? Comment ? Rencontrons-nous !Meetup #1 low-code, Pourquoi ? Pour qui ? Comment ? Rencontrons-nous !
Meetup #1 low-code, Pourquoi ? Pour qui ? Comment ? Rencontrons-nous !
Simplicité Software
 
La gestion des actifs logiciels : enjeux et opportunités
La gestion des actifs logiciels : enjeux et opportunitésLa gestion des actifs logiciels : enjeux et opportunités
La gestion des actifs logiciels : enjeux et opportunités
Microsoft Ideas
 
Presentation e tech v2.3 dahlia
Presentation e tech v2.3  dahliaPresentation e tech v2.3  dahlia
Presentation e tech v2.3 dahlia
Dahlia RAZAFY
 
No code low code
No code low codeNo code low code
No code low code
Hugo Budillon Rabatel
 
Fichier, Nouveau projet… Et après ?
Fichier, Nouveau projet… Et après ?Fichier, Nouveau projet… Et après ?
Fichier, Nouveau projet… Et après ?
Microsoft
 
M2i Webinar - Métiers de l'IT décryptés. Reconversion, opportunités et recrut...
M2i Webinar - Métiers de l'IT décryptés. Reconversion, opportunités et recrut...M2i Webinar - Métiers de l'IT décryptés. Reconversion, opportunités et recrut...
M2i Webinar - Métiers de l'IT décryptés. Reconversion, opportunités et recrut...
M2i Formation
 
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
Samuel Metias
 
Happy dev ... & ops
Happy dev ... & opsHappy dev ... & ops
Happy dev ... & ops
Quentin Adam
 
Zend : Haute disponibilité et scalabilité pour les sites e-commerce en Magento.
Zend : Haute disponibilité et scalabilité pour les sites e-commerce en Magento.Zend : Haute disponibilité et scalabilité pour les sites e-commerce en Magento.
Zend : Haute disponibilité et scalabilité pour les sites e-commerce en Magento.Swissgento eCom Genève
 
qualimétrie logiciel - Entreprise Software Analytic - nov 2015
qualimétrie logiciel -  Entreprise Software Analytic - nov 2015qualimétrie logiciel -  Entreprise Software Analytic - nov 2015
qualimétrie logiciel - Entreprise Software Analytic - nov 2015
Julien Vq
 
La Meta-programmation
La Meta-programmation La Meta-programmation
La Meta-programmation
Microsoft
 
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualifeSoirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
TelecomValley
 
Presentation timsoft YourCegid Manufacturing SEP2016
Presentation timsoft YourCegid Manufacturing SEP2016Presentation timsoft YourCegid Manufacturing SEP2016
Presentation timsoft YourCegid Manufacturing SEP2016
Wassim Besbes
 
Human Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDDHuman Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDD
Xavier NOPRE
 

Similaire à NDepend 5 en action par son créateur (20)

Vincent Biret Societic devops Sherbrooke
Vincent Biret Societic devops SherbrookeVincent Biret Societic devops Sherbrooke
Vincent Biret Societic devops Sherbrooke
 
Webinar - Mieux s'entendre entre Dev / PO / Testeur avec TDD et BDD
Webinar - Mieux s'entendre entre Dev / PO / Testeur avec TDD et BDDWebinar - Mieux s'entendre entre Dev / PO / Testeur avec TDD et BDD
Webinar - Mieux s'entendre entre Dev / PO / Testeur avec TDD et BDD
 
Introduction à DevOps
Introduction à DevOpsIntroduction à DevOps
Introduction à DevOps
 
Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...
Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...
Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...
 
Vers des applications modernes : retour d'expérience
Vers des applications modernes : retour d'expérienceVers des applications modernes : retour d'expérience
Vers des applications modernes : retour d'expérience
 
Appel candidature ingenieur_ed
Appel candidature ingenieur_edAppel candidature ingenieur_ed
Appel candidature ingenieur_ed
 
Meetup #1 low-code, Pourquoi ? Pour qui ? Comment ? Rencontrons-nous !
Meetup #1 low-code, Pourquoi ? Pour qui ? Comment ? Rencontrons-nous !Meetup #1 low-code, Pourquoi ? Pour qui ? Comment ? Rencontrons-nous !
Meetup #1 low-code, Pourquoi ? Pour qui ? Comment ? Rencontrons-nous !
 
La gestion des actifs logiciels : enjeux et opportunités
La gestion des actifs logiciels : enjeux et opportunitésLa gestion des actifs logiciels : enjeux et opportunités
La gestion des actifs logiciels : enjeux et opportunités
 
Presentation e tech v2.3 dahlia
Presentation e tech v2.3  dahliaPresentation e tech v2.3  dahlia
Presentation e tech v2.3 dahlia
 
No code low code
No code low codeNo code low code
No code low code
 
Fichier, Nouveau projet… Et après ?
Fichier, Nouveau projet… Et après ?Fichier, Nouveau projet… Et après ?
Fichier, Nouveau projet… Et après ?
 
M2i Webinar - Métiers de l'IT décryptés. Reconversion, opportunités et recrut...
M2i Webinar - Métiers de l'IT décryptés. Reconversion, opportunités et recrut...M2i Webinar - Métiers de l'IT décryptés. Reconversion, opportunités et recrut...
M2i Webinar - Métiers de l'IT décryptés. Reconversion, opportunités et recrut...
 
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
 
Happy dev ... & ops
Happy dev ... & opsHappy dev ... & ops
Happy dev ... & ops
 
Zend : Haute disponibilité et scalabilité pour les sites e-commerce en Magento.
Zend : Haute disponibilité et scalabilité pour les sites e-commerce en Magento.Zend : Haute disponibilité et scalabilité pour les sites e-commerce en Magento.
Zend : Haute disponibilité et scalabilité pour les sites e-commerce en Magento.
 
qualimétrie logiciel - Entreprise Software Analytic - nov 2015
qualimétrie logiciel -  Entreprise Software Analytic - nov 2015qualimétrie logiciel -  Entreprise Software Analytic - nov 2015
qualimétrie logiciel - Entreprise Software Analytic - nov 2015
 
La Meta-programmation
La Meta-programmation La Meta-programmation
La Meta-programmation
 
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualifeSoirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
 
Presentation timsoft YourCegid Manufacturing SEP2016
Presentation timsoft YourCegid Manufacturing SEP2016Presentation timsoft YourCegid Manufacturing SEP2016
Presentation timsoft YourCegid Manufacturing SEP2016
 
Human Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDDHuman Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDD
 

Plus de Microsoft

Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016
Microsoft
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Microsoft
 
Administration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsAdministration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs Analytics
Microsoft
 
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Microsoft
 
Plan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryPlan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site Recovery
Microsoft
 
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Microsoft
 
Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.
Microsoft
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Microsoft
 
Introduction à ASP.NET Core
Introduction à ASP.NET CoreIntroduction à ASP.NET Core
Introduction à ASP.NET Core
Microsoft
 
Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?
Microsoft
 
Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...
Microsoft
 
Azure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursAzure Service Fabric pour les développeurs
Azure Service Fabric pour les développeurs
Microsoft
 
Les nouveautés de C# 7
Les nouveautés de C# 7Les nouveautés de C# 7
Les nouveautés de C# 7
Microsoft
 
La 3D sur le web avec Babylon.js pas à pas
La 3D sur le web avec Babylon.js pas à pasLa 3D sur le web avec Babylon.js pas à pas
La 3D sur le web avec Babylon.js pas à pas
Microsoft
 
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Microsoft
 
Le développement web : tour d'horizon
Le développement web : tour d'horizonLe développement web : tour d'horizon
Le développement web : tour d'horizon
Microsoft
 
Introduction à Bash dans Windows 10
Introduction à Bash dans Windows 10Introduction à Bash dans Windows 10
Introduction à Bash dans Windows 10
Microsoft
 
Introduction à Bash dans Windows 10
Introduction à Bash dans Windows 10Introduction à Bash dans Windows 10
Introduction à Bash dans Windows 10
Microsoft
 
Use In IoT : l’objet connecté de la board au dashboard
Use In IoT : l’objet connecté de la board au dashboardUse In IoT : l’objet connecté de la board au dashboard
Use In IoT : l’objet connecté de la board au dashboard
Microsoft
 
Développez vos jeux multiplateformes grâce à Unity3D avec Visual Studio en C#
Développez vos jeux multiplateformes grâce à Unity3D avec Visual Studio en C#Développez vos jeux multiplateformes grâce à Unity3D avec Visual Studio en C#
Développez vos jeux multiplateformes grâce à Unity3D avec Visual Studio en C#
Microsoft
 

Plus de Microsoft (20)

Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
 
Administration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsAdministration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs Analytics
 
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
 
Plan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryPlan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site Recovery
 
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
 
Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
 
Introduction à ASP.NET Core
Introduction à ASP.NET CoreIntroduction à ASP.NET Core
Introduction à ASP.NET Core
 
Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?
 
Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...
 
Azure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursAzure Service Fabric pour les développeurs
Azure Service Fabric pour les développeurs
 
Les nouveautés de C# 7
Les nouveautés de C# 7Les nouveautés de C# 7
Les nouveautés de C# 7
 
La 3D sur le web avec Babylon.js pas à pas
La 3D sur le web avec Babylon.js pas à pasLa 3D sur le web avec Babylon.js pas à pas
La 3D sur le web avec Babylon.js pas à pas
 
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
 
Le développement web : tour d'horizon
Le développement web : tour d'horizonLe développement web : tour d'horizon
Le développement web : tour d'horizon
 
Introduction à Bash dans Windows 10
Introduction à Bash dans Windows 10Introduction à Bash dans Windows 10
Introduction à Bash dans Windows 10
 
Introduction à Bash dans Windows 10
Introduction à Bash dans Windows 10Introduction à Bash dans Windows 10
Introduction à Bash dans Windows 10
 
Use In IoT : l’objet connecté de la board au dashboard
Use In IoT : l’objet connecté de la board au dashboardUse In IoT : l’objet connecté de la board au dashboard
Use In IoT : l’objet connecté de la board au dashboard
 
Développez vos jeux multiplateformes grâce à Unity3D avec Visual Studio en C#
Développez vos jeux multiplateformes grâce à Unity3D avec Visual Studio en C#Développez vos jeux multiplateformes grâce à Unity3D avec Visual Studio en C#
Développez vos jeux multiplateformes grâce à Unity3D avec Visual Studio en C#
 

NDepend 5 en action par son créateur

  • 1.
  • 2. NDepend 5 en action par son créateur Bruno BOUCARD LEAD Architect Cellenza blogs.msdn.com/devpara/ Code/Developpement Patrick SMACCHIA LEAD Dev CODER IMPACT http://www.NDepend.com
  • 3. Présentation de Cellenza Cabinet de conseil IT exclusivement dédié aux technologies Microsoft et aux méthodes Agiles Notre passion, les technologies MS Nous sommes des experts Microsoft, agilistes par nature, passionnés par notre métier. Consultants, coachs, formateurs et/ou MVP, nous avons à cœur de partager avec la communauté un savoir technique et méthodologique, mais aussi nos valeurs 150 billets de blog Comment nous le faisons : • • • Formation continue Partage de connaissance Partenariats > 12j formati on 7 MVP 7 MCT 30 art. de presse
  • 4. NDepend en deux axes - NDepend Introduction - Unit-Tests, Contrats, Couverture de Code #mstechdays Code/developpement
  • 6. NDepend Introduction - Les Faits • 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++ #mstechdays Code/developpement
  • 7. NDepend Introduction - Pourquoi s’en servir? • Outil spécialisé dans la qualité et la maintenance de code .NET • Pourquoi nos clients utilisent NDepend: – – – – – #mstechdays 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 Code/developpement
  • 8. NDepend Introduction - Les Fonctionnalités • 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 #mstechdays Code/developpement
  • 10. UNIT-TESTS, CONTRATS, COUVERTURE DE CODE #mstechdays Code/developpement
  • 11. Unit-Tests, Contrats, Couverture de Code • • • • • 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 #mstechdays Code/developpement
  • 12. Code Contrats - Introduction • 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é #mstechdays Code/developpement
  • 13. Code Contrats - Choisir entre 2 APIs • 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 #mstechdays Code/developpement
  • 14. Code Contrats vs Unit Tests • 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 #mstechdays Code/developpement
  • 16. Conclusion • 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 ! #mstechdays Code/developpement
  • 18. Donnez votre avis ! 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 ! #mstechdays Code/developpement
  • 19. Présentation de Cellenza Ve n e z n o u s r e t r o u ve r s u r n o t r e St a n d # 1 5 Vous pouvez vous inscrire à notre jeu concours sur notre stand ou en ligne : http://jeuconcours.cellenza.com Merci !

Notes de l'éditeur

  1. MPE
  2. MPE