Implementation Patterns

  Author:    Kent Beck
  ISBN:    0321413091
  Sales Rank:    88624
  Published:    2007-10-19
  Publisher:    Addison-Wesley Professional
  # Pages:    176
  Binding:    Paperback
  Avg. Rating:    4.0 based on 20 reviews
  Used Offers:    12 from $26.94
  Amazon Price:    $27.84
  (Data above last updated:  2008-08-21 06:23:38 EST)
  
  
Sort customer reviews by:
  
Show All Reviews on Page      Hide All Reviews on Page
   
  
Implementation Patterns
  

“Kent is a master at creating code that communicates well, is easy to understand, and is a pleasure to read. Every chapter of this book contains excellent explanations and insights into the smaller but important decisions we continuously have to make when creating quality code and classes.”

Erich Gamma, IBM Distinguished Engineer

“Many teams have a master developer who makes a rapid stream of good decisions all day long. Their code is easy to understand, quick to modify, and feels safe and comfortable to work with. If you ask how they thought to write something the way they did, they always have a good reason. This book will help you become the master developer on your team. The breadth and depth of topics will engage veteran programmers, who will pick up new tricks and improve on old habits, while the clarity makes it accessible to even novice developers.”

Russ Rufer, Silicon Valley Patterns Group

“Many people don’t realize how readable code can be and how valuable that readability is. Kent has taught me so much, I’m glad this book gives everyone the chance to learn from him.”

Martin Fowler, chief scientist, ThoughtWorks

“Code should be worth reading, not just by the compiler, but by humans. Kent Beck distilled his experience into a cohesive collection of implementation patterns. These nuggets of advice will make your code truly worth reading.”

Gregor Hohpe, author of Enterprise Integration Patterns

“In this book Kent Beck shows how writing clear and readable code follows from the application of simple principles. Implementation Patterns will help developers write intention revealing code that is both easy to understand and flexible towards future extensions. A must read for developers who are serious about their code.”

Sven Gorts

Implementation Patterns bridges the gap between design and coding. Beck introduces a new way of thinking about programming by basing his discussion on values and principles.”

Diomidis Spinellis, author of Code Reading and Code Quality

Software Expert Kent Beck Presents a Catalog of Patterns Infinitely Useful for Everyday Programming

Great code doesn’t just function: it clearly and consistently communicates your intentions, allowing other programmers to understand your code, rely on it, and modify it with confidence. But great code doesn’t just happen. It is the outcome of hundreds of small but critical decisions programmers make every single day. Now, legendary software innovator Kent Beck–known worldwide for creating Extreme Programming and pioneering software patterns and test-driven development–focuses on these critical decisions, unearthing powerful “implementation patterns” for writing programs that are simpler, clearer, better organized, and more cost effective.

Beck collects 77 patterns for handling everyday programming tasks and writing more readable code. This new collection of patterns addresses many aspects of development, including class, state, behavior, method, collections, frameworks, and more. He uses diagrams, stories, examples, and essays to engage the reader as he illuminates the patterns. You’ll find proven solutions for handling everything from naming variables to checking exceptions.

This book covers

  • The value of communicating through code and the philosophy behind patterns
  • How and when to create classes, and how classes encode logic
  • Best practices for storing and retrieving state
  • Behavior: patterns for representing logic, including alternative paths
  • Writing, naming, and decomposing methods
  • Choosing and using collections
  • Implementation pattern variations for use in building frameworks

Implementation Patterns will help programmers at all experience levels, especially those who have benefited from software patterns or agile methods. It will also be an indispensable resource for development teams seeking to work together more efficiently and build more maintainable software. No other programming book will touch your day-to-day work more often.

                  Reader Reviews 1 - 19 of 19                 
  
  
Review
Date
Review
Rating(5 High)
Review
Helpful
to:
Customer Review Reviewer
Info
Permanent
Link
Reader Reviews Below Sorted by Newest First
08-05-08 2 (NA)
(Hide Review...)  Terse and lack clarity
Reviewer Permalink
This book is too terse and the flow of thought is disorganized and lack clarity; at time too vague to know what he is thinking. Also lacking is subsections that branch off from main section. This book is about some implementation practices at code level.
I hope the author can revised this book.
(Review Data Last Updated: 2008-08-20 06:19:49 EST)
08-02-08 2 (NA)
(Hide Review...)  this topic from this author deserves a better book
Reviewer Permalink
The book is about writing readeable/maintanable code. It's an interesting/important subject.

