Dear Kent & list members,
after getting IP last tuesday, reading and rereading it over the last
couple of days I feel now fit to comment on it. First of all I want to
thank Kent for sharing his experiences and allowing us to reflect the
things we do and rethink daily decisions.
I shortly repeat my introduction that I already sent to Kent (sorry for
that).
I bought the book for several reasons. The first is having the opportunity
to share the many experiences you made as developer, consultant,
teacher, writer, speaker and last but not least as Agitar fellow. You have
written and seen code that keeps to these values and was part of
successful
applications.
I want to reflect the way I'm currently doing things and learn from the
experience of others. Second I wanted some great material for bringing the
essence of good implementation practice to my fellow developers. When
coaching I mostly build on my own knowledge and experience and I'd like to
have more material to support my approaches. I've been developing Java
software for 11 years now. It is fascinating which way Java took during
these years and how many tremendous people contributed to its popularity.
While reading the book there were so many things that came to my mind so
that writing them down produced a quite lengthy review of the book.
Kent invited me to join this list to have a lively discussion about the
book. I originally wrote the review directed to Kent and I hope you
forgive me not rewriting the adressing.
If I'm to blunt please excuse it. My wife told me that German and American
culture differ there quite a lot.
Review: Implementation Patterns
The first thing I noticed was, that nowhere in the title and on neither
front nor back-cover the word Java appears. Just in the introduction you
state that these implementation patterns " are Java programming habits".
If one reads the TOC it becomes obvious that the Java language was the
language of choice for deriving these concrete implementation patterns.
Perhaps possible subtitles could have been
* Communicative, Simple and Flexible Java (in memory of Effective Java)
* Writing Readable/Intelligible Java Code
* Java Best Practices
If I bought the book without being a Java programmer I would be a bit
disappointed, as there are other OO-languages with different facets that
could also be used and supported by Implementation Patterns. I also think
that concentrating on concrete Java helps the applicability but
abstracting the patterns enough to be easily applicable to other languages
would have been helpful. Perhaps this is a task for an online community.
I don't know where to start. So I start at the beginning and carry through
to the end of the book. The things I missed are listed at the end of the
review.
The discussion of values, principles and patterns/practices is well known
from the XP books.
I would like to ask why you excluded: Feedback, Courage and
Respect from the values as these are also conveyed in the implementation
patterns you describe. Especially respect to the people who use, read,
modify and extend your code and the courage for removing unnecessary
flexibility or breaking traditions. The feedback aspect is missing a bit
as you mainly take the role of the developer who's writing the code and
not the ones who read, use or change it.
By the way as this trinity of read, use and change together with the
values appears that often in the book, it would be great if there would be
a single synonym for that. I already thought about it but got no real
answer. The closest thing would be: human oriented programming :)
Michael