SlideShare una empresa de Scribd logo
1 de 17
Descargar para leer sin conexión
Refactoring
Jacopo Romei
Refactoring
Car rental




             Refactoring
Car rental

               Legacy code



             Refactoring
Car rental

               Legacy code



             Refactoring
                             What is it?
                               Same input / output
                               DIfferent architecture
Car rental

               Legacy code



             Refactoring
                             What is it?
                               Same input / output
                               DIfferent architecture
                             What is it for?
                              Raising your code value
Car rental

               Legacy code
                             Clean code
                                   that works
             Refactoring
                              What is it?
                                 Same input / output
                                 DIfferent architecture
                              What is it for?
                                Raising your code value
Car rental
    Lower interest rate
Prevention            Legacy code
     Technical debt                 Clean code
                                          that works
              Refactoring
                                     What is it?
                                        Same input / output
                                        DIfferent architecture
                                     What is it for?
                                       Raising your code value
2005
Agile coach                          @jacoporomei

Jacopo Romei              PHP developer
                                           1999
                                   since
       Symfony2 CMF



                      Opensource
       2011
                               Symfony1 patches
Car rental
        Lower interest rate
    Prevention            Legacy code
         Technical debt                 Clean code
                                              that works
                     Refactoring
              Start-up

                                         What is it?
                                            Same input / output
                                            DIfferent architecture
  Short term goal
 Sustainability(?)
                                         What is it for?
                                           Raising your code value
Dreadful dead end
Car rental
        Lower interest rate
    Prevention            Legacy code
         Technical debt                 Clean code
                                              that works
                     Refactoring
              Start-up

                         Simple          What is it?
                                            Same input / output
                                            DIfferent architecture
  Short term goal
 Sustainability(?)
                                         What is it for?
                                           Raising your code value
Dreadful dead end
Simplicity
Maximizing the amount of
     work not done
Car rental
        Lower interest rate
    Prevention            Legacy code
         Technical debt                                     Clean code
                                                                  that works
                     Refactoring
              Start-up

                                             Simple            What is it?
                         of work not done
                         Maximizing the amount
                                                                  Same input / output
                                                                  DIfferent architecture
  Short term goal
    Sustainability
                                                               What is it for?
                                                                 Raising your code value
Dreadful dead end                            Null interest rate
                                             Win-win short/long term
                                             Competitors
Thank you
Jacopo Romei
 jr@ideato.it




  via Quinto Bucci
         205
 47023 Cesena (FC)
  info AT ideato.it
   www.ideato.it

Más contenido relacionado

Similar a Refactoring

Agile Software Design
Agile Software DesignAgile Software Design
Agile Software Design
eduardomg23
 
Adopting Agile Tools & Methods In A Legacy Context
Adopting Agile Tools & Methods In A Legacy ContextAdopting Agile Tools & Methods In A Legacy Context
Adopting Agile Tools & Methods In A Legacy Context
Xavier Warzee
 
Pervasive content management
Pervasive content managementPervasive content management
Pervasive content management
Alfresco Software
 
Dharmes Mistry Tony De Bree S O A Business Persp V1b
Dharmes  Mistry    Tony De  Bree   S O A Business Persp V1bDharmes  Mistry    Tony De  Bree   S O A Business Persp V1b
Dharmes Mistry Tony De Bree S O A Business Persp V1b
SOA Symposium
 

Similar a Refactoring (20)

Introduction to Aspect Oriented Programming
Introduction to Aspect Oriented ProgrammingIntroduction to Aspect Oriented Programming
Introduction to Aspect Oriented Programming
 
2011.02.18 marco parenzan - case study. conversione di una applicazione for...
2011.02.18   marco parenzan - case study. conversione di una applicazione for...2011.02.18   marco parenzan - case study. conversione di una applicazione for...
2011.02.18 marco parenzan - case study. conversione di una applicazione for...
 
Agile Software Design
Agile Software DesignAgile Software Design
Agile Software Design
 
Tek Made Easy Overview
Tek Made Easy OverviewTek Made Easy Overview
Tek Made Easy Overview
 
Adopting Agile Tools & Methods In A Legacy Context
Adopting Agile Tools & Methods In A Legacy ContextAdopting Agile Tools & Methods In A Legacy Context
Adopting Agile Tools & Methods In A Legacy Context
 
Software Measurement for Lean Application Management
Software Measurement for Lean Application ManagementSoftware Measurement for Lean Application Management
Software Measurement for Lean Application Management
 
High-Level Synthesis Skill Development Needs - IEDEC
High-Level Synthesis Skill Development Needs - IEDECHigh-Level Synthesis Skill Development Needs - IEDEC
High-Level Synthesis Skill Development Needs - IEDEC
 
