Enviar pesquisa
Carregar
Working effectively with legacy code
•
1 gostou
•
1,763 visualizações
Mathieu Gandin
Seguir
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 25
Recomendados
Clean code Game
Clean code Game
Mathieu Gandin
Working effectively with legacy code
Working effectively with legacy code
Mathieu Gandin
Initiation à l'agile
Initiation à l'agile
Mathieu Gandin
Présentation kanban
Présentation kanban
Mathieu Gandin
Industrialisation des développements Java
Industrialisation des développements Java
Christian Blavier
Wicket - JUG Lausanne
Wicket - JUG Lausanne
Christian Blavier
Portfólio e Apresentação da Pipa Comunicação
Portfólio e Apresentação da Pipa Comunicação
Karla Vidal
Article - Steam Balances Save Money.PDF
Article - Steam Balances Save Money.PDF
Bharat (Bob) Shah
Recomendados
Clean code Game
Clean code Game
Mathieu Gandin
Working effectively with legacy code
Working effectively with legacy code
Mathieu Gandin
Initiation à l'agile
Initiation à l'agile
Mathieu Gandin
Présentation kanban
Présentation kanban
Mathieu Gandin
Industrialisation des développements Java
Industrialisation des développements Java
Christian Blavier
Wicket - JUG Lausanne
Wicket - JUG Lausanne
Christian Blavier
Portfólio e Apresentação da Pipa Comunicação
Portfólio e Apresentação da Pipa Comunicação
Karla Vidal
Article - Steam Balances Save Money.PDF
Article - Steam Balances Save Money.PDF
Bharat (Bob) Shah
07 03-2016
07 03-2016
MerCUAltos
Définir un cadre méthodologique
Définir un cadre méthodologique
Mathieu Gandin
23 02-2016
23 02-2016
MerCUAltos
15 03-2016
15 03-2016
MerCUAltos
13.16 05-2016
13.16 05-2016
MerCUAltos
04 04-16
04 04-16
MerCUAltos
Pano vũng tàu unique ads
Pano vũng tàu unique ads
minhnghiemunique
Guía de autores - Revista Andina de Estudios Políticos
Guía de autores - Revista Andina de Estudios Políticos
José Manuel Mejía Villena
Resumo do mês de Fevereiro de 2016 - O Encantador de Clientes de Eloi Zanetti
Resumo do mês de Fevereiro de 2016 - O Encantador de Clientes de Eloi Zanetti
Thiago Compan
Como vender mais usando gestão de pipeline
Como vender mais usando gestão de pipeline
Silvio César de Oliveira
Building LibreOffice local community in Japan through event handling
Building LibreOffice local community in Japan through event handling
Shinji Enoki
Julia最新情報 2015
Julia最新情報 2015
Kenta Sato
SeekR Annual Search Trends Report 2015
SeekR Annual Search Trends Report 2015
Takekatsu Hiramura
Lazada vs Matahari Mall Business Models
Lazada vs Matahari Mall Business Models
Indah Maryani
SE2016 Company Development Vadym Gorenko "How to pass the death valley"
SE2016 Company Development Vadym Gorenko "How to pass the death valley"
Inhacking
SE2016 Management Mikhail Lebedinkiy "iAIST the first pure ukrainian corporat...
SE2016 Management Mikhail Lebedinkiy "iAIST the first pure ukrainian corporat...
Inhacking
Julia Computing - an alternative to Hadoop
Julia Computing - an alternative to Hadoop
Shaurya Shekhar
وحي من جهة مصر القس كرم لامعى - ونبر الكنيسه الانجيليه بالابراهيميه
وحي من جهة مصر القس كرم لامعى - ونبر الكنيسه الانجيليه بالابراهيميه
Ibrahimia Church Ftriends
01 2015 24 nov. دروس من حياة يوسف (1). ق. شكري شاكر
01 2015 24 nov. دروس من حياة يوسف (1). ق. شكري شاكر
Ibrahimia Church Ftriends
اقرار الايمان الانجيلى نؤمن فى الله ماده 1
اقرار الايمان الانجيلى نؤمن فى الله ماده 1
Ibrahimia Church Ftriends
OCTO - Les pratiques des geants du web
OCTO - Les pratiques des geants du web
OCTO Technology
OCTO 2012 : Les pratiques des geants du web
OCTO 2012 : Les pratiques des geants du web
OCTO Technology
Mais conteúdo relacionado
Destaque
07 03-2016
07 03-2016
MerCUAltos
Définir un cadre méthodologique
Définir un cadre méthodologique
Mathieu Gandin
23 02-2016
23 02-2016
MerCUAltos
15 03-2016
15 03-2016
MerCUAltos
13.16 05-2016
13.16 05-2016
MerCUAltos
04 04-16
04 04-16
MerCUAltos
Pano vũng tàu unique ads
Pano vũng tàu unique ads
minhnghiemunique
Guía de autores - Revista Andina de Estudios Políticos
Guía de autores - Revista Andina de Estudios Políticos
José Manuel Mejía Villena
Resumo do mês de Fevereiro de 2016 - O Encantador de Clientes de Eloi Zanetti
Resumo do mês de Fevereiro de 2016 - O Encantador de Clientes de Eloi Zanetti
Thiago Compan
Como vender mais usando gestão de pipeline
Como vender mais usando gestão de pipeline
Silvio César de Oliveira
Building LibreOffice local community in Japan through event handling
Building LibreOffice local community in Japan through event handling
Shinji Enoki
Julia最新情報 2015
Julia最新情報 2015
Kenta Sato
SeekR Annual Search Trends Report 2015
SeekR Annual Search Trends Report 2015
Takekatsu Hiramura
Lazada vs Matahari Mall Business Models
Lazada vs Matahari Mall Business Models
Indah Maryani
SE2016 Company Development Vadym Gorenko "How to pass the death valley"
SE2016 Company Development Vadym Gorenko "How to pass the death valley"
Inhacking
SE2016 Management Mikhail Lebedinkiy "iAIST the first pure ukrainian corporat...
SE2016 Management Mikhail Lebedinkiy "iAIST the first pure ukrainian corporat...
Inhacking
Julia Computing - an alternative to Hadoop
Julia Computing - an alternative to Hadoop
Shaurya Shekhar
وحي من جهة مصر القس كرم لامعى - ونبر الكنيسه الانجيليه بالابراهيميه
وحي من جهة مصر القس كرم لامعى - ونبر الكنيسه الانجيليه بالابراهيميه
Ibrahimia Church Ftriends
01 2015 24 nov. دروس من حياة يوسف (1). ق. شكري شاكر
01 2015 24 nov. دروس من حياة يوسف (1). ق. شكري شاكر
Ibrahimia Church Ftriends
اقرار الايمان الانجيلى نؤمن فى الله ماده 1
اقرار الايمان الانجيلى نؤمن فى الله ماده 1
Ibrahimia Church Ftriends
Destaque
(20)
07 03-2016
07 03-2016
Définir un cadre méthodologique
Définir un cadre méthodologique
23 02-2016
23 02-2016
15 03-2016
15 03-2016
13.16 05-2016
13.16 05-2016
04 04-16
04 04-16
Pano vũng tàu unique ads
Pano vũng tàu unique ads
Guía de autores - Revista Andina de Estudios Políticos
Guía de autores - Revista Andina de Estudios Políticos
Resumo do mês de Fevereiro de 2016 - O Encantador de Clientes de Eloi Zanetti
Resumo do mês de Fevereiro de 2016 - O Encantador de Clientes de Eloi Zanetti
Como vender mais usando gestão de pipeline
Como vender mais usando gestão de pipeline
Building LibreOffice local community in Japan through event handling
Building LibreOffice local community in Japan through event handling
Julia最新情報 2015
Julia最新情報 2015
SeekR Annual Search Trends Report 2015
SeekR Annual Search Trends Report 2015
Lazada vs Matahari Mall Business Models
Lazada vs Matahari Mall Business Models
SE2016 Company Development Vadym Gorenko "How to pass the death valley"
SE2016 Company Development Vadym Gorenko "How to pass the death valley"
SE2016 Management Mikhail Lebedinkiy "iAIST the first pure ukrainian corporat...
SE2016 Management Mikhail Lebedinkiy "iAIST the first pure ukrainian corporat...
Julia Computing - an alternative to Hadoop
Julia Computing - an alternative to Hadoop
وحي من جهة مصر القس كرم لامعى - ونبر الكنيسه الانجيليه بالابراهيميه
وحي من جهة مصر القس كرم لامعى - ونبر الكنيسه الانجيليه بالابراهيميه
01 2015 24 nov. دروس من حياة يوسف (1). ق. شكري شاكر
01 2015 24 nov. دروس من حياة يوسف (1). ق. شكري شاكر
اقرار الايمان الانجيلى نؤمن فى الله ماده 1
اقرار الايمان الانجيلى نؤمن فى الله ماده 1
Semelhante a Working effectively with legacy code
OCTO - Les pratiques des geants du web
OCTO - Les pratiques des geants du web
OCTO Technology
OCTO 2012 : Les pratiques des geants du web
OCTO 2012 : Les pratiques des geants du web
OCTO Technology
Les pratiques des geants du web
Les pratiques des geants du web
Stephen PERIN
Live code iOS
Live code iOS
mhausherr
La Duck Conf - Les fakes news du low-code
La Duck Conf - Les fakes news du low-code
OCTO Technology
Entity Framework 7 : nouvelle version majeure d’Entity Framework
Entity Framework 7 : nouvelle version majeure d’Entity Framework
Microsoft
20131024 qualité de code et sonar - mug lyon
20131024 qualité de code et sonar - mug lyon
Clement Bouillier
OCTO Talks - Les IA s'invitent au chevet des développeurs
OCTO Talks - Les IA s'invitent au chevet des développeurs
OCTO Technology
No Code et SEO sont ils compatibles ? Philippe Yonnet Neper
No Code et SEO sont ils compatibles ? Philippe Yonnet Neper
Philippe YONNET
Introduction à l'approche ADM de l'OMG
Introduction à l'approche ADM de l'OMG
Olivier Le Goaër
Innover sans contrainte, intégrer sans rupture
Innover sans contrainte, intégrer sans rupture
Guillaume Laforge
La Duck Conf - Continuous Security : Secure a DevOps World!
La Duck Conf - Continuous Security : Secure a DevOps World!
OCTO Technology
Paris Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascript
Michael Akbaraly
Agl2012
Agl2012
eric German
No code low code
No code low code
Hugo Budillon Rabatel
Présentation Rex GWT 2.0
Présentation Rex GWT 2.0
Ippon
Petit DéJeuner Industrialisation 13 10 2011 Eurosites
Petit DéJeuner Industrialisation 13 10 2011 Eurosites
Hervé Leclerc
Quelques conseils sur la migration des modules à Drupal 8. Étude de cas: Node...
Quelques conseils sur la migration des modules à Drupal 8. Étude de cas: Node...
Adrian CID ALMAGUER
La Duck Conf - DevOps et Dataviz, un amour impossible ?
La Duck Conf - DevOps et Dataviz, un amour impossible ?
OCTO Technology
developpement web framework cms developpement brute
developpement web framework cms developpement brute
YounesOuladSayad1
Semelhante a Working effectively with legacy code
(20)
OCTO - Les pratiques des geants du web
OCTO - Les pratiques des geants du web
OCTO 2012 : Les pratiques des geants du web
OCTO 2012 : Les pratiques des geants du web
Les pratiques des geants du web
Les pratiques des geants du web
Live code iOS
Live code iOS
La Duck Conf - Les fakes news du low-code
La Duck Conf - Les fakes news du low-code
Entity Framework 7 : nouvelle version majeure d’Entity Framework
Entity Framework 7 : nouvelle version majeure d’Entity Framework
20131024 qualité de code et sonar - mug lyon
20131024 qualité de code et sonar - mug lyon
OCTO Talks - Les IA s'invitent au chevet des développeurs
OCTO Talks - Les IA s'invitent au chevet des développeurs
No Code et SEO sont ils compatibles ? Philippe Yonnet Neper
No Code et SEO sont ils compatibles ? Philippe Yonnet Neper
Introduction à l'approche ADM de l'OMG
Introduction à l'approche ADM de l'OMG
Innover sans contrainte, intégrer sans rupture
Innover sans contrainte, intégrer sans rupture
La Duck Conf - Continuous Security : Secure a DevOps World!
La Duck Conf - Continuous Security : Secure a DevOps World!
Paris Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascript
Agl2012
Agl2012
No code low code
No code low code
Présentation Rex GWT 2.0
Présentation Rex GWT 2.0
Petit DéJeuner Industrialisation 13 10 2011 Eurosites
Petit DéJeuner Industrialisation 13 10 2011 Eurosites
Quelques conseils sur la migration des modules à Drupal 8. Étude de cas: Node...
Quelques conseils sur la migration des modules à Drupal 8. Étude de cas: Node...
La Duck Conf - DevOps et Dataviz, un amour impossible ?
La Duck Conf - DevOps et Dataviz, un amour impossible ?
developpement web framework cms developpement brute
developpement web framework cms developpement brute
Working effectively with legacy code
1.
Développer efficacement
avec du code legacy Mathieu Gandin @octomga
2.
La plupart du
temps on se retrouve à développer sur une application dont le code est relativement propre … © OCTO 2012 2
3.
… mais on
se retrouve aussi à développer sur du code Legacy… © OCTO 2012 3
4.
Vision Produit
Le code legacy, c’est quoi ? Quelques retours d’expérience Pas qu’une histoire de code Atelier © OCTO 2012 4
5.
Du vieux code
Du code sans test N’importe quel code existant Du code que tu n’as pas écrit Du code qui n’est plus supporté Du code avec des vieilles techno Du code de la version précédente © OCTO 2012 5
6.
Tu peux fuir
le code legacy … © OCTO 2012 6
7.
Tu peux maudire
le code legacy … © OCTO 2012 7
8.
… Mais en
ce moment, beaucoup (beaucoup) de code legacy est en cours d’écriture … © OCTO 2012 8
9.
… Et c’est
important car Du code legacy doit encore être étendu Du code legacy doit être corrigé Du code legacy doit changer technologiquement © OCTO 2012 9
10.
© OCTO 2012
TDD 10
11.
Sans les tests,
le code a peu de chance d’être de meilleure qualité Les méthodes et les classes s’allongent On pourrait ajouter des méthodes en testant et en effectuant de la délégation © OCTO 2012 11
12.
« Pour refactorer
j’ai besoin d’avoir des tests pour mettre des tests en place, j’ai besoin de refactorer … » © OCTO 2012 12
13.
Identifier les éléments
que l’on souhaite changer Trouver un point d’entrée Ecrire un test Casser les dépendances Modifier le code © OCTO 2012 13
14.
© OCTO 2012
Sprout class & Sprout Method 14
15.
Pourquoi être si
prudent ? Avec une certaine masse de code il est facile de faire des erreurs sans s’en rendre compte Préserver les comportements © OCTO 2012 15
16.
Singleton (variable globale) Instanciation
interne (hardcodé (ça casse les tests …)) Code procédurale (c’est long (très) à tester) © OCTO 2012 16
17.
© OCTO 2012
Orange 17
18.
© OCTO 2012
Cadremploi 18
19.
© OCTO 2012
Mediametrie 19
20.
© OCTO 2012
Code Review 20
21.
« Organizations which
design systems are constrained to produce designs which are copies of the communication structures of these organizations » © OCTO 2012 21
22.
Troisième atelier
MailService NoteRetriever Scheduler SchedulerDisplay TimeService Event DayTime Meeting 22
23.
User Story #1 “Il
ne faut pas pouvoir ajouter au scheduler d'événements datés d'avant aujourd'hui. ” 23
24.
User Story #2
“Ignorer les notes de la base qui sont uniquement des séries d'espace.” 24
25.
User Story #3 “Corriger
l'anomalie sur le filtrage des balises HTML.” (ex. <b>Formation TDD</b> Octo) 25