The first few (1-3) pharagraph is good , they clearly explain the values/principles of the topic.
Then the book tries to apply these pricnciples in a structured way - classes, state, behaviour, methods. This is ok, but there's too much repetition going on. And the examples are very small/specific, some more complex/longer examples would be much better.

Then there's 2 whole paragraph about the performance characteristics of various collections (map,hash,etc.), and the description of the framework used to benchmark them. I don't think it has to do anyhting with the topic of the book, and it was probably included to increase the number of pages (by 30 to 150).

Finally, there's also a chapter "Evlolving Frameworks" which is mostly about JUnit 3->4 improvements done by the author. It's an interesting chapter focusing mainly on compatibility issues related to framworks.

So i think this topic from this author would deserve a much better book.
(Review Data Last Updated: 2008-08-06 05:05:17 EST)
05-25-08 5 (NA)
(Hide Review...)  This time Beck talks about patterns "in the small"
Reviewer Permalink
I typically enjoy reading pattern's books and this is going to be one of my all-time favorites. This time Beck talks about patterns "in the small", not the traditional kind of architectural patterns we are used to know. This book it's about those small decisions we make every time we write even a small piece of code. Somebody could think the word "patterns" is misused here, but I tend to disagree and, in the end, I don't even care that much. What really matters to me is that I found valuable advice inside this book and I really enjoyed reading it. In the past Beck's books were always worth reading for me, this one benefit from a more fluid and pleasant writing style too.
(Review Data Last Updated: 2008-08-02 07:08:12 EST)
03-28-08 3 3\3
(Hide Review...)  Needs More Meat
Reviewer Permalink
Well written and organized, with a lot of short code fragments to illustrate the main points. However I have agree with the reviewer who suggested that this book should have been titled "Kent Beck on writing readable code". I'd add to this that the book is quite Java specific. Fine with me, but this needs to be pointed out. The book would have been more interesting to me if it documented the different approaches in use (along with their advantages and drawbacks) e.g. for choosing between checked and unchecked exceptions. Instead we get a few general statements about what exceptions are, and some suggestions along the lines of "low-level exceptions should be wrapped with high-level exceptions". The level of detail is often not enough to be interesting for somewhat experienced developers, but the book may be too abstract for beginners. Given the compact size of the book you'll still get good value for your time from reading it. Just don't set your expectations too high -- or expect to get good value for your money...
(Review Data Last Updated: 2008-05-26 04:34:56 EST)
02-18-08 2 2\2
(Hide Review...)  Wrong title, outrageous price
Reviewer Permalink
The right title should be something like... "Kent Beck on writing readable code". The word "pattern" is way out of context, and will induce you to expect to find something way more precise, detailed and technical than then general advice that this book has to offer. This text could be considered like a chance to have a chat with Kent Beck discussing his ideas on the importance of writing readable code, and on general guidelines for code clarity and expressiveness. I have seen a review complaining about using Java for the examples, but the truth is, you will see very little code in this book. I am also not very sure of the idea target reader for this work. An experienced programmer has already figured out this general advice by himself, but the level of abstraction and detail is too terse to be useful to a beginner. I believe that more material, more detail and a more tutorial-like style could have made this book a worthwhile read for a junior developer. As it is , I have to say it, but I have to rate it as a pretty useless book. I am a big fan of Kent Beck, I admire his programming style, his 'very good habits' and all his did with the XP movement. Together with Martin Fowler, and Allen Holub he's one of those guys who can really have a deep influence on the way you program and think about Object Oriented programming, but this time he' really been a bit self condescending. And the price.. come on..40 bucks for this? You should be ashamed...


(Review Data Last Updated: 2008-03-28 14:45:13 EST)
02-11-08 3 (NA)
(Hide Review...)  Not much content ... Where's the Beef???
Reviewer Permalink
The material that is there is good, there just is not much of it. It does contain the basics of writing good clean code, but the weight of the content just isn't there.

The book is kind of like this review.... to the point, but light on content.

