SlideShare a Scribd company logo
1 of 25
Download to read offline
3 Classics for every
developer!
Tom Henricksen
IT Career Coach, Author, Speaker
Refactoring
● Refactoring: Improving the Design of
Existing Code.
● Author: Martin Fowler
● Published: 1999
Refactoring
“Refactoring is the process of changing a software system
in such a way that it does not alter the external behavior of
the code yet improves its internal structure”
Refactoring
● Code works, hard to read
● Maintenance issue!
● Human readable
Refactoring
“Before you start refactoring, check that you
have a solid suite of tests. These tests must be
self-checking.”
Refactoring
● Improve design
● Find bugs
● Performance gains
Refactoring
● When
○ Add method
○ Fix bug
○ Code review
● Rule of 3
Refactoring
● When not
○ Mess
○ Deadline
Refactoring
● Bad Smells
○ Duplicated
○ Long method
○ Large class
○ Long parameter list
Refactoring
● Techniques
○ Extract Method/Class
○ Rename
○ Encapsulate Field
○ Magic number removal
Clean Code
● Clean Code: A Handbook of Agile Software
Craftsmanship
● Author: Robert C. Martin
● Published: 2008
Clean Code
“The answer confirmed my fears. They had rushed the
product to market and had made a huge mess in the code.
As they added more and more features, the code got worse
and worse until they simply could not manage it any longer.
It was the bad code that brought the company down.”
Robert C. Martin
Clean Code
● Simple
● Elegant
● No duplications
● Minimal dependencies
Clean Code
● Readability
○ Basics
■ variable names
■ method names
Clean Code
“Any fool can write code a computer can
understand. Good programmers write code
that humans can understand.”
-Martin Fowler
Clean Code
● Important
○ Easy to read
○ Easy to understand
○ Easy to change
● Cheaper to Maintain
Clean Code
● Good naming
○ Poor: int d;
○ Better: int days;
○ Best: int daysToCompletion;
Clean Code
● Bad comments
○ Redundant
getDaysToRenawal(); // gets days to renewal
● Funny
//Ninja code following this!
Clean Code
● Good naming conventions
● Small methods
● Small classes
Clean Code
● Boy Scout rule
● Smart vs Professional
The Pragmatic Programmer
● The Pragmatic Programmer: From
Journeyman to Master
● Author: Andrew Hunt, David Thomas
● Published: 1999
The Pragmatic Programmer
● Craftsman
● Think!
● Knowledge Portfolio
The Pragmatic Programmer
● DRY
● Master your tools
● Code generation
The Pragmatic Programmer
● Crash Early!
● “Shy” code
● Dig for requirements
The Pragmatic Programmer
● Design to Test
● Script it
● Communicate

More Related Content

More from Tom Henricksen

IBADD Tech Survival 101
IBADD Tech Survival 101IBADD Tech Survival 101
IBADD Tech Survival 101Tom Henricksen
 
Tips to Growing a Successful Business(In 15 Minutes) - Kimberly Baeth
Tips to Growing a Successful Business(In 15 Minutes) - Kimberly BaethTips to Growing a Successful Business(In 15 Minutes) - Kimberly Baeth
Tips to Growing a Successful Business(In 15 Minutes) - Kimberly BaethTom Henricksen
 
Deception of Distrust - Sarah Noll Wilson
Deception of Distrust - Sarah Noll WilsonDeception of Distrust - Sarah Noll Wilson
Deception of Distrust - Sarah Noll WilsonTom Henricksen
 
Marketing, Taxes, Media - Michael Libbie
Marketing, Taxes, Media - Michael LibbieMarketing, Taxes, Media - Michael Libbie
Marketing, Taxes, Media - Michael LibbieTom Henricksen
 
LeadN15 Panel - Dan Topf
LeadN15 Panel - Dan TopfLeadN15 Panel - Dan Topf
LeadN15 Panel - Dan TopfTom Henricksen
 
Socially Responsible Senior Leadership - Desmund Adams
Socially Responsible Senior Leadership - Desmund AdamsSocially Responsible Senior Leadership - Desmund Adams
Socially Responsible Senior Leadership - Desmund AdamsTom Henricksen
 
Head First Java Chapter 8
Head First Java Chapter 8Head First Java Chapter 8
Head First Java Chapter 8Tom Henricksen
 
Head First Java Chapter 7
Head First Java Chapter 7Head First Java Chapter 7
Head First Java Chapter 7Tom Henricksen
 
Head First Java Chapter 6
Head First Java Chapter 6Head First Java Chapter 6
Head First Java Chapter 6Tom Henricksen
 
Head First Java Chapter 5
Head First Java Chapter 5Head First Java Chapter 5
Head First Java Chapter 5Tom Henricksen
 
Head First Java Chapter 4
Head First Java Chapter 4Head First Java Chapter 4
Head First Java Chapter 4Tom Henricksen
 
