API Design for C++, 2nd Edition
- Length: 648 pages
- Edition: 2
- Language: English
- Publisher: Morgan Kaufmann
- Publication Date: 2024-05-27
- ISBN-10: 0443222193
- ISBN-13: 9780443222191
API Design for C++, Second Edition provides a comprehensive discussion of Application Programming Interface (API) development, from initial design through implementation, testing, documentation, release, versioning, maintenance, and deprecation. It is the only book that teaches the strategies of C++ API development, including interface design, versioning, scripting, and plug-in extensibility. Drawing from the author’s experience on large scale, collaborative software projects, the text offers practical techniques of API design that produce robust code for the long-term. It presents patterns and practices that provide real value to individual developers as well as organizations. The Second Edition includes all new material fully updated for the latest versions of C++, including a new chapter on concurrency and multithreading, as well as a new chapter discussing how Objective C++ and C++ code can co-exist and how a C++ API can be accessed from Swift programs. In addition, it explores often overlooked issues, both technical and non-technical, contributing to successful design decisions that produce high quality, robust, and long-lived APIs. It focuses on various API styles and patterns that will allow you to produce elegant and durable libraries. A discussion on testing strategies concentrates on automated API testing techniques rather than attempting to include end-user application testing techniques such as GUI testing, system testing, or manual testing.
- Teaches the strategies of C++ API development, including design, versioning, documentation, testing, scripting, and extensibility
- Includes extensive code examples that 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
- Includes updated URLs and ensures all code examples continue to work with modern compilers and supporting tools