I'd recommend buying the cheap PDF version and printing it yourself.
(Review Data Last Updated: 2008-02-19 09:55:15 EST)
02-09-08 5 (NA)
(Hide Review...)  well said...
Reviewer Permalink
Just finished reading this book. Really enjoyed Kent Beck's short but precise and easy to follow through style and comments. Yes, as we develop software we seem to forget about the complexities we create and don't necessarily think about the "next" person whom may have to read the code that we write and extend as he/she sees fit.

Very clear point made at the start and at the end. We developers have to communicate better. So far in my profession, I have to maintain someone else's code as well, and as you may guess, it was not a pleasant experience, and I swear at times I rather had a root canal... :(

Anyway, great book. Read it! It has one typo that I scratched my hand for 30 seconds. The y-axis of Fig.9.2 on page 109 is missing. One can deduce it by looking at the subsequent figures, but since this is the first figure, I did not get it right away. Also coloring may be a better option since the lines are very close. I was also lost in "Performance Measurement" (last chapter), but it has been a long day, and probably my bad... And yes the points are made.

Overall enjoyed reading this book and definitely picked up some ideas and cemented down certain aspects of my development/design career. I think anyone, especially Java programming, would benefit by reading this book. Definitely recommend. Thanks, Kent. Cheers! - Baskin
(Review Data Last Updated: 2008-02-13 01:25:31 EST)
01-14-08 3 (NA)
(Hide Review...)  For Junior Programmers (or those who write unreadable code)
Reviewer Permalink
If you consider yourself a senior Java/OO developer, you won't gain much insight here. I found that I skimmed almost the entire book in a couple hours. One issue I had with the book is that it seemed where the conversation got slightly interesting or may have more to offer, the text dried up and moved on, where it may have been well-served by a code example.

This isn't too say that Beck's patterns aren't useful or well-advised, but the interested buyer should understand if the book will be useful, and this really depends on your skill and experience. In general, I think we could all benefit if everyone wrote more readable, maintainable, and flexible code.
(Review Data Last Updated: 2008-02-09 23:42:31 EST)
01-11-08 3 (NA)
(Hide Review...)  Not much material
Reviewer Permalink
Pros: Gave me a tiny bit more insight into how a programmer I admire (Beck) thinks. Also the hand-drawn diagrams were intuitivie and easy to grasp.

Cons: Not much material. Book could have been half of its already short length. You sort of got the sense Beck was running out of things to say - the chapter on Collections has graphs of the running times of various collections, and an Appendix is devoted to the code used to create the graphs.
(Review Data Last Updated: 2008-01-14 02:48:22 EST)
12-19-07 4 2\3
(Hide Review...)  Short, a little pedantic, but does convey a message
Reviewer Permalink
First, I'm not a Java fan, so using that as the basis for everything discussed left me cold from time to time. If the purpose of this book is to sell a philosophy of coding, why limit its audience to Java programmers?

On the other hand, if you know any OOP language, you should be able to follow most of this (having a Java book handy won't hurt!), so that's not a horrendous fault.

At times, I did feel a bit "talked down to", and I'm not convinced that Kent fully defended the underlying thesis that "good code matters". It matters to him, obviously, but does it matter to everyone? He says it should because we will spend less time on maintenance.. well, maybe, but I can point to thousands of hours of code where I've never done any maintenance, and have to wonder if the time saved with "sloppiness" there really is sucked away in the few cases where I come back for more work.. I'm not saying Kent is wrong, just that he hasn't proven his case.

So, defects: concentration of Java, pedantic, unproven case.

On the positive side, he's probably right, and it certainly isn't going to hurt anyone to think about his advice. Maybe it won't work for you, but some of it might be helpful and I can't see how it can hurt..
(Review Data Last Updated: 2008-01-11 07:18:02 EST)
12-14-07 5 0\1
(Hide Review...)  Great book sad to see some people do not see its value
Reviewer Permalink
This is my first book review ever. I really enjoyed this book a lot I find the author to be a very principled man focusing on delivering value to his consumers. It saddens me to see that there many developers who do not see the value in what Kent Beck is trying to teach which exaplains why so much code is so difficult to maintain. If your looking for a book about advanced programming techniques, wizardry and hacks this book is definitely not for you. If on the other you want to learn write code that is useful to people then I can not think of a better place to start then with this book. The book is short but I think this follows the authors values of Communication and Simplicity.



(Review Data Last Updated: 2007-12-19 20:14:24 EST)
12-13-07 3 (NA)
(Hide Review...)  Step back and think about basics ..
Reviewer Permalink
Being a huge Kent Beck fan ..I pre ordered this book and was very excited to see what he had to say this time , but the excitement fizzled out only after a few chapters .
The book is about "back to basics " kind of topics and is extremely boring . You would have extremely hard time picking it back up once you put it down .
Pick up Fowler's Refactoring instead ( if you haven't already) if you are looking to improve your fundamentals .
(Review Data Last Updated: 2007-12-19 20:14:24 EST)
12-09-07 5 (NA)
(Hide Review...)  Good short and sweet book for OO developers
Reviewer Permalink
I am a .NET developer but I have always liked books put out by Java developers because it seems they have paved the way in terms of agile practices and methodology.

