3 classics for every developer!

25
3 Classics for every developer! Tom Henricksen IT Career Coach, Author, Speaker

Upload: tom-henricksen

Post on 13-Jan-2015

86 views

Category:

Documents


1 download

DESCRIPTION

Every developer should read these three software development classics. First up is Refactoring from Martin Fowler. Next up is Clean Code from Robert C. Martin, and the last classic is The Pragmatic Programmer by Andrew Thomas and David Hunt. These three books teach many good lessons the new and experienced developer need to learn.

TRANSCRIPT

Page 1: 3 Classics for every developer!

3 Classics for every developer!Tom Henricksen

IT Career Coach, Author, Speaker

Page 2: 3 Classics for every developer!

Refactoring● Refactoring: Improving the Design of

Existing Code. ● Author: Martin Fowler● Published: 1999

Page 3: 3 Classics for every developer!

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”

Page 4: 3 Classics for every developer!

Refactoring● Code works, hard to read● Maintenance issue!● Human readable

Page 5: 3 Classics for every developer!

Refactoring“Before you start refactoring, check that you have a solid suite of tests. These tests must be self-checking.”

Page 6: 3 Classics for every developer!

Refactoring● Improve design● Find bugs● Performance gains

Page 7: 3 Classics for every developer!

Refactoring● When

○ Add method○ Fix bug○ Code review

● Rule of 3

Page 8: 3 Classics for every developer!

Refactoring● When not

○ Mess○ Deadline

Page 9: 3 Classics for every developer!

Refactoring● Bad Smells

○ Duplicated○ Long method○ Large class○ Long parameter list

Page 10: 3 Classics for every developer!

Refactoring● Techniques

○ Extract Method/Class○ Rename○ Encapsulate Field○ Magic number removal

Page 11: 3 Classics for every developer!

Clean Code● Clean Code: A Handbook of Agile Software

Craftsmanship● Author: Robert C. Martin● Published: 2008

Page 12: 3 Classics for every developer!

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

Page 13: 3 Classics for every developer!

Clean Code● Simple● Elegant● No duplications● Minimal dependencies

Page 14: 3 Classics for every developer!

Clean Code● Readability

○ Basics■ variable names■ method names

Page 15: 3 Classics for every developer!

Clean Code“Any fool can write code a computer can understand. Good programmers write code that humans can understand.”

-Martin Fowler

Page 16: 3 Classics for every developer!

Clean Code● Important

○ Easy to read○ Easy to understand○ Easy to change

● Cheaper to Maintain

Page 17: 3 Classics for every developer!

Clean Code● Good naming

○ Poor: int d;○ Better: int days;○ Best: int daysToCompletion;

Page 18: 3 Classics for every developer!

Clean Code● Bad comments

○ RedundantgetDaysToRenawal(); // gets days to renewal● Funny//Ninja code following this!

Page 19: 3 Classics for every developer!

Clean Code● Good naming conventions● Small methods● Small classes

Page 20: 3 Classics for every developer!

Clean Code● Boy Scout rule● Smart vs Professional

Page 21: 3 Classics for every developer!

The Pragmatic Programmer● The Pragmatic Programmer: From

Journeyman to Master● Author: Andrew Hunt, David Thomas● Published: 1999

Page 22: 3 Classics for every developer!

The Pragmatic Programmer● Craftsman● Think!● Knowledge Portfolio

Page 23: 3 Classics for every developer!

The Pragmatic Programmer● DRY● Master your tools● Code generation

Page 24: 3 Classics for every developer!

The Pragmatic Programmer● Crash Early!● “Shy” code● Dig for requirements

Page 25: 3 Classics for every developer!

The Pragmatic Programmer● Design to Test● Script it● Communicate