Iipcc 2012 ip valuation
Iipcc 2012 ip valuationIipcc 2012 ip valuation
Iipcc 2012 ip valuation
 
Pervasive content management
Pervasive content managementPervasive content management
Pervasive content management
 
Dharmes Mistry Tony De Bree S O A Business Persp V1b
Dharmes  Mistry    Tony De  Bree   S O A Business Persp V1bDharmes  Mistry    Tony De  Bree   S O A Business Persp V1b
Dharmes Mistry Tony De Bree S O A Business Persp V1b
 
Sapphire
SapphireSapphire
Sapphire
 
Electronic Business
Electronic BusinessElectronic Business
Electronic Business
 
Electronic Business
Electronic BusinessElectronic Business
Electronic Business
 
eBusiness
eBusinesseBusiness
eBusiness
 
Rhapsody reverseengineering
Rhapsody reverseengineeringRhapsody reverseengineering
Rhapsody reverseengineering
 
Intalio|Cloud Overview
Intalio|Cloud OverviewIntalio|Cloud Overview
Intalio|Cloud Overview
 
La produttivita nella gestione documentale secondo Microsoft
La produttivita nella gestione documentale secondo MicrosoftLa produttivita nella gestione documentale secondo Microsoft
La produttivita nella gestione documentale secondo Microsoft
 
Segundo Semario de SharePoint en Mexico por Joel Oleson
Segundo Semario de SharePoint en Mexico por Joel OlesonSegundo Semario de SharePoint en Mexico por Joel Oleson
Segundo Semario de SharePoint en Mexico por Joel Oleson
 
Keyword Services Platform (KSP) from Microsoft adCenter
Keyword Services Platform (KSP) from Microsoft adCenterKeyword Services Platform (KSP) from Microsoft adCenter
Keyword Services Platform (KSP) from Microsoft adCenter
 
Freenet project ralf_sigmund_opitz_activiti_days_2012
Freenet project ralf_sigmund_opitz_activiti_days_2012Freenet project ralf_sigmund_opitz_activiti_days_2012
Freenet project ralf_sigmund_opitz_activiti_days_2012
 

Más de Jacopo Romei

If you know where it will end up, it's not innovative enough - CloudConf 2017
If you know where it will end up, it's not innovative enough - CloudConf 2017If you know where it will end up, it's not innovative enough - CloudConf 2017
If you know where it will end up, it's not innovative enough - CloudConf 2017
Jacopo Romei
 
Looking for the right swan - LESS2012
Looking for the right swan - LESS2012Looking for the right swan - LESS2012
Looking for the right swan - LESS2012
Jacopo Romei
 
Test Driven Development with Symfony2
Test Driven Development with Symfony2Test Driven Development with Symfony2
Test Driven Development with Symfony2
Jacopo Romei
 
Let it flow, let it flow, let it flow!
Let it flow, let it flow, let it flow!Let it flow, let it flow, let it flow!
Let it flow, let it flow, let it flow!
Jacopo Romei
 
Project manager e sviluppo agile: separati in casa?
Project manager e sviluppo agile: separati in casa?Project manager e sviluppo agile: separati in casa?
Project manager e sviluppo agile: separati in casa?
Jacopo Romei
 
Project manager e sviluppo agile: separati in casa?
Project manager e sviluppo agile: separati in casa?Project manager e sviluppo agile: separati in casa?
Project manager e sviluppo agile: separati in casa?
Jacopo Romei
 

Más de Jacopo Romei (20)

Silicon doesn’t sweat
Silicon doesn’t sweatSilicon doesn’t sweat
Silicon doesn’t sweat
 
WebDeLDN - The outsourcing Veil of Maya
WebDeLDN - The outsourcing Veil of MayaWebDeLDN - The outsourcing Veil of Maya
WebDeLDN - The outsourcing Veil of Maya
 
If you know where it will end up, it's not innovative enough - CloudConf 2017
If you know where it will end up, it's not innovative enough - CloudConf 2017If you know where it will end up, it's not innovative enough - CloudConf 2017
If you know where it will end up, it's not innovative enough - CloudConf 2017
 
Negotiating contracts as user experiences - WIAD Rome 2016
Negotiating contracts as user experiences - WIAD Rome 2016Negotiating contracts as user experiences - WIAD Rome 2016
Negotiating contracts as user experiences - WIAD Rome 2016
 
LiquidO - No management from the trenches - Agile Saturday - October 2014, Ta...
LiquidO - No management from the trenches - Agile Saturday - October 2014, Ta...LiquidO - No management from the trenches - Agile Saturday - October 2014, Ta...
LiquidO - No management from the trenches - Agile Saturday - October 2014, Ta...
 
