- Paperback: 472 pages
- Publisher: Morgan Kaufmann; 1 edition (February 18, 2011)
- Language: English
- ISBN-10: 0123850037
- ISBN-13: 978-0123850034
- Product Dimensions: 7.4 x 1.2 x 9.2 inches
- Shipping Weight: 2.2 pounds (View shipping rates and policies)
- Average Customer Review: 4.6 out of 5 stars See all reviews (45 customer reviews)
Amazon Best Sellers Rank:
#372,285 in Books (See Top 100 in Books)
- #362 in Books > Textbooks > Computer Science > Software Design & Engineering
- #414 in Books > Computers & Technology > Programming > Software Design, Testing & Engineering > Object-Oriented Design
- #841 in Books > Computers & Technology > Programming > Software Design, Testing & Engineering > Software Development
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.
API Design for C++ 1st Edition
Use the Amazon App to scan ISBNs and compare prices.
The Amazon Book Review
Author interviews, book reviews, editors picks, and more. Read it now
Frequently bought together
Customers who bought this item also bought
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.
- 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.
If you are a seller for this product, would you like to suggest updates through seller support?
Top customer reviews
This book is also chock-full of little gems of knowledge that typically require scouring the web and then sorting the wheat from the chaff. For example, pages 195-197 contain a concise list of the C++ operator syntax, showing the operator name, the typical syntax, and the recommended operator declaration to use (both free-function and member forms) if you want to overload that operator while maintaining compatibility with the standard C/C++ usage of that operator. This is the table that should have been included in Stroustrup's 'The C++ Programming Language' but wasn't.
Last but not least, the breadth of topics discussed is outstanding. Everything from how to begin the design of an interface (API), through the most commonly-used implementation design patterns, coding conventions, version numbering, performance, documentation, testing, script binding and plugin architectures, to creating library packages on all three major architectures (Linux, Mac and Windows). All three major platforms are discussed in equal depth when appropriate, eg.,the different debugging tools available on each platform, but this book isn't platform-specific. Most of my coding is for embedded systems on Linux, and I didn't feel slighted in the least by the content in this book.
This is not a beginner's book for learning C++. It's also not going to replace the need for the GoF Design Patterns book or teach you template meta-programming. It's for experienced C++ programmers with a project or two under their belt, and for those folks it's probably not going to teach them something they didn't already know. What this book does is remind you--that experienced C++ programmer--of all those things you've forgotten, those good practices you knew you should have used on that last project but didn't, or show you why the way you've been doing it really isn't the best approach. This book reminds you to be a better programmer.
I have found a few nuggets of information that made it worth reading, and would have given this a five, however I did find that some of the topics were skimmed over. In particular the error handling section was very brief explaining that the options API designers have is to return an error value, or throw exceptions. This is a topic I am interested in digging deeper into, as I look at error handling as one of the most important points of usability of a framework/API.
As someone who enjoys using C++ for most of the non-trivial projects they pursue, this book really shed some light on building solid APIs in ways I was not aware of prior. For those reading, it's important to recognize I have been building software for almost 6 years, with about half of that in industry and the rest back in university. So while this book may not be as useful for a Senior Software Engineer, someone in similar shoes to mine and who wants to become an excellent software engineer would really benefit.
I have enjoyed the style of writing as Reddy has done a good job explaining a concept and then backing it up with some code snippets to help reinforce practical implementations of the concept. One thing I enjoyed was having the book cover a survey of API design techniques and weighing pros and cons for given approaches. For me personally, I feel I have gained lots of valuable insight from the book and hope to use the insight to build great APIs and codebases in the future.
In conclusion, I recommend any younger developers to read this book who hope to build their skill sets in software architecture and building modular codebases. As someone who is frequently programming and trying to improve, I found this book one of the most useful out there from a software engineering perspective.