Programming Books C Java PHP Python Learn more Browse Programming Books
  • List Price: $62.95
  • Save: $40.96 (65%)
Rented from RentU
To Rent, select Shipping State from options above
Due Date: Dec 20, 2014
FREE return shipping at the end of the semester. Access codes and supplements are not guaranteed with rentals.
FREE Shipping on orders over $35.
Used: Good | Details
Sold by RentU
Condition: Used: Good
Comment: Fast shipping from Amazon! Qualifies for Prime Shipping and FREE standard shipping for orders over $35. Overnight, 2 day and International shipping available! Excellent Customer Service.. May not include supplements such as CD, access code or DVD.
Access codes and supplements are not guaranteed with used items.
Add to Cart
Qty:1
  • List Price: $62.95
  • Save: $13.38 (21%)
Only 17 left in stock (more on the way).
Ships from and sold by Amazon.com.
Gift-wrap available.
Add to Cart
Trade in your item
Get a $14.76
Gift Card.
Have one to sell? Sell on Amazon
Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See this image

API Design for C++ Paperback – February 18, 2011

ISBN-13: 978-0123850034 ISBN-10: 0123850037 Edition: 1st

Buy New
Price: $49.57
Rent
Price: $21.99
35 New from $32.50 22 Used from $29.43
Rent from Amazon Price New from Used from
Kindle
"Please retry"
$22.43
Paperback
"Please retry"
$21.99
$49.57
$32.50 $29.43

Free%20Two-Day%20Shipping%20for%20College%20Students%20with%20Amazon%20Student



Frequently Bought Together

API Design for C++ + C++ Concurrency in Action: Practical Multithreading + The C++ Standard Library: A Tutorial and Reference (2nd Edition)
Price for all three: $159.63

Some of these items ship sooner than the others.

Buy the selected items together

NO_CONTENT_IN_FEATURE
Save up to 90% on Textbooks
Rent textbooks, buy textbooks, or get up to 80% back when you sell us your books. Shop Now

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.3 x 9.1 inches
  • Shipping Weight: 2.2 pounds (View shipping rates and policies)
  • Average Customer Review: 4.7 out of 5 stars  See all reviews (36 customer reviews)
  • Amazon Best Sellers Rank: #224,563 in Books (See Top 100 in Books)

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.


More About the Author

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

Customer Reviews

4.7 out of 5 stars
5 star
29
4 star
5
3 star
1
2 star
0
1 star
1
See all 36 customer reviews
The book is extremely well written, and the typesetting and layout of the book is very well done.
D. Smith
You'll get a tour through Design Patterns and several other technologies, techniques, idioms and simply best practices to design an API.
L. J. Estrada
/Anyone/ who's a professional programmer -- even if they don't program in C, C++, or C# -- should read this book.
William Sommerwerck

Most Helpful Customer Reviews

34 of 36 people found the following review helpful By M. Wilson 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
37 of 40 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
11 of 12 people found the following review helpful By Glenn R. Howes TOP 500 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
6 of 6 people found the following review helpful By William Sommerwerck 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

Customer Images

Most Recent Customer Reviews

Search

What Other Items Do Customers Buy After Viewing This Item?