This short read confirmed what I mostly knew already (and a few things that I didn't!), but you can never go wrong reading anything from Kent Beck or Martin Fowler. Sort of expensive book for being so small, but it was worth it.

Thanks Kent for another gem!
(Review Data Last Updated: 2007-12-13 10:24:36 EST)
12-06-07 5 (NA)
(Hide Review...)  The focus is on communication not wizard tricks
Reviewer Permalink
The reviews I've seen so far are bi-modal. Readers who were looking to communicate more effectively through their code found the book helpful. Readers who were looking for expert coding techniques were disappointed.
(Review Data Last Updated: 2007-12-09 15:38:21 EST)
11-30-07 5 (NA)
(Hide Review...)  Another Excellent book by Kent Beck
Reviewer Permalink
Kent Beck is like the Jonathan Livingston Seagull of programmers. When I read his writings or hear him speak, I can't help but think that he's been to some higher plane of programming and has come back to help the rest of us.

Implementation Patterns is his latest attempt to get the rest of us to think about more than what we are doing right here right now and to think about more than just ourselves. While some may not appreciate the author's philosophical approach to software development, I find it refreshing and challenging. He encourages us to look at our work as a contribution to society and not as just something we have to do to get a paycheck. He challenges us to think about others, those who will have to read and extend our code, and not just about ourselves. These principles are valuable in any occupation but are often overlooked in the technology fields.

Before I go too far and give the wrong impression, Implementation Patterns is not a philosophy book. It is a book about code, specifically Java code (one of it's strong points) with many useful ideas for writing better code. However, there is a philosophy behind these ideas and I believe that the philosophy is at least as valuable as the ideas themselves.

Now, on to the book.

The first two chapters, Introduction and Patterns, together serve as an introduction of just what the author has in mind when he refers to an "implementation pattern". This is especially helpful if you are familiar with the Gang of Four's Design Patterns book. This book does not follow the same format for describing implementation patterns as you might be used to with design patterns. Some patterns are described as code samples while others use the author's high tech modeling system.

The third chapter, A Theory of Programming, is my favorite. Here the author explains the ideas behind the patterns in the rest of the book. Here he talks about the values and principles that lead to the patterns. The values are Communication, Simplicity and Flexibility. The principles are Local Consequences, Minimize Repetition, Logic and Data Together, Symmetry, Declarative Expression and Rate of Change. The author describes the relationship between these elements, values, principles and patterns as follows: "The patterns describe what to do. The values provide motivation. The principles help translate motive into action."

Chapter four describes the motivation behind developing and using these implementation patterns. The basic premise is that change is costly and that attempts to reduce or eliminate change are futile, so why don't work at making change less costly by writing code that is more communicative, simpler and more flexible.

The actual implementation patterns are described in chapters five through nine. Each chapter covers a certain group of patterns: Class, State, Behavior, Methods and Collections. These chapters can be read in any order but the patterns within a chapter do seem to build on each other so it would be best to read each chapter front to back. The authors casual writing style makes this easy to do. The patterns themselves are mostly techniques you already use but might not think of as "patterns". Looking at them this way can make it easier to use them consistently and confidently.

Chapter ten is a look at the additional considerations when using implementation patterns in the context of building frameworks. The author uses his work on the JUnit framework as example. I have to admit, that since I don't write frameworks, I didn't spend too much time in this chapter. If you do build or maintain frameworks then this chapter looks like it will be very helpful.

Overall I found Implementation Patterns interesting and enjoyable to read. Reading it, however, is only the first step in getting the real value from it. I am now keeping it by my desk and referring to it as I work. It's relatively easy to understand these different patterns and even to describe them to others, but to get the most bang for the buck you need to put them to use.

So, in case you haven't figured this out by now, my recommendation is that you buy this book, read this book, use this book, become a better programmer and enjoy your work.
(Review Data Last Updated: 2007-12-05 23:44:44 EST)
11-26-07 3 0\3
(Hide Review...)  Rather Disappointing
Reviewer Permalink
The treatment in this book is rather basic. I had expected that Kent would build up from the basic premises but it seems to stop right there.Definitely for the novice.
(Review Data Last Updated: 2007-11-30 21:03:03 EST)
11-25-07 4 (NA)
(Hide Review...)  Good, Not Great
Reviewer Permalink
First off, this is a very thin tome. Which would make you expect a brisk pace, but instead, it's strangely just laconic. A lot of it is so elementary, it is kind of maddening. At one point, Kent tells us that if we need to fetch the time for a number of local variables, we ought use a local variable to 'freeze time.' The biggest problem here, however, is that when the book does turn to a topic that is worthy of some attention, the same paucity produces a feeling of futility: some of idioms, like collecting parameter, for instance, come up. No discussion of how it is a gateway to Visitor, nothing really interesting in fact, just a short little paragraph. Another section on parallel hierarchies ends with the author saying that he figured out how to solve his rather stilted example by introducing a CashFlow object. But he goes on without explaining it. Now, consider the fact that I believe books should ONLY take up topics like that one. This book is greatly confused about who it is for. The reality is this is probably best suited as a tome for people who have been doing basic programming but have not become really mature programmers. The problem is that it only does this in a way that I don't think will help those who have not crossed the bridge to do so. Ironically, I think the main use for this book will be to make people who are doing a lot of these things feel better about it.
(Review Data Last Updated: 2007-11-30 21:03:03 EST)
11-13-07 5 4\4
(Hide Review...)  Great guide for clearer, more maintainable code
Reviewer Permalink
This book is a wonderful, concise book on writing code that others can understand. I love Beck's premise in his intro: "Actually, this book is based on a rather fragile premise: that good code matters. I have seen too much ugly code make too much money..." A pretty amazing blurb, but Beck goes on throughout the book to prove why you should care about good code and how you can do a better job of writing non-ugly code that others can more easily grok out.

The book's chapters run a short gamut of great topics from programming theory to frameworks. One of the more intestesting bits I found was his discussion on symmetry, the idea that methods and classes should be well balanced. Methods such as "Add()" should be balanced by "Remove()", and that ideas in sections of code should be expressed in the same style, i.e.

void process() {
input();
count++;
output();
}

where input() and output() are intentions while count++ is an implementation. Esoteric, but the flow is much cleaner and clearer when you read the snippet below instead.

void process() {
input();
tally();
output();
}

I like the discussion in this book is on good naming styles, something I'm passionate about -- and am still not happy with my own practices in that area. There's also great text on state, behavior, and different ways to look at methods.

This book's an easy read. Beck's writing style is absolutely approachable, and the book's quite short at 155 or so pages.

Beck's book helps me to better consider how to rephrase my code so its intent is clearer and it's more maintainable by myself and others on my teams. Highly recommended.
(Review Data Last Updated: 2007-11-26 00:50:00 EST)
11-10-07 5 (NA)
(Hide Review...)  how to write readable, maintainable code.
Reviewer Permalink
"Implementation Patterns" is a great book to make better Java developers. The focus is to make us think about writing more readable and maintainable code. Kent Beck accomplishes this by going thru WHY we write things a certain way.

The audience is Java developers who know the basics of the language. If you have more experience, you will understand points on a deeper level. If you are newer to Java, you will form good habits.

There were just too many things I liked about this book, so here's a list:
- clear, concise and short snippets
- simple, bare-bones diagrams
- discussion on caveats and tradeoffs
- over 100 pages of patterns
- over 75 patterns
- about concepts and OO; not a style guide
- focus on values like communication and simplicity
- section on cross cutting principles like minimizing repetition
- short sections (Kent says some chapters long, but 30 patterns in 30 pages has great subdivision)
- how JUnit 4 design decisions follow theses patterns
- Kent even got in a dig about Sun never removing deprecated code
- bibliography with a blurb from Kent on each title
- pattern index on inside back cover in addition to traditional index


The book can be read straight thru or used as a reference. It's short, light and easy enough that it can be read on an airplane. (and in this case, it was.) It's also organized enough to go back and read about the pattern relevant at the time.
(Review Data Last Updated: 2007-11-13 15:34:29 EST)
  
                  Reader Reviews 1 - 19 of 19                 
  
  
  
  
  
  

Because the data used to generate this site come from outside sources, VeryWellSaid.com cannot guarantee the completeness or accuracy of the data.
Search VeryWellSaid™
Google
Web VeryWellSaid™
New subjects are added every week.
View Subjects Below by:
* Top Selling
 (click category name, left)
* Top-Rated Top Sellers
 (click 'Top Rated', right)
In the news...  
Dubai\UAE Top Rated
Influenza\Bird Flu Top Rated
Iraq Top Rated
Supreme Court Top Rated
All Books Top Rated
Arts Top Rated
Photography Top Rated
Digital Photography Top Rated
Digital Cameras Top Rated
Biography Top Rated
Business Top Rated
Management Top Rated
Marketing Top Rated
Sales Top Rated
Stocks Top Rated
Bonds Top Rated
Real Estate Top Rated
Trading Top Rated
Commodities Trading Top Rated
Time Management Top Rated
Starting A Business Top Rated
Children's Top Rated
Comics Top Rated
Computers Top Rated
PC Top Rated
Mac Top Rated
Programming Top Rated
Design Patterns Top Rated
.Net Top Rated
C# Top Rated
Vb.Net Top Rated
Asp.Net Top Rated
Java Top Rated
Python Top Rated
PHP Top Rated
Perl Top Rated
Javascript Top Rated
Ajax Top Rated
CSS Top Rated
Open Source Top Rated
SQL Top Rated
Databases Top Rated
Oracle Top Rated
MySql Top Rated
Sql Server Top Rated
IIS Top Rated
Apache Top Rated
Linux Top Rated
Windows Server Top Rated
Project Management Top Rated
HTML Top Rated
UML Top Rated
IT Certifications Top Rated
Cisco Certifications Top Rated
MCSE Top Rated
MCSD Top Rated
Cooking Top Rated
Italian Cooking Top Rated
Vegetarian Cooking Top Rated
Wine Top Rated
Engineering Top Rated
Entertainment Top Rated
Health Top Rated
Nutrition Top Rated
Dieting Top Rated
Sex Top Rated
History Top Rated
Military History Top Rated
British History Top Rated
Middle East History Top Rated
Land Battles Top Rated
Naval Warfare Top Rated
Air Warfare Top Rated
9/11 Top Rated
Terrorism Top Rated
Home Top Rated
Mortgage\Home Equity Loan Top Rated
Cars Top Rated
Car Buying Top Rated
Sports Cars Top Rated
Cat Top Rated
Humor Top Rated
Horror Top Rated
Law Top Rated
IP Law Top Rated
Legal History Top Rated
Fiction Top Rated
Oprah's Book Club Top Rated
Medicine Top Rated
Cancer Top Rated
Stroke Top Rated
Heart Disease Top Rated
Fertility Top Rated
Diabetes Top Rated
Pharmacology Top Rated
Back Problems Top Rated
Menopause Top Rated
Thyroid Top Rated
Pain Top Rated
Organic Chemistry Top Rated
Immune System Top Rated
Mystery Top Rated
Nonfiction Top Rated
Outdoors Top Rated
Running Top Rated
Radio Control Models Top Rated
Guns Top Rated
Parenting Top Rated
Divorce Top Rated
Professional Top Rated
Reference Top Rated
Religion Top Rated
Romance Top Rated
Science Top Rated
Physics Top Rated
Chemistry Top Rated
Astronomy Top Rated
Psychology Top Rated
Science Fiction Top Rated
Sports Top Rated
Teens Top Rated
Travel Top Rated
USA Top Rated
Europe Top Rated
France Top Rated
Italy Top Rated
England Top Rated
China Top Rated
All Books Arts Biography Click Here For An A-Z Index Of All 213 Best-Seller Subjects Business Children's Comics
Computers Cooking Engineering Entertainment Health History Home Horror Humor Law Fiction Medicine Mystery
Nonfiction Outdoors Parenting Professional Reference Religion Romance Science Sci-Fi Sports Teens Travel
In Association with Amazon.com

Cache miss
(not cached)