API Design for C++
By Martin Reddy
3.5/5
()
About this ebook
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. 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. Each concept is illustrated with extensive C++ code examples, and fully functional examples and working source code for experimentation are available online.
This book will be helpful to new programmers who understand the fundamentals of C++ and who want to advance their design skills, as well as to senior engineers and software architects seeking to gain new expertise to complement their existing talents. Three specific groups of readers are targeted: practicing software engineers and architects, technical managers, and students and educators.
- 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
Martin Reddy
Dr. Martin Reddy holds a Ph.D. in Computer Science and has over 30 years of experience in the software industry. He is a Fellow of the IEEE, a Fellow of the AAIA, and a Distinguished Member of the ACM. He has published 10 patents, over 40 professional articles, and 2 books. Martin was co-founder and CTO of the AI startup, PullString, where he oversaw the development of the company's technology until it was acquired by Apple in 2019. While at Apple, Martin was a software architect responsible for the architecture and APIs of major components of the Siri virtual assistant. Before that, Dr. Reddy worked for 6 years at Pixar Animation Studios where he was a lead engineer for the studio's in-house animation system. He worked on several Academy Award Winning and Nominated films, such as "Finding Nemo", "The Incredibles", "Cars", "Ratatouille", and "Wall-E". He was also the hair model for Mr Incredible. Martin began his career at SRI International where he worked on a distributed 3D terrain visualization system and co-authored the geospatial functionality in the VRML and X3D ISO standards. Martin was awarded Alumnus of the Year by his alma mater, Strathclyde University.
Related to API Design for C++
Related ebooks
Software Development with C++: Maximizing Reuse with Object Technology Rating: 0 out of 5 stars0 ratingsBoost.Asio C++ Network Programming - Second Edition Rating: 0 out of 5 stars0 ratingsProgramming Concepts in C++ Rating: 0 out of 5 stars0 ratingsFunctional Programming in C#, Second Edition Rating: 0 out of 5 stars0 ratingsC++ Application Development with Code::Blocks Rating: 0 out of 5 stars0 ratingsLearning .NET High-performance Programming Rating: 0 out of 5 stars0 ratingsApplication Development with Qt Creator - Second Edition Rating: 4 out of 5 stars4/5Functional C# Rating: 5 out of 5 stars5/5Software Engineering for Embedded Systems: Methods, Practical Techniques, and Applications Rating: 3 out of 5 stars3/5Go Programming Blueprints Rating: 0 out of 5 stars0 ratingsLLVM Essentials Rating: 1 out of 5 stars1/5Software Engineering: Architecture-driven Software Development Rating: 4 out of 5 stars4/5.NET Design Patterns Rating: 3 out of 5 stars3/5C# Programming Illustrated Guide For Beginners & Intermediates: The Future Is Here! Learning By Doing Approach Rating: 0 out of 5 stars0 ratingsC++17 STL Cookbook Rating: 3 out of 5 stars3/5Learning Boost C++ Libraries Rating: 0 out of 5 stars0 ratingsBoost.Asio C++ Network Programming Cookbook Rating: 0 out of 5 stars0 ratingsLearning C++ by Creating Games with UE4 Rating: 3 out of 5 stars3/5Mastering C++ Network Automation Rating: 0 out of 5 stars0 ratingsC++: A Beginner's Guide, Second Edition Rating: 0 out of 5 stars0 ratingsThe Art of Multiprocessor Programming, Revised Reprint Rating: 4 out of 5 stars4/5Design Patterns for Embedded Systems in C: An Embedded Software Engineering Toolkit Rating: 5 out of 5 stars5/5Professional C++ Rating: 2 out of 5 stars2/5C++ Concurrency in Action Rating: 4 out of 5 stars4/5Advanced C++ Interview Questions You'll Most Likely Be Asked Rating: 0 out of 5 stars0 ratingsBeginning C++ Game Programming - Second Edition: Learn to program with C++ by building fun games, 2nd Edition Rating: 0 out of 5 stars0 ratingsObject-Oriented Graphics Programming in C++ Rating: 0 out of 5 stars0 ratingsModern C++ Programming Cookbook Rating: 5 out of 5 stars5/5
Software Development & Engineering For You
PYTHON: Practical Python Programming For Beginners & Experts With Hands-on Project Rating: 5 out of 5 stars5/5Grokking Algorithms: An illustrated guide for programmers and other curious people Rating: 4 out of 5 stars4/5Learn to Code. Get a Job. The Ultimate Guide to Learning and Getting Hired as a Developer. Rating: 5 out of 5 stars5/5Beginning Programming For Dummies Rating: 4 out of 5 stars4/5Python For Dummies Rating: 4 out of 5 stars4/5Engineering Management for the Rest of Us Rating: 5 out of 5 stars5/5Android App Development For Dummies Rating: 0 out of 5 stars0 ratingsHand Lettering on the iPad with Procreate: Ideas and Lessons for Modern and Vintage Lettering Rating: 4 out of 5 stars4/5Lua Game Development Cookbook Rating: 0 out of 5 stars0 ratingsLevel Up! The Guide to Great Video Game Design Rating: 4 out of 5 stars4/5How Do I Do That In InDesign? Rating: 5 out of 5 stars5/5How to Write Effective Emails at Work Rating: 4 out of 5 stars4/5SQL For Dummies Rating: 0 out of 5 stars0 ratingsFlow: A Handbook for Change-Makers, Mavericks, Innovators and Leaders Rating: 0 out of 5 stars0 ratingsReversing: Secrets of Reverse Engineering Rating: 4 out of 5 stars4/5Modern C++ for Absolute Beginners: A Friendly Introduction to C++ Programming Language and C++11 to C++20 Standards Rating: 0 out of 5 stars0 ratingsThe Inmates Are Running the Asylum (Review and Analysis of Cooper's Book) Rating: 4 out of 5 stars4/5Gray Hat Hacking the Ethical Hacker's Rating: 5 out of 5 stars5/5Good Code, Bad Code: Think like a software engineer Rating: 5 out of 5 stars5/5How Do I Do That in Photoshop?: The Quickest Ways to Do the Things You Want to Do, Right Now! Rating: 4 out of 5 stars4/5Tiny Python Projects: Learn coding and testing with puzzles and games Rating: 5 out of 5 stars5/5Spring Essentials Rating: 0 out of 5 stars0 ratings27 PROGRAM MANAGEMENT INTERVIEW TECHNIQUES - To Ace That Dream Job Offer ! Rating: 5 out of 5 stars5/5OneNote: The Ultimate Guide on How to Use Microsoft OneNote for Getting Things Done Rating: 1 out of 5 stars1/5Ry's Git Tutorial Rating: 0 out of 5 stars0 ratingsKanban in Action Rating: 0 out of 5 stars0 ratings
Reviews for API Design for C++
8 ratings1 review
- Rating: 3 out of 5 stars3/5This book was a disappointment. The coverage was shallow, a mile wide and an inch deep, and mainly repeated information available elsewhere, in better books. It wandered off into coverage of topics not directly related to its subject - profilers and memory analysis tools are certainly useful in API/library implementation, but have little to do with design, for example. Reddy's prose is pedestrian (not that one necessarily demands scintillating prose in a technical book). For the experienced programmer, this is a waste of time and money; it will largely tell you what you know already; better reread Lakos or Coplien. For the neophyte or the journeyman, it does have the virtue of gathering a lot of basic information into one place.