- Paperback: 368 pages
- Publisher: Pragmatic Bookshelf; 1 edition (October 20, 2013)
- Language: English
- ISBN-10: 1937785483
- ISBN-13: 978-1937785482
- Product Dimensions: 7.5 x 0.8 x 9.2 inches
- Shipping Weight: 1.5 pounds (View shipping rates and policies)
- Average Customer Review: 15 customer reviews
Amazon Best Sellers Rank:
#752,025 in Books (See Top 100 in Books)
- #257 in Books > Computers & Technology > Programming > Software Design, Testing & Engineering > Testing
- #386 in Books > Computers & Technology > Programming > Languages & Tools > C & C++ > C++
- #776 in Books > Computers & Technology > Programming > Software Design, Testing & Engineering > Object-Oriented Design
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Modern C++ Programming with Test-Driven Development: Code Better, Sleep Better 1st Edition
Use the Amazon App to scan ISBNs and compare prices.
All Books, All the Time
Read author interviews, book reviews, editors picks, and more at the Amazon Book Review. Read it now
Frequently bought together
Customers who bought this item also bought
Customers who viewed this item also viewed
""Jeff Langr has written another excellent book. This time he brings Test-Driven Development to the world of C++. Jeff's starting example brings us face to face with the stark simplicity of good TDD. He explains why we work that way and then provides key practical details, all the way through test doubles, working with legacy code, threading, and more. This one is a keeper for anyone working with C++!""--Ron Jeffries, Co-creator of the Extreme Programming methodology
""Jeff Langr has written the best C++ book in years. Modern C++ Programming with Test-Driven Development is the perfect mixture of theory and practice. The abstractions are explained with clarity and gusto, but the details are right there when you need them. It's sure to be an instant classic, in C++ and in TDD both.""--Michael D. Hill, XP coach and writer
""Jeff is an expert software craftsman, and in this book he shares his considerable wisdom about crafting great software. This book is not about testing, though you will learn valuable testing techniques. It is about improving your skills, code, products, and life through test-driving. Whether you're a novice, expert, or in between, Jeff will show you the how and the why of an expert who test-drives better products with C++.""--James W. Grenning, Author of "Test-Driven Development for Embedded C"
About the Author
Jeff Langr wrote Agile in a Flash with Tim Ottinger. It's a unique set of reference and recommendation cards that you can find tacked to many monitors and walls in agile shops. He has written other books and more than one hundred articles on software development, and trains and consults in software development, including test-driven development.
Top customer reviews
There was a problem filtering reviews right now. Please try again later.
I was so excited when I found Jeff's book on unit testing (TDD) and C++11x along with Google Mock (and Google Test) for C++ based testing.
Reading through one of the free chapters was eye opening and providing some great advice on testing.
Do as little as possible, even if that means taking shortcuts to write tests faster.
Jeff provides the example where he puts the Soundex class in the same file as the SoundexTest.cpp file, instead of breaking it apart. The reason being is that you'll spend too much time switching between files as you work between tests and implementation. It's the little time saving tips like these, which I really appreciate learning from an expert.
"It’s a calculated effort to save time in a manner that incurs no short-term complexity costs. The hypothesis is that the cost of splitting files later is less than the overhead of flipping between files the whole time. As you shape the design of a new behavior using TDD, you’ll likely be changing the interface often. Splitting out a header file too early would only slow you down. As far as “dangerous” is concerned: are you ever going to forget to split the files before checking in?
Langr, Jeff (2013-10-10). Modern C++ Programming with Test-Driven Development: Code Better, Sleep Better (p. 19). Pragmatic Bookshelf. Kindle Edition. "
I could start apply the thinking in my project, and I start to reap the benefit. I am no longer in fear of refactoring. As a matter of fact TDD gives you the confidence you might lack to sometimes mess around with your code and try new stuff just for the fun of it.
I am sure that hard-core, long-bearded, seasoned C++-programmers might find this book a tad shallow. But for me it was the perfect fit. I am glad I bought it.
Uncle Bob as indicated in the foreword, the title is not the best. Nor do I agree with the title suggests Robert Martin. The title that best describes it is "Introduction to TDD by examples in C++". You will not find anything they have not seen in tutorials and in common internet discussions. The book is not very long and most of its contents are the examples with the refactors step by step. Langr makes a good attempt to explain what it does as it develops the examples, though often repetitive and a bit inconsistent at conventions.
Some of his thoughts on occasion contradict, but understandable since he tries to be pragmatic in his decisions through the examples, which should be better explained. An inexperienced reader might take quite literally many of the tips that in my opinion are generally not the best options. This kind of advice and rules, out of context cause many developers to perform stupid things.
All you have modern C++ is the use of some things in the new C++11 standard: use of 'auto', range-based for loop, some lambdas, not consistently use uniform initialization. Disuse many features and best practices in C++11.
The idea of the review is not to touch all points and tips that I have an opinion. I will probably make a more extensive review on a blog. For now, I recommend to any reader to read it critically and do not accept the ideas without seeking alternatives, understand the context in which it is developing and consult with more experienced colleagues.
Most recent customer reviews
I found especially interesting the part about testing in a multithread environment.