LiquidO™ - Mini IAD Trento
LiquidO™ - Mini IAD TrentoLiquidO™ - Mini IAD Trento
LiquidO™ - Mini IAD Trento
 
Agile Saturday #10 - Liquid Organization: Anti-Fragility Beyond Design
Agile Saturday #10 - Liquid Organization: Anti-Fragility Beyond DesignAgile Saturday #10 - Liquid Organization: Anti-Fragility Beyond Design
Agile Saturday #10 - Liquid Organization: Anti-Fragility Beyond Design
 
Capitalismo distribuito: tutto quello che sfuggì a zio Karl e che non deve sf...
Capitalismo distribuito: tutto quello che sfuggì a zio Karl e che non deve sf...Capitalismo distribuito: tutto quello che sfuggì a zio Karl e che non deve sf...
Capitalismo distribuito: tutto quello che sfuggì a zio Karl e che non deve sf...
 
Grab yourself an alibi - PHPDay 2013
Grab yourself an alibi - PHPDay 2013Grab yourself an alibi - PHPDay 2013
Grab yourself an alibi - PHPDay 2013
 
Looking for the right swan - LESS2012
Looking for the right swan - LESS2012Looking for the right swan - LESS2012
Looking for the right swan - LESS2012
 
Cercando il cigno giusto - AgileDay 2012
Cercando il cigno giusto - AgileDay 2012Cercando il cigno giusto - AgileDay 2012
Cercando il cigno giusto - AgileDay 2012
 
Cercando il cigno giusto
Cercando il cigno giustoCercando il cigno giusto
Cercando il cigno giusto
 
Debito Tecnico
Debito TecnicoDebito Tecnico
Debito Tecnico
 
Symfony CMF - PHP Conference Brazil 2011
Symfony CMF - PHP Conference Brazil 2011Symfony CMF - PHP Conference Brazil 2011
Symfony CMF - PHP Conference Brazil 2011
 
Test Driven Development with Symfony2
Test Driven Development with Symfony2Test Driven Development with Symfony2
Test Driven Development with Symfony2
 
Many to many: no man is an island
Many to many: no man is an islandMany to many: no man is an island
Many to many: no man is an island
 
Many to many: no man is an island
Many to many: no man is an islandMany to many: no man is an island
Many to many: no man is an island
 
Let it flow, let it flow, let it flow!
Let it flow, let it flow, let it flow!Let it flow, let it flow, let it flow!
Let it flow, let it flow, let it flow!
 
Project manager e sviluppo agile: separati in casa?
Project manager e sviluppo agile: separati in casa?Project manager e sviluppo agile: separati in casa?
Project manager e sviluppo agile: separati in casa?
 
Project manager e sviluppo agile: separati in casa?
Project manager e sviluppo agile: separati in casa?Project manager e sviluppo agile: separati in casa?
Project manager e sviluppo agile: separati in casa?
 

Último

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Último (20)

Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 

Refactoring

  • 3. Car rental Refactoring
  • 4. Car rental Legacy code Refactoring
  • 5. Car rental Legacy code Refactoring What is it? Same input / output DIfferent architecture
  • 6. Car rental Legacy code Refactoring What is it? Same input / output DIfferent architecture What is it for? Raising your code value
  • 7. Car rental Legacy code Clean code that works Refactoring What is it? Same input / output DIfferent architecture What is it for? Raising your code value
  • 8. Car rental Lower interest rate Prevention Legacy code Technical debt Clean code that works Refactoring What is it? Same input / output DIfferent architecture What is it for? Raising your code value
  • 9. 2005 Agile coach @jacoporomei Jacopo Romei PHP developer 1999 since Symfony2 CMF Opensource 2011 Symfony1 patches
  • 10.
  • 11. Car rental Lower interest rate Prevention Legacy code Technical debt Clean code that works Refactoring Start-up What is it? Same input / output DIfferent architecture Short term goal Sustainability(?) What is it for? Raising your code value Dreadful dead end
  • 12. Car rental Lower interest rate Prevention Legacy code Technical debt Clean code that works Refactoring Start-up Simple What is it? Same input / output DIfferent architecture Short term goal Sustainability(?) What is it for? Raising your code value Dreadful dead end
  • 14.
  • 15. Car rental Lower interest rate Prevention Legacy code Technical debt Clean code that works Refactoring Start-up Simple What is it? of work not done Maximizing the amount Same input / output DIfferent architecture Short term goal Sustainability What is it for? Raising your code value Dreadful dead end Null interest rate Win-win short/long term Competitors
  • 17. Jacopo Romei jr@ideato.it via Quinto Bucci 205 47023 Cesena (FC) info AT ideato.it www.ideato.it