Industrial-Sized Deals Best Books of the Month Shop Women's Handbags Learn more nav_sap_SWP_6M_fly_beacon Deradoorian Storm Fire TV Stick Subscribe & Save Find the Best Purina Pro Plan for Your Pet Shop Popular Services Home Theater Setup Plumbing Services Assembly Services Shop all TransparentGGWin TransparentGGWin TransparentGGWin  Amazon Echo Fire HD 6 Kindle Voyage The Walking Dead\ Shop Back to School with Amazon Back to School with Amazon Outdoor Recreation Deal of the Day

API Design for C++ 1st Edition

39 customer reviews
ISBN-13: 978-0123850034
ISBN-10: 0123850037
Why is ISBN important?
ISBN
This bar-code number lets you verify that you're getting exactly the right version or edition of a book. The 13-digit and 10-digit formats both work.
Scan an ISBN with your phone
Use the Amazon App to scan ISBNs and compare prices.
Sell yours for a Gift Card
We'll buy it for $18.30
Learn More
Trade in now
Have one to sell? Sell on Amazon
Buy used
$36.24
Buy new
$43.47
More Buying Choices
30 New from $43.47 14 Used from $36.24
Free Two-Day Shipping for College Students with Amazon Student Free%20Two-Day%20Shipping%20for%20College%20Students%20with%20Amazon%20Student


InterDesign Brand Store Awareness Textbooks
$43.47 FREE Shipping. Only 14 left in stock (more on the way). Ships from and sold by Amazon.com. Gift-wrap available.

Frequently Bought Together

API Design for C++ + The C++ Standard Library: A Tutorial and Reference (2nd Edition) + Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14
Price for all three: $129.21

Buy the selected items together

Editorial Reviews

Review

Martin Reddy draws from his experience on large scale, collaborative software projects to present patterns and practices that provide real value to individual developers as well as organizations. API Design for C++ explores often overlooked issues, both technical and non- technical, contributing to successful design decisions that produce high quality, robust, and long-lived APIs. - Eric Gregory, Software Architect, Pixar Animation Studios

"Intended for programmers with intermediate to advanced skills in the C++ programming language, this guide to the building of useful and robust application programming interfaces (APIs) provides practical instruction for software engineers developing systems on which downstream software engineers depend. The work provides a methodical approach to API design covering solution based API design, performance, versioning, documentation, testing, scripting, extensibility and libraries. The work includes numerous illustrations and code examples and access to additional online resources is provided. Reddy is a software development consultant."--Book News, Reference & Research

From the Back Cover

Practical techniques of API design that produce robust code for the long term

API Design for C++ Martin Reddy

Martin Reddy draws from his experience on large scale, collaborative software projects to present patterns and practices that provide real value to individual developers as well as organizations. API Design for C++ explores often overlooked issues, both technical and non-technical, contributing to successful design decisions that product high quality, robust, and long-lived APIs. --Eric Gregory, Software Architect, Pixar Animation Studios

The design of application programming interfaces can affect the behavior, capabilities, stability, and ease of use of end-user applications. With this book, you will learn how to design a good API for large-scale long-term projects. With extensive C++ code to illustrate each concept, API Design for C++ covers all of the strategies of world-class API development. Martin Reddy draws on over fifteen years of experience in the software industry to offer in-depth discussions of interface design, documentation, testing, and the advanced topics of scripting and plug-in extensibility. Throughout, he focuses on various API styles and patterns that will allow you to produce elegant and durable libraries.

Features

  • The only book that teaches the strategies of C++ API development, including design, versioning, documentation, testing, scripting, and extensibility.
  • Extensive code examples illustrate each concept, with fully functional examples and working source code for experimentation available online.
  • Covers various API styles and patterns with a focus on practical and efficient designs for large-scale long-term projects.

About the Author

Dr Martin Reddy is the founder and CEO of the software consultancy firm Code Reddy Inc. and co-author of Level of Detail for 3D Graphics.

See all Editorial Reviews
NO_CONTENT_IN_FEATURE

Best Books of the Month
Best Books of the Month
Want to know our Editors' picks for the best books of the month? Browse Best Books of the Month, featuring our favorite new books in more than a dozen categories.

Product Details

  • Paperback: 472 pages
  • Publisher: Morgan Kaufmann; 1 edition (February 18, 2011)
  • Language: English
  • ISBN-10: 0123850037
  • ISBN-13: 978-0123850034
  • Product Dimensions: 1.2 x 7.5 x 9 inches
  • Shipping Weight: 2.2 pounds (View shipping rates and policies)
  • Average Customer Review: 4.7 out of 5 stars  See all reviews (39 customer reviews)
  • Amazon Best Sellers Rank: #191,923 in Books (See Top 100 in Books)

More About the Author

Discover books, learn about writers, read author blogs, and more.

Customer Reviews

Most Helpful Customer Reviews

