SlideShare uma empresa Scribd logo
1 de 28
Formation
Clean Code
Session 1
sylvain.leroy@tocea.com 17-jan-2014
2
Présentation des intervenants
Sylvain Leroy
C'est moi 
Directeur technique et co-
fondateur de la société
Tocea
Conseil en
industrialisation des
développements et
accompagnent les
entreprises dans les
chantiers de migration
automatisés
7 ans dans le domaine
sylvain.leroy@tocea.com
3
Présentation des intervenants
Jérémie Guidoux
Architecte, formateur et
cofondateur de la société
Tocea
Architecte Java/JEE,
middleware, SOA
Féru des technologies
autour de la qualité de
code et des tests
A travaillé chez un éditeur
et dans un laboratoire de
recherche
Diplôme d'Ingénieur
Jeremie.guidoux@tocea.com
4
Présentation de la formation
Formation Clean Code :
« Comment écrire un code propre »
Principes
+ Bonnes pratiques
+ Exercices
5
Organisation de la formation
5 Séances
Toutes les 3 semaines
2 équipes
6
Contenu de la formation
5 Séances
Toutes les 3 semaines
2 équipes
7
Organisation de la journée
Matin Après midi
Réponse au QCM Module 2 / Les méthodes
Qu'est ce qu'un code propre ? Module 3 / Les commentaires
8
Modules de la formation
Journée 1 : CleanCode
Qu'est ce qu'un code propre
Module 1 / Nommage des identifiants
Module 2 / Les méthodes et le code
Module 3 / Les commentaires
Journée 2 : Programmation objet propre
Module 4 / Le formattage
Module 5 / Objets et structures de données
Module 6 / Métriques orientées objets
Module 7 / Gestion des erreurs et des
exceptions
9
Modules de la formation
Journée 3 : Construire une
application propre
Module 8 / Design d'une fonctionnalité
Module 9 / Analyse de l'architecture
d'une application Java
Module 10 / Technologies externes et
licences
Journée 5 : Reprendre un code existant
(legacy)
Module 13 / Faire un plan d'actions
d'amélioration d'une application
Module 14 / Se préparer à reprendre une
nouvelle application / audit
Journée 4 : Industrialiser le
développement d'une application
Module 11 / Tester son code
Module 12 / Build / Test / Run /
Qualimetry / Deploy
10
Quelques mots sur la formation
Les exemples sont basés sur le langage Java et la
programmation Objet
Je vais enfoncer parfois quelques portes ouvertes
Il peut avoir un peu de frustration
Plusieurs fois, je proposerai de vous mettre à la place du
reviewer
Certains exercices ne pourront être terminés dans la session
Pas de panique ! Je répondrai aux questions hors-séance
Réponses
Au
QCM
sylvain.leroy@tocea.com 17-jan-2014
Pourquoi
Avoir un code propre ?
sylvain.leroy@tocea.com 17-jan-2014
13
Avant-propos : Clean code
14
Motivations
Vous êtes un développeur
Vous voulez être un meilleur
développeur (et reconnu)
(Acquérir des XP)
15
Objectifs
Connaître et partager des bonnes pratiques simples à
mettre en oeuvre
Offrir un point de vue critique et argumenté
Utile dans le cadre de pair-programming et de reviews
Ne pas être effrayé des outils destinés à vous aider
Ils ne peuvent pas vous remplacer, Skynet n'est pas encore en place
Avoir du recul sur un système legacy et prioritiser les
travaux d'amélioration
●
16
Game of books
17
Qu'est ce qu'un bon code ?
Apportez vos définitions !
18
Qu'est ce qu'un mauvais code ?
Apportez vos définitions !
19
La méthode empirique pour détecter du
mauvais code :
20
La méthode des chefs pour mesurer un
mauvais code
21
La dette technique, qu'est ce que c'est ?
Métaphore qui a été créée pour illustrer les potentiels
impacts d'une mauvaise architecture, un mauvais
développement
La dette technique peut être vu comme le travail
initial, obligatoire nécessaire pour réaliser le
développement fonctionnel (= valeur ajoutée)
1. D'après Wikipedia, plus de détails sur techdebt.org
22
La dette technique, qu'est ce que c'est ?
Comment la mesurer ?
Nombre de violations * Temps de correction pour chaque 
type de correction = temps de correction 
Temps dépendant de l'effort nécessaire à remettre les 
métriques en « vert »
23
Code propre, dette technique, qui est
responsable ?
Pressions du business
Manque de process ou de compréhension
Développement en parallèle / isolation
Manque de flexibilité et d'agilité dans le produit
Manque de jeux de tests
Manque de documentation
Manque de collaboration
Refactoring retardé
Manque de connaissances en développement
Quand le développeur ne sait tout simplement pas comment
écrire un code élégant
24
Prenons nos responsabilités et évitons de créer
par nos actions, de la dette technique !
25
Qu'est ce les développeurs y gagnent ?
Valorisez votre travail
Valorisez vos compétences
Travaillez dans un environnement
(l'application) non stressant
Conservez une application moderne
Participez à des développements
intéressants et challengings
Attirez et formez les nouveaux talents
Développez et corrigez moins votre code par la
suite
Valorisez votre expérience,
améliorez le travail d'équipe
Avant-propos
La déclaration des
droits de codage des
développeurs
sylvain.leroy@tocea.com 17-jan-2014
27
Déclaration des droits des développeurs
Suivez les conventions et normes de
programmation
Gardez votre code simple, stupide
Keep it simple, stupid (KISS)
La règle du boy-scout
Laissez le campement toujours
plus propre que vous ne l'avez
trouvé
Ne vous répétez pas vous même
(DRY)
Vous êtes un humain, pas une
machine, ne vous abaissez pas
Corrigez toujours les racines du
mal pas les symptômes (Root cause
analysis)
Parce que l'application s'approche
plus vite de sa fin de vie. (vit sous
perfusion)
28

Mais conteúdo relacionado

Mais procurados

Clean code game - Agile France 2013
Clean code game - Agile France 2013Clean code game - Agile France 2013
Clean code game - Agile France 2013Michel Domenjoud
 
Model de qualité @ msdevmtl
Model de qualité @ msdevmtlModel de qualité @ msdevmtl
Model de qualité @ msdevmtlMSDEVMTL
 
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 qualifeTelecomValley
 
Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...
Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...
Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...TelecomValley
 
Soirée du Test Logiciel - Les dernières tendances du test logiciel - B. LEGEA...
Soirée du Test Logiciel - Les dernières tendances du test logiciel - B. LEGEA...Soirée du Test Logiciel - Les dernières tendances du test logiciel - B. LEGEA...
Soirée du Test Logiciel - Les dernières tendances du test logiciel - B. LEGEA...TelecomValley
 
Contrôle de la qualité logiciel
Contrôle de la qualité logicielContrôle de la qualité logiciel
Contrôle de la qualité logicielSylvain Leroy
 
Introduction à la validation de logiciel
Introduction à la validation de logicielIntroduction à la validation de logiciel
Introduction à la validation de logicielJean-Paul CARMONA
 
Rappels Modularisation application C/C++
Rappels Modularisation application C/C++Rappels Modularisation application C/C++
Rappels Modularisation application C/C++Sylvain Leroy
 
20130523 04 - Grille d'évaluation - Gestion du patrimoine de test
20130523 04 - Grille d'évaluation - Gestion du patrimoine de test20130523 04 - Grille d'évaluation - Gestion du patrimoine de test
20130523 04 - Grille d'évaluation - Gestion du patrimoine de testLeClubQualiteLogicielle
 
Altran soirée du test logiciel - assez des c 05-10-17
Altran   soirée du test logiciel - assez des c 05-10-17Altran   soirée du test logiciel - assez des c 05-10-17
Altran soirée du test logiciel - assez des c 05-10-17Marc Hage Chahine
 
Soirée du Test Logiciel - Administration et orchestration des tests avec Refe...
Soirée du Test Logiciel - Administration et orchestration des tests avec Refe...Soirée du Test Logiciel - Administration et orchestration des tests avec Refe...
Soirée du Test Logiciel - Administration et orchestration des tests avec Refe...TelecomValley
 
20120612 05 - Etude de maturité d'une organisation de tests avec TPI Next
20120612 05 - Etude de maturité d'une organisation de tests avec TPI Next20120612 05 - Etude de maturité d'une organisation de tests avec TPI Next
20120612 05 - Etude de maturité d'une organisation de tests avec TPI NextLeClubQualiteLogicielle
 
20171122 03 - Les tests de performance en environnement DevOps
20171122 03 - Les tests de performance en environnement DevOps20171122 03 - Les tests de performance en environnement DevOps
20171122 03 - Les tests de performance en environnement DevOpsLeClubQualiteLogicielle
 
2019 - HAGE CHAHINE - ALTRAN - Presentation-DecouverteMondeAgile_V1.1
2019 - HAGE CHAHINE - ALTRAN - Presentation-DecouverteMondeAgile_V1.12019 - HAGE CHAHINE - ALTRAN - Presentation-DecouverteMondeAgile_V1.1
2019 - HAGE CHAHINE - ALTRAN - Presentation-DecouverteMondeAgile_V1.1TelecomValley
 
Intégration Continue (Agile Nantes)
Intégration Continue (Agile Nantes)Intégration Continue (Agile Nantes)
Intégration Continue (Agile Nantes)Fabian Piau
 

Mais procurados (20)

Clean code game - Agile France 2013
Clean code game - Agile France 2013Clean code game - Agile France 2013
Clean code game - Agile France 2013
 
Assurance qualité
Assurance qualitéAssurance qualité
Assurance qualité
 
Model de qualité @ msdevmtl
Model de qualité @ msdevmtlModel de qualité @ msdevmtl
Model de qualité @ msdevmtl
 
Qualité logiciel - Generalités
Qualité logiciel - GeneralitésQualité logiciel - Generalités
Qualité logiciel - Generalités
 
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
 
Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...
Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...
Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...
 
Soirée du Test Logiciel - Les dernières tendances du test logiciel - B. LEGEA...
Soirée du Test Logiciel - Les dernières tendances du test logiciel - B. LEGEA...Soirée du Test Logiciel - Les dernières tendances du test logiciel - B. LEGEA...
Soirée du Test Logiciel - Les dernières tendances du test logiciel - B. LEGEA...
 
Contrôle de la qualité logiciel
Contrôle de la qualité logicielContrôle de la qualité logiciel
Contrôle de la qualité logiciel
 
Futur tunis
Futur tunisFutur tunis
Futur tunis
 
Introduction à la validation de logiciel
Introduction à la validation de logicielIntroduction à la validation de logiciel
Introduction à la validation de logiciel
 
Rappels Modularisation application C/C++
Rappels Modularisation application C/C++Rappels Modularisation application C/C++
Rappels Modularisation application C/C++
 
20130523 04 - Grille d'évaluation - Gestion du patrimoine de test
20130523 04 - Grille d'évaluation - Gestion du patrimoine de test20130523 04 - Grille d'évaluation - Gestion du patrimoine de test
20130523 04 - Grille d'évaluation - Gestion du patrimoine de test
 
Altran soirée du test logiciel - assez des c 05-10-17
Altran   soirée du test logiciel - assez des c 05-10-17Altran   soirée du test logiciel - assez des c 05-10-17
Altran soirée du test logiciel - assez des c 05-10-17
 
ATDD Visuel
ATDD VisuelATDD Visuel
ATDD Visuel
 
Soirée du Test Logiciel - Administration et orchestration des tests avec Refe...
Soirée du Test Logiciel - Administration et orchestration des tests avec Refe...Soirée du Test Logiciel - Administration et orchestration des tests avec Refe...
Soirée du Test Logiciel - Administration et orchestration des tests avec Refe...
 
Tests Logiciel
Tests LogicielTests Logiciel
Tests Logiciel
 
20120612 05 - Etude de maturité d'une organisation de tests avec TPI Next
20120612 05 - Etude de maturité d'une organisation de tests avec TPI Next20120612 05 - Etude de maturité d'une organisation de tests avec TPI Next
20120612 05 - Etude de maturité d'une organisation de tests avec TPI Next
 
20171122 03 - Les tests de performance en environnement DevOps
20171122 03 - Les tests de performance en environnement DevOps20171122 03 - Les tests de performance en environnement DevOps
20171122 03 - Les tests de performance en environnement DevOps
 
2019 - HAGE CHAHINE - ALTRAN - Presentation-DecouverteMondeAgile_V1.1
2019 - HAGE CHAHINE - ALTRAN - Presentation-DecouverteMondeAgile_V1.12019 - HAGE CHAHINE - ALTRAN - Presentation-DecouverteMondeAgile_V1.1
2019 - HAGE CHAHINE - ALTRAN - Presentation-DecouverteMondeAgile_V1.1
 
Intégration Continue (Agile Nantes)
Intégration Continue (Agile Nantes)Intégration Continue (Agile Nantes)
Intégration Continue (Agile Nantes)
 

Destaque

Angularjs101-les_SPA:support de la video
Angularjs101-les_SPA:support de la videoAngularjs101-les_SPA:support de la video
Angularjs101-les_SPA:support de la videoeric German
 
Teams that finish early : Allez vers des équipes agiles plus performantes
Teams that finish  early : Allez vers des équipes agiles plus performantesTeams that finish  early : Allez vers des équipes agiles plus performantes
Teams that finish early : Allez vers des équipes agiles plus performantesAnas MBASSO
 
Design applicatif avec symfony2
Design applicatif avec symfony2Design applicatif avec symfony2
Design applicatif avec symfony2RomainKuzniak
 
Méthodologie de gestion des tâches dans les projets web
Méthodologie de gestion des tâches dans les projets webMéthodologie de gestion des tâches dans les projets web
Méthodologie de gestion des tâches dans les projets webRomainKuzniak
 
Solution de collecte intelligente des déchets (Ecube Labs)
Solution de collecte intelligente des déchets (Ecube Labs)Solution de collecte intelligente des déchets (Ecube Labs)
Solution de collecte intelligente des déchets (Ecube Labs)Ecube Labs
 
Models and Service Layers, Hemoglobin and Hobgoblins
Models and Service Layers, Hemoglobin and HobgoblinsModels and Service Layers, Hemoglobin and Hobgoblins
Models and Service Layers, Hemoglobin and HobgoblinsRoss Tuck
 
Limpiando espero la arquitectura que yo quiero
Limpiando espero la arquitectura que yo quieroLimpiando espero la arquitectura que yo quiero
Limpiando espero la arquitectura que yo quieroJose Manuel Pereira Garcia
 
Composer in monolithic repositories
Composer in monolithic repositoriesComposer in monolithic repositories
Composer in monolithic repositoriesSten Hiedel
 
Command Bus To Awesome Town
Command Bus To Awesome TownCommand Bus To Awesome Town
Command Bus To Awesome TownRoss Tuck
 
Symfony: Your Next Microframework (SymfonyCon 2015)
Symfony: Your Next Microframework (SymfonyCon 2015)Symfony: Your Next Microframework (SymfonyCon 2015)
Symfony: Your Next Microframework (SymfonyCon 2015)Ryan Weaver
 
Clean architecture with ddd layering in php
Clean architecture with ddd layering in phpClean architecture with ddd layering in php
Clean architecture with ddd layering in phpLeonardo Proietti
 
Domain Driven Design using Laravel
Domain Driven Design using LaravelDomain Driven Design using Laravel
Domain Driven Design using Laravelwajrcs
 
Software Design Patterns in Laravel by Phill Sparks
Software Design Patterns in Laravel by Phill SparksSoftware Design Patterns in Laravel by Phill Sparks
Software Design Patterns in Laravel by Phill SparksPhill Sparks
 
Création de Vues | SQL Oracle
Création de Vues | SQL OracleCréation de Vues | SQL Oracle
Création de Vues | SQL Oraclewebreaker
 

Destaque (20)

Angularjs101-les_SPA:support de la video
Angularjs101-les_SPA:support de la videoAngularjs101-les_SPA:support de la video
Angularjs101-les_SPA:support de la video
 
Coder propre !
Coder propre !Coder propre !
Coder propre !
 
Clean code
Clean codeClean code
Clean code
 
Teams that finish early : Allez vers des équipes agiles plus performantes
Teams that finish  early : Allez vers des équipes agiles plus performantesTeams that finish  early : Allez vers des équipes agiles plus performantes
Teams that finish early : Allez vers des équipes agiles plus performantes
 
Clean architectures
Clean architecturesClean architectures
Clean architectures
 
DDD in PHP
DDD in PHPDDD in PHP
DDD in PHP
 
Design applicatif avec symfony2
Design applicatif avec symfony2Design applicatif avec symfony2
Design applicatif avec symfony2
 
Méthodologie de gestion des tâches dans les projets web
Méthodologie de gestion des tâches dans les projets webMéthodologie de gestion des tâches dans les projets web
Méthodologie de gestion des tâches dans les projets web
 
Laravel 5 and SOLID
Laravel 5 and SOLIDLaravel 5 and SOLID
Laravel 5 and SOLID
 
Solution de collecte intelligente des déchets (Ecube Labs)
Solution de collecte intelligente des déchets (Ecube Labs)Solution de collecte intelligente des déchets (Ecube Labs)
Solution de collecte intelligente des déchets (Ecube Labs)
 
Models and Service Layers, Hemoglobin and Hobgoblins
Models and Service Layers, Hemoglobin and HobgoblinsModels and Service Layers, Hemoglobin and Hobgoblins
Models and Service Layers, Hemoglobin and Hobgoblins
 
Limpiando espero la arquitectura que yo quiero
Limpiando espero la arquitectura que yo quieroLimpiando espero la arquitectura que yo quiero
Limpiando espero la arquitectura que yo quiero
 
Composer in monolithic repositories
Composer in monolithic repositoriesComposer in monolithic repositories
Composer in monolithic repositories
 
Command Bus To Awesome Town
Command Bus To Awesome TownCommand Bus To Awesome Town
Command Bus To Awesome Town
 
Symfony: Your Next Microframework (SymfonyCon 2015)
Symfony: Your Next Microframework (SymfonyCon 2015)Symfony: Your Next Microframework (SymfonyCon 2015)
Symfony: Your Next Microframework (SymfonyCon 2015)
 
Clean code coding like a professional
Clean code   coding like a professionalClean code   coding like a professional
Clean code coding like a professional
 
Clean architecture with ddd layering in php
Clean architecture with ddd layering in phpClean architecture with ddd layering in php
Clean architecture with ddd layering in php
 
Domain Driven Design using Laravel
Domain Driven Design using LaravelDomain Driven Design using Laravel
Domain Driven Design using Laravel
 
Software Design Patterns in Laravel by Phill Sparks
Software Design Patterns in Laravel by Phill SparksSoftware Design Patterns in Laravel by Phill Sparks
Software Design Patterns in Laravel by Phill Sparks
 
Création de Vues | SQL Oracle
Création de Vues | SQL OracleCréation de Vues | SQL Oracle
Création de Vues | SQL Oracle
 

Semelhante a Cleancode / Tocea / Introduction

Agilité, Tests Et Industrialisation
Agilité, Tests Et IndustrialisationAgilité, Tests Et Industrialisation
Agilité, Tests Et IndustrialisationPHPPRO
 
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 - TDDXavier NOPRE
 
SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...
SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...
SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...Sébastien Levert
 
Mockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice DuteilMockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice DuteilNormandy JUG
 
Test driven development v0.2 20121221
Test driven development v0.2 20121221Test driven development v0.2 20121221
Test driven development v0.2 20121221Frédéric Delorme
 
Techdays2011
Techdays2011 Techdays2011
Techdays2011 ALTER WAY
 
Impacts de l'adoption de Scrum
Impacts de l'adoption de ScrumImpacts de l'adoption de Scrum
Impacts de l'adoption de ScrumPyxis Technologies
 
Vincent Biret Societic devops Sherbrooke
Vincent Biret Societic devops SherbrookeVincent Biret Societic devops Sherbrooke
Vincent Biret Societic devops SherbrookeVincent Biret
 
Introduction a l_agilite_iut_lyon_1_decembre2011
Introduction a l_agilite_iut_lyon_1_decembre2011Introduction a l_agilite_iut_lyon_1_decembre2011
Introduction a l_agilite_iut_lyon_1_decembre2011agnes_crepet
 
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 ALMGrégory Ott
 
Patterns Agiles avec Visual Studio 2012 et TFS 2012
Patterns Agiles avec Visual Studio 2012 et TFS 2012Patterns Agiles avec Visual Studio 2012 et TFS 2012
Patterns Agiles avec Visual Studio 2012 et TFS 2012Microsoft
 
Petit Déjeuner TDR
Petit Déjeuner TDRPetit Déjeuner TDR
Petit Déjeuner TDRguest4e4aad
 
devops.pdf
devops.pdfdevops.pdf
devops.pdfqsdqsd4
 
Développement en méthode agile
Développement en méthode agileDéveloppement en méthode agile
Développement en méthode agilelaurent bristiel
 
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testableAgile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testableAssociation Agile Nantes
 
Mix-IT 2013 - Agilistes : n'oubliez pas la technique - mix-it 2013
Mix-IT 2013 - Agilistes : n'oubliez pas la technique - mix-it 2013Mix-IT 2013 - Agilistes : n'oubliez pas la technique - mix-it 2013
Mix-IT 2013 - Agilistes : n'oubliez pas la technique - mix-it 2013Xavier NOPRE
 
Comment transformer un débutant en super-développeur
Comment transformer un débutant en super-développeurComment transformer un débutant en super-développeur
Comment transformer un débutant en super-développeurGauthier Delamarre
 

Semelhante a Cleancode / Tocea / Introduction (20)

Agilité, Tests Et Industrialisation
Agilité, Tests Et IndustrialisationAgilité, Tests Et Industrialisation
Agilité, Tests Et Industrialisation
 
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
 
SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...
SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...
SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...
 
Mockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice DuteilMockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice Duteil
 
Test driven development v0.2 20121221
Test driven development v0.2 20121221Test driven development v0.2 20121221
Test driven development v0.2 20121221
 
Techdays2011
Techdays2011 Techdays2011
Techdays2011
 
Impacts de l'adoption de Scrum
Impacts de l'adoption de ScrumImpacts de l'adoption de Scrum
Impacts de l'adoption de Scrum
 
Vincent Biret Societic devops Sherbrooke
Vincent Biret Societic devops SherbrookeVincent Biret Societic devops Sherbrooke
Vincent Biret Societic devops Sherbrooke
 
lean development
lean developmentlean development
lean development
 
Introduction a l_agilite_iut_lyon_1_decembre2011
Introduction a l_agilite_iut_lyon_1_decembre2011Introduction a l_agilite_iut_lyon_1_decembre2011
Introduction a l_agilite_iut_lyon_1_decembre2011
 
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
 
Patterns Agiles avec Visual Studio 2012 et TFS 2012
Patterns Agiles avec Visual Studio 2012 et TFS 2012Patterns Agiles avec Visual Studio 2012 et TFS 2012
Patterns Agiles avec Visual Studio 2012 et TFS 2012
 
Petit Déjeuner TDR
Petit Déjeuner TDRPetit Déjeuner TDR
Petit Déjeuner TDR
 
devops.pdf
devops.pdfdevops.pdf
devops.pdf
 
Développement en méthode agile
Développement en méthode agileDéveloppement en méthode agile
Développement en méthode agile
 
Clean code Game
Clean code GameClean code Game
Clean code Game
 
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testableAgile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
 
Mix-IT 2013 - Agilistes : n'oubliez pas la technique - mix-it 2013
Mix-IT 2013 - Agilistes : n'oubliez pas la technique - mix-it 2013Mix-IT 2013 - Agilistes : n'oubliez pas la technique - mix-it 2013
Mix-IT 2013 - Agilistes : n'oubliez pas la technique - mix-it 2013
 
Comment transformer un débutant en super-développeur
Comment transformer un débutant en super-développeurComment transformer un débutant en super-développeur
Comment transformer un débutant en super-développeur
 

Cleancode / Tocea / Introduction

  • 2. 2 Présentation des intervenants Sylvain Leroy C'est moi  Directeur technique et co- fondateur de la société Tocea Conseil en industrialisation des développements et accompagnent les entreprises dans les chantiers de migration automatisés 7 ans dans le domaine sylvain.leroy@tocea.com
  • 3. 3 Présentation des intervenants Jérémie Guidoux Architecte, formateur et cofondateur de la société Tocea Architecte Java/JEE, middleware, SOA Féru des technologies autour de la qualité de code et des tests A travaillé chez un éditeur et dans un laboratoire de recherche Diplôme d'Ingénieur Jeremie.guidoux@tocea.com
  • 4. 4 Présentation de la formation Formation Clean Code : « Comment écrire un code propre » Principes + Bonnes pratiques + Exercices
  • 5. 5 Organisation de la formation 5 Séances Toutes les 3 semaines 2 équipes
  • 6. 6 Contenu de la formation 5 Séances Toutes les 3 semaines 2 équipes
  • 7. 7 Organisation de la journée Matin Après midi Réponse au QCM Module 2 / Les méthodes Qu'est ce qu'un code propre ? Module 3 / Les commentaires
  • 8. 8 Modules de la formation Journée 1 : CleanCode Qu'est ce qu'un code propre Module 1 / Nommage des identifiants Module 2 / Les méthodes et le code Module 3 / Les commentaires Journée 2 : Programmation objet propre Module 4 / Le formattage Module 5 / Objets et structures de données Module 6 / Métriques orientées objets Module 7 / Gestion des erreurs et des exceptions
  • 9. 9 Modules de la formation Journée 3 : Construire une application propre Module 8 / Design d'une fonctionnalité Module 9 / Analyse de l'architecture d'une application Java Module 10 / Technologies externes et licences Journée 5 : Reprendre un code existant (legacy) Module 13 / Faire un plan d'actions d'amélioration d'une application Module 14 / Se préparer à reprendre une nouvelle application / audit Journée 4 : Industrialiser le développement d'une application Module 11 / Tester son code Module 12 / Build / Test / Run / Qualimetry / Deploy
  • 10. 10 Quelques mots sur la formation Les exemples sont basés sur le langage Java et la programmation Objet Je vais enfoncer parfois quelques portes ouvertes Il peut avoir un peu de frustration Plusieurs fois, je proposerai de vous mettre à la place du reviewer Certains exercices ne pourront être terminés dans la session Pas de panique ! Je répondrai aux questions hors-séance
  • 12. Pourquoi Avoir un code propre ? sylvain.leroy@tocea.com 17-jan-2014
  • 14. 14 Motivations Vous êtes un développeur Vous voulez être un meilleur développeur (et reconnu) (Acquérir des XP)
  • 15. 15 Objectifs Connaître et partager des bonnes pratiques simples à mettre en oeuvre Offrir un point de vue critique et argumenté Utile dans le cadre de pair-programming et de reviews Ne pas être effrayé des outils destinés à vous aider Ils ne peuvent pas vous remplacer, Skynet n'est pas encore en place Avoir du recul sur un système legacy et prioritiser les travaux d'amélioration ●
  • 17. 17 Qu'est ce qu'un bon code ? Apportez vos définitions !
  • 18. 18 Qu'est ce qu'un mauvais code ? Apportez vos définitions !
  • 19. 19 La méthode empirique pour détecter du mauvais code :
  • 20. 20 La méthode des chefs pour mesurer un mauvais code
  • 21. 21 La dette technique, qu'est ce que c'est ? Métaphore qui a été créée pour illustrer les potentiels impacts d'une mauvaise architecture, un mauvais développement La dette technique peut être vu comme le travail initial, obligatoire nécessaire pour réaliser le développement fonctionnel (= valeur ajoutée) 1. D'après Wikipedia, plus de détails sur techdebt.org
  • 22. 22 La dette technique, qu'est ce que c'est ? Comment la mesurer ? Nombre de violations * Temps de correction pour chaque  type de correction = temps de correction  Temps dépendant de l'effort nécessaire à remettre les  métriques en « vert »
  • 23. 23 Code propre, dette technique, qui est responsable ? Pressions du business Manque de process ou de compréhension Développement en parallèle / isolation Manque de flexibilité et d'agilité dans le produit Manque de jeux de tests Manque de documentation Manque de collaboration Refactoring retardé Manque de connaissances en développement Quand le développeur ne sait tout simplement pas comment écrire un code élégant
  • 24. 24 Prenons nos responsabilités et évitons de créer par nos actions, de la dette technique !
  • 25. 25 Qu'est ce les développeurs y gagnent ? Valorisez votre travail Valorisez vos compétences Travaillez dans un environnement (l'application) non stressant Conservez une application moderne Participez à des développements intéressants et challengings Attirez et formez les nouveaux talents Développez et corrigez moins votre code par la suite Valorisez votre expérience, améliorez le travail d'équipe
  • 26. Avant-propos La déclaration des droits de codage des développeurs sylvain.leroy@tocea.com 17-jan-2014
  • 27. 27 Déclaration des droits des développeurs Suivez les conventions et normes de programmation Gardez votre code simple, stupide Keep it simple, stupid (KISS) La règle du boy-scout Laissez le campement toujours plus propre que vous ne l'avez trouvé Ne vous répétez pas vous même (DRY) Vous êtes un humain, pas une machine, ne vous abaissez pas Corrigez toujours les racines du mal pas les symptômes (Root cause analysis) Parce que l'application s'approche plus vite de sa fin de vie. (vit sous perfusion)
  • 28. 28