SlideShare a Scribd company logo
1 of 16
Download to read offline
Working effectively  with legacy code 2010.12.23 geek—cafe, koduki - chapter 1 -
What is legacy code ?
not object oriented ?
NO
not beautiful ?
NO
nothing test ?
YES
If tests are written,  an awful code is  refactable.  However, even a wonderful code    is  difficult change  if there is no test.
1. Changing Software.
Four reasons to change software ,[object Object]
Fixing a bug
Refactoring
Optimizing
Change reason and type Adding a feature Fixing a bug Refactoring Optimizing Structure change change change New Function change Function change Resource change Test Code change Change
Points to change  ,[object Object]

More Related Content

Viewers also liked

Working effectively with legacy code chapter1
Working effectively with legacy code chapter1Working effectively with legacy code chapter1
Working effectively with legacy code chapter1Hiroaki NAKADA
 
Rubykaigi09 Webでるりまを検索するn個の方法
Rubykaigi09 Webでるりまを検索するn個の方法Rubykaigi09 Webでるりまを検索するn個の方法
Rubykaigi09 Webでるりまを検索するn個の方法Hiroaki NAKADA
 
光のツールExcelに闇Rubyの力を注いでみた
光のツールExcelに闇Rubyの力を注いでみた光のツールExcelに闇Rubyの力を注いでみた
光のツールExcelに闇Rubyの力を注いでみたHiroaki NAKADA
 
Rakuten New MySQL Backup System With Xtrabackup
Rakuten New MySQL Backup System With XtrabackupRakuten New MySQL Backup System With Xtrabackup
Rakuten New MySQL Backup System With XtrabackupRakuten Group, Inc.
 
How to make keynote like presentation with markdown
How to make keynote like presentation with markdownHow to make keynote like presentation with markdown
How to make keynote like presentation with markdownHiroaki NAKADA
 
Conjuntos-Unión-Intersección
Conjuntos-Unión-IntersecciónConjuntos-Unión-Intersección
Conjuntos-Unión-IntersecciónA01004512
 

Viewers also liked (8)

Working effectively with legacy code chapter1
Working effectively with legacy code chapter1Working effectively with legacy code chapter1
Working effectively with legacy code chapter1
 
Rubykaigi09 Webでるりまを検索するn個の方法
Rubykaigi09 Webでるりまを検索するn個の方法Rubykaigi09 Webでるりまを検索するn個の方法
Rubykaigi09 Webでるりまを検索するn個の方法
 
From document-to-code
From document-to-codeFrom document-to-code
From document-to-code
 
光のツールExcelに闇Rubyの力を注いでみた
光のツールExcelに闇Rubyの力を注いでみた光のツールExcelに闇Rubyの力を注いでみた
光のツールExcelに闇Rubyの力を注いでみた
 
Rakuten New MySQL Backup System With Xtrabackup
Rakuten New MySQL Backup System With XtrabackupRakuten New MySQL Backup System With Xtrabackup
Rakuten New MySQL Backup System With Xtrabackup
 
How to make keynote like presentation with markdown
How to make keynote like presentation with markdownHow to make keynote like presentation with markdown
How to make keynote like presentation with markdown
 
Conjuntos-Unión-Intersección
Conjuntos-Unión-IntersecciónConjuntos-Unión-Intersección
Conjuntos-Unión-Intersección
 
Maven基礎
Maven基礎Maven基礎
Maven基礎
 

Similar to Working with legacy code: Tests make all code refactable

Working effectively with legacy codes
Working effectively with legacy codesWorking effectively with legacy codes
Working effectively with legacy codesAli Shariat
 
Test Driven Design
Test Driven DesignTest Driven Design
Test Driven DesignSaad Ahmed
 
Test Driven Design - GDG DevFest Istanbul 2016
Test Driven Design - GDG DevFest Istanbul 2016Test Driven Design - GDG DevFest Istanbul 2016
Test Driven Design - GDG DevFest Istanbul 2016Lemi Orhan Ergin
 
The Smells Of Bad Design
The Smells Of Bad DesignThe Smells Of Bad Design
The Smells Of Bad DesignJames Peckham
 
The Smells Of Bad Design
The Smells Of Bad DesignThe Smells Of Bad Design
The Smells Of Bad Designguest446c0
 
Copilot to Cover: Why AI can't replace developers with robots, but can make l...
Copilot to Cover: Why AI can't replace developers with robots, but can make l...Copilot to Cover: Why AI can't replace developers with robots, but can make l...
Copilot to Cover: Why AI can't replace developers with robots, but can make l...Andy Piper
 