38 of 40 people found the following review helpful By AmazonFanboy on March 7, 2011
Format: Paperback Verified Purchase
A good book, but I don't think an experienced C++ programmer would find anything too surprising in it. It IS a very good tutorial for newer programmers, or someone coming from Java API design. The author does a nice job of explaining a lot of what has been discussed in Meyers' and Sutter's book; none of the lengthy set up and quizzing, he just explains it and shows the reader why it is important. He concisely explains things like Liskov, Open-Closed, etc., the PIMPL idiom, and creation patterns, and gives some good advice on how to version your API, and control development in a source control system. It's basically a pretty complete look at the whole process of writing an API.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
40 of 43 people found the following review helpful By D. Smith on August 3, 2011
Format: Paperback Verified Purchase
First, the summary: This is an outstanding book which covers a very large range of topics very effectively. Don't be fooled by the title - even though APIs are covered very thoroughly, the book contains a great deal of wisdom beyond the API (at least by my definition of "API") - it discusses the design and implementation of well-encapsulated software components, performance, design patterns, effective use of the C++ programming language, and much more. Important topics that are often overlooked by other books, such as documentation, testing, versioning and scripting, are also covered. The book is extremely well written, and the typesetting and layout of the book is very well done. The book never loses sight of the motivation for a solid API - the winners are your clients and your business.

Usually when I think of an API, I think of the interface to a library / component. You know, function prototypes, class documentation, maybe some man pages or background documentation. All of that material is covered in great depth, but what the book is really about is *everything* that goes into designing and implementing software components / libraries properly. When writing a library, only the API is exposed to the user, and this is where a lot of the hard work is. Deciding what needs to be exposed, and how it should be exposed, is often not easy. As the author states, you can always change the underlying implementation, but you really need to think through the API before unleashing your API on the world. That's why it's so important to "get it right the first time" - changes afterwards can be tremendously costly. This book will help you get it right the first time.
Read more ›
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
13 of 14 people found the following review helpful By Glenn R. Howes TOP 1000 REVIEWERVINE VOICE on December 20, 2011
Format: Paperback Vine Customer Review of Free Product ( What's this? )
My job is maintaining and expanding a large cross-platform desktop application which was originally written in 1986 by highly intelligent but inexperienced developers, and whose code is also used for browser plugins. If only I could have sent back in time this book! My life would be easy. I wouldn't have spent years of my life getting the basics of maintainability in place, simple things like using accessor methods, but also more subtle concepts like the importance of decoupling objects and techniques to decouple. This book is nominally about putting together APIs, but along the way it encourages and demands the programmer choose the most maintainable, robust and professionally rigorous techniques in order to reach the goal of an easy to use, hard to screw up, predictable and stable external API.

I want to emphasize the importance of such software traits as modularity, implementation hiding, and decoupling in any large project, in my own case I see years of what the book calls "software debt" accumulating and coming due with a vengeance. If robust techniques are not mandated and enforced every day of the release cycle eventually the codebase will become daunting to modify or fix. Such techniques given in the book as factory methods, the observer/broadcaster pattern, and such off the shelf technologies like Boost to ease implementation of these techniques are just what you have to use in order to keep sane and keep your cash cow alive.

Not that I don't have quibbles with certain techniques. I'm no fan of the PIMPL pattern and prefer to solve the same problem of implementation hiding with virtual base class interfaces and class factory methods. But then again, I don't write libraries, I write applications and plugins, so I will defer to Mr.
Read more ›
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
9 of 9 people found the following review helpful By William Sommerwerck VINE VOICE on November 17, 2012
Format: Paperback Vine Customer Review of Free Product ( What's this? )
Anyone who's read my reviews of technical books knows the low esteem I hold them in. Most are terrible -- poorly organized, badly written, and (/if/ edited), edited by someone who knows next to nothing about the subject matter. To find one that is merely "good" produces a brief flash of joy. To read a superb one -- as "API design for C++" is -- is a cause for elation.

When I first opened the book, my thumb fell propitiously on the first page of of Chapter 9, "Documentation" -- "Well-written documentation is ... a critical element of your API." My heavens -- a programmer who understands that documentation is as important as the product itself, a component that's a necessary, irreplaceable part of the product, absolutely critical to understanding and using it.

The rest of the book did not disappoint.

Reddy goes into great detail about the rules of writing APIs -- one of the most-important is the need to keep /everything/ hidden from other classes and calls, and the developers who use the API. There are plenty of other rules (which Reddy explains well and justifies by referring to other experts), but their goal is to produce bug-free code that is easily maintained, without the need to continually rewrite it so that it doesn't break existing applications. Reddy emphasizes that, although good design sometimes has to be ignored to get a product to market, poor initial design ultimately wastes far more time and money than it saves.

Do I need to say that Reddy is (other than occasionally using trendy jargon) a solid writer? If other technical books are trashy potboilers, Reddy's work is -- if not Cormac McCarthy -- an approximation of Larry McMurtry. His thinking is almost always easy to follow -- you rarely have to reread a point to understand it.
Read more ›
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again

Most Recent Customer Reviews

Set up an Amazon Giveaway

Amazon Giveaway allows you to run promotional giveaways in order to create buzz, reward your audience, and attract new followers and customers. Learn more
API Design for C++
This item: API Design for C++
Price: $43.47
Ships from and sold by Amazon.com

Want to discover more products? Check out these pages to see more: software development, computer programs, object oriented