Head First Java Chapter 3
Head First Java Chapter 3Head First Java Chapter 3
Head First Java Chapter 3Tom Henricksen
 
Head First Java Chapter 2
Head First Java Chapter 2Head First Java Chapter 2
Head First Java Chapter 2Tom Henricksen
 
Head First Java Chapter 1
Head First Java Chapter 1Head First Java Chapter 1
Head First Java Chapter 1Tom Henricksen
 
Technical screening .Net Developer
Technical screening  .Net DeveloperTechnical screening  .Net Developer
Technical screening .Net DeveloperTom Henricksen
 
Boost your tech IQ to boost IT recruiting success
Boost your tech IQ to boost IT recruiting successBoost your tech IQ to boost IT recruiting success
Boost your tech IQ to boost IT recruiting successTom Henricksen
 
Know thy client a technical primer for sales professionals
Know thy client  a technical primer for sales professionalsKnow thy client  a technical primer for sales professionals
Know thy client a technical primer for sales professionalsTom Henricksen
 
Becoming an Advanced Groovy Developer
Becoming an Advanced Groovy DeveloperBecoming an Advanced Groovy Developer
Becoming an Advanced Groovy DeveloperTom Henricksen
 
Becoming an Advanced Groovy Developer Spring One 2gx 2015
Becoming an Advanced Groovy Developer Spring One 2gx 2015Becoming an Advanced Groovy Developer Spring One 2gx 2015
Becoming an Advanced Groovy Developer Spring One 2gx 2015Tom Henricksen
 

More from Tom Henricksen (20)

TechnoLeaders
TechnoLeadersTechnoLeaders
TechnoLeaders
 
IBADD Tech Survival 101
IBADD Tech Survival 101IBADD Tech Survival 101
IBADD Tech Survival 101
 
Tips to Growing a Successful Business(In 15 Minutes) - Kimberly Baeth
Tips to Growing a Successful Business(In 15 Minutes) - Kimberly BaethTips to Growing a Successful Business(In 15 Minutes) - Kimberly Baeth
Tips to Growing a Successful Business(In 15 Minutes) - Kimberly Baeth
 
Deception of Distrust - Sarah Noll Wilson
Deception of Distrust - Sarah Noll WilsonDeception of Distrust - Sarah Noll Wilson
Deception of Distrust - Sarah Noll Wilson
 
Marketing, Taxes, Media - Michael Libbie
Marketing, Taxes, Media - Michael LibbieMarketing, Taxes, Media - Michael Libbie
Marketing, Taxes, Media - Michael Libbie
 
LeadN15 Panel - Dan Topf
LeadN15 Panel - Dan TopfLeadN15 Panel - Dan Topf
LeadN15 Panel - Dan Topf
 
Socially Responsible Senior Leadership - Desmund Adams
Socially Responsible Senior Leadership - Desmund AdamsSocially Responsible Senior Leadership - Desmund Adams
Socially Responsible Senior Leadership - Desmund Adams
 
Head First Java Chapter 8
Head First Java Chapter 8Head First Java Chapter 8
Head First Java Chapter 8
 
Head First Java Chapter 7
Head First Java Chapter 7Head First Java Chapter 7
Head First Java Chapter 7
 
Head First Java Chapter 6
Head First Java Chapter 6Head First Java Chapter 6
Head First Java Chapter 6
 
Head First Java Chapter 5
Head First Java Chapter 5Head First Java Chapter 5
Head First Java Chapter 5
 
Head First Java Chapter 4
Head First Java Chapter 4Head First Java Chapter 4
Head First Java Chapter 4
 
Head First Java Chapter 3
Head First Java Chapter 3Head First Java Chapter 3
Head First Java Chapter 3
 
Head First Java Chapter 2
Head First Java Chapter 2Head First Java Chapter 2
Head First Java Chapter 2
 
Head First Java Chapter 1
Head First Java Chapter 1Head First Java Chapter 1
Head First Java Chapter 1
 
Technical screening .Net Developer
Technical screening  .Net DeveloperTechnical screening  .Net Developer
Technical screening .Net Developer
 
Boost your tech IQ to boost IT recruiting success
Boost your tech IQ to boost IT recruiting successBoost your tech IQ to boost IT recruiting success
Boost your tech IQ to boost IT recruiting success
 
Know thy client a technical primer for sales professionals
Know thy client  a technical primer for sales professionalsKnow thy client  a technical primer for sales professionals
Know thy client a technical primer for sales professionals
 
Becoming an Advanced Groovy Developer
Becoming an Advanced Groovy DeveloperBecoming an Advanced Groovy Developer
Becoming an Advanced Groovy Developer
 
Becoming an Advanced Groovy Developer Spring One 2gx 2015
Becoming an Advanced Groovy Developer Spring One 2gx 2015Becoming an Advanced Groovy Developer Spring One 2gx 2015
Becoming an Advanced Groovy Developer Spring One 2gx 2015
 

3 Classics for every developer!