[Speakers] free seminars on design patterns and refactoring
Alan Shalloway
alshall at netobjectives.com
Tue Mar 12 20:57:49 PST 2002
Steve:
My name is Alan Shalloway, the co-author of Design Patterns Explained: A New
Perspective on Object-Oriented Design. I will be coming to the Bay area
twice in the upcoming months and will be putting on a series of free
seminars. I think your group would be interested in these talks. Please
forward the message after my signature on to them.
Thanks,
Alan Shalloway
Sr Consultant, www.netobjectives.com
---------------------------------------------------------
* Sign up for our free newsletter by sending an e-mail to
info at netobjectives.com
* Learn about and join our design pattern community of practice by going to
www.netobjectives.com/dpexplained
* Jim Trott's & my book - Design Patterns Explained: A New Perspective on
Object-Oriented Design is now available
* Scott Bain's & my new CD based XML training is now available as well
My name is Alan Shalloway, the co-author of Design Patterns Explained: A New
Perspective on Object-Oriented Design. I will be coming to the Bay area
twice in the upcoming months and will be putting on a series of free
seminars. This e-mail describes: 1) two of the seminars (one is being
offered twice)
2) describes a course also to be offered in the area
3) invites a user group to host me for a fourth talk on April 24.
Summary of seminars (go to http://www.netobjectives.com/pr_future.htm to get
links
to all of these on the web for instructions on how to register).
March 26: Refactoring, Design Patterns and Extreme Programming, San
Francisco
March 27: Pattern Oriented Development: A Practical Approach to Software
Development, Palo Alto
April 22: Pattern Oriented Development: A Practical Approach to Software
Development, Pleasanton (sponsored by East Bay IEEE)
***************************
Refactoring, Design Patterns and Extreme Programming
The two approaches of creating quality, high-level, up-front designs with
design patterns or relying on emergent design using refactoring as espoused
by XP seem opposed to each other. This seminar illustrates why design
patterns and refactoring are actually two sides of the same coin.
With the recent interest in Extreme Programming, many people are learning
the importance of refactoring. According to Martin Fowler:
"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. It is a disciplined way to clean up code that minimizes
the chances of introducing bugs. In essence when you refactor you are
improving the design of the code after it has been written."
Refactoring is very important as a method of improving design to accommodate
new requirements. It is often touted as a way to fix code mistakes.
However, avoiding the code mistakes in the first place is a better way to
go. In this case, refactoring is used to accommodate design changes
required by new requirements.
Coding mistakes usually arise from improper attention to the basics of
coding:
loose coupling
high cohesion
no redundancy
programming by intention
Understanding these principles is essential if extreme programming methods
are to be followed. This seminar walks through an evolving code example to:
illustrate how to follow the above principles
illustrate what refactoring is
show how refactoring can improve designs to accommodate change
The code examples used contain a couple of design patterns. Thus, the
seminar also illustrates how good, high-level designs can be accomplished by
the application of good local coding rules.
******************
Pattern Oriented Development: Using Design Patterns In Analysis Through
Implementation.
This seminar discusses how design patterns can be used to improve the entire
software development process - not just the design aspect of it. Design
patterns are usually thought of as being limited to solving local
design/implementation problems. However, they can be very useful in:
* shifting from a noun/verb decomposition of your problem domain space to
one where you look for variations in concepts - this results in more
maintainable code
* avoiding "paralysis by analysis"
* creating a larger perspective on how to do and manage software development
*******************************************************
2 Day Designs Pattern Class (see
http://www.netobjectives.com/courses/c_pubsched.htm for more information).
The course goes beyond merely teaching several design patterns. It also
teaches the principles and strategies that make design patterns good
designs. This enables students to use these advanced design techniques in
their problems whether design patterns are even present. After teaching
several patterns and the principles underneath them, the course goes further
by showing how patterns can work together to create robust, flexible,
maintainable designs. Pricing and up to date location/date info can be seen
at http://www.netobjectives.com/courses/c_pubsched.htm.
Biography of Presenter:
Alan is the founder of and a senior consultant with Net Objectives. Since
1981, he has been both an OO consultant and developer of software in several
industries. His clients includes both Fortune 500 and small companies. In
addition to consulting and mentoring, Alan teaches design patterns, Java,
C++, and agile software development methodologies including XP and a
light-weight version of RUP. He also gives tutorials at several conferences
world-wide each year. His and James Trott's book: Design Patterns Explained:
A New Perspective on Object-Oriented Design, has been very highly rated.
Alan has a Masters in Computer Science from MIT.
***************************************************************
If you would like me to present a free seminar at your group on April 24th,
please contact me off-line at alshall at netobjectives.com
To register for any of these seminars, please go to
http://www.netobjectives.com/pr_future.htm, click the seminar in question,
and follow registration information there.
speakers at svlug.org
More information about the Speakers
mailing list