Benefits:
·
Describes
what refactoring and why it is important
·
Gives an
overview of “code smells” and how to detect them
·
Steps
through significant refactorings from Martin Fowler’s landmark Refactoring
book
·
Shows how
refactoring meshes with emerging lightweight object-oriented development
processes
·
Shows
how refactoring and testing can facilitate safe, graceful code evolution and
rehabilitation
Description:
With
the advent of eXtreme Programming (XP), refactoring code to make it more
maintainable and extendable has become a more mainstream practice. Refactoring is the process of changing software without
altering its external behavior. It
is done in such as way to improve the structure of the code to allow for later
extensions or to make maintenance of the code easier.
It is important to refactor your code in a disciplined way to minimize
disruptions and to allow the system to safely evolve. Improving a system’s structure and readability through
refactoring enhances its comprehensibility, readability, and maintainability.
This
tutorial will teach attendees how to recognize “code” smells”, or signs
that code needs to be refactored. It
takes you through Martin Fowler’s Refactoring book, teaching you the correct
discipline for refactoring your code. Java
code examples will be used to illustrate how and when to refactor.
Other languages such as Smalltalk, C# and C++ can be used if this is what the
majority of the attendees use as the primary language for their development.
The class will examine how to apply object-oriented design patterns to
guide your refactoring decisions.
The
course will consist of a mixture of lectures, reading groups, dialogs, and
refactoring labs. Fowler’s book
will be used as the focus of these workshops.
The attendees will read the refactorings from Fowler’s book, discuss
the details of the refactorings, and apply them in a group setting (preferably
drawn from code they are currently working on).
Who
Should Attend:
This course is recommended
for object-oriented designers and software developers; specifically those who
are creating object-oriented systems and frameworks. To complete the course
exercises, attendees should understand object-oriented programming concepts and
have some experience coding in Java, Smalltalk, C#, or C++.
It is also recommended that the attendees should already understand
Design Patterns, or have taken a
Design Patterns course.
The number of people that can attend this
course is 10 minimum and 20 maximum; in practice smaller numbers lead to
better interaction. We customize the course every time we give it, and
have different versions for Java, C++, and Smalltalk audiences.