Should you be your own judge?
Should you be your own judge?Should you be your own judge?
Should you be your own judge?Achyut Pokhrel
 
Working Effectively with Legacy Code: Lessons in Practice
Working Effectively with Legacy Code: Lessons in PracticeWorking Effectively with Legacy Code: Lessons in Practice
Working Effectively with Legacy Code: Lessons in PracticeAmar Shah
 
Bdd masterclass
Bdd masterclassBdd masterclass
Bdd masterclassMagenTys
 
Treating test code as production code
Treating test code as production codeTreating test code as production code
Treating test code as production codelavanyam210
 
When you get lost in api testing #ForumPHP
When you get lost in api testing #ForumPHPWhen you get lost in api testing #ForumPHP
When you get lost in api testing #ForumPHPPaula Čučuk
 
Test driven development
Test driven developmentTest driven development
Test driven developmentnamkha87
 
Test-Driven Design - ¿Porqué?
Test-Driven Design - ¿Porqué?Test-Driven Design - ¿Porqué?
Test-Driven Design - ¿Porqué?David Alfaro
 
Majcon at abap code_retreat_stjohann_2017_fast track tdd
Majcon at abap code_retreat_stjohann_2017_fast track tddMajcon at abap code_retreat_stjohann_2017_fast track tdd
Majcon at abap code_retreat_stjohann_2017_fast track tddt.eazzy
 
Refactoring, 2nd Edition
Refactoring, 2nd EditionRefactoring, 2nd Edition
Refactoring, 2nd Editionjexp
 
5M lines of code migration
5M lines of code migration5M lines of code migration
5M lines of code migrationmikaelbarbero
 

Similar to Working with legacy code: Tests make all code refactable (20)

Refactoring
RefactoringRefactoring
Refactoring
 
Working effectively with legacy codes
Working effectively with legacy codesWorking effectively with legacy codes
Working effectively with legacy codes
 
Test Driven Design
Test Driven DesignTest Driven Design
Test Driven Design
 
Test Driven Design - GDG DevFest Istanbul 2016
Test Driven Design - GDG DevFest Istanbul 2016Test Driven Design - GDG DevFest Istanbul 2016
Test Driven Design - GDG DevFest Istanbul 2016
 
Peer Review Guidelines
Peer Review GuidelinesPeer Review Guidelines
Peer Review Guidelines
 
The Smells Of Bad Design
The Smells Of Bad DesignThe Smells Of Bad Design
The Smells Of Bad Design
 
The Smells Of Bad Design
The Smells Of Bad DesignThe Smells Of Bad Design
The Smells Of Bad Design
 
Copilot to Cover: Why AI can't replace developers with robots, but can make l...
Copilot to Cover: Why AI can't replace developers with robots, but can make l...Copilot to Cover: Why AI can't replace developers with robots, but can make l...
Copilot to Cover: Why AI can't replace developers with robots, but can make l...
 
Working Effectively with Legacy Code
Working Effectively with Legacy CodeWorking Effectively with Legacy Code
Working Effectively with Legacy Code
 
Should you be your own judge?
Should you be your own judge?Should you be your own judge?
Should you be your own judge?
 
Working Effectively with Legacy Code: Lessons in Practice
Working Effectively with Legacy Code: Lessons in PracticeWorking Effectively with Legacy Code: Lessons in Practice
Working Effectively with Legacy Code: Lessons in Practice
 
Bdd masterclass
Bdd masterclassBdd masterclass
Bdd masterclass
 
Treating test code as production code
Treating test code as production codeTreating test code as production code
Treating test code as production code
 
When you get lost in api testing #ForumPHP
When you get lost in api testing #ForumPHPWhen you get lost in api testing #ForumPHP
When you get lost in api testing #ForumPHP
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
Test-Driven Design - ¿Porqué?
Test-Driven Design - ¿Porqué?Test-Driven Design - ¿Porqué?
Test-Driven Design - ¿Porqué?
 
Majcon at abap code_retreat_stjohann_2017_fast track tdd
Majcon at abap code_retreat_stjohann_2017_fast track tddMajcon at abap code_retreat_stjohann_2017_fast track tdd
Majcon at abap code_retreat_stjohann_2017_fast track tdd
 
Refactoring, 2nd Edition
Refactoring, 2nd EditionRefactoring, 2nd Edition
Refactoring, 2nd Edition
 
software myths
software mythssoftware myths
software myths
 
5M lines of code migration
5M lines of code migration5M lines of code migration
5M lines of code migration
 

Working with legacy code: Tests make all code refactable