Practical C++ Design: From Programming to Architecture
Author: Adam B. Singer
Publisher finelybook 出版社: Apress; 2nd edition (December 11,2021)
Language 语言: English
Print Length 页数: 309 pages
ISBN-10: 1484274067
ISBN-13: 9781484274064
Book Description
Go from competent C++ developer to skilled designer or architect using this book as your personal C++ design master class. Updated for the C++20 standard,this title will guide you through the design and implementation of an engaging case study that forms the backdrop for learning the art of applying design patterns and modern C++ techniques to create a high quality,robust application.
Starting with a quick exploration of the requirements for building the application,you’ll delve into selecting an appropriate architecture,eventually designing and implementing all of the necessary modules to meet the project’s requirements. Author: the conclusion of Practical C++ Design,you’ll have constructed a fully functioning calculator capable of building and executing on any platform that supports both Qt and C++20. Access to the complete source code will help speed your learning.
Utilize the Model-View-Controller pattern as the basis for the architecture of the calculator; the observer pattern to design an event system; the singleton pattern as you design the calculator’s central data repository,a reusable stack; the command pattern to design a command system supporting unlimited undo/redo; the abstract factory pattern to build a cross-platform plugin infrastructure for extensibility; coroutines to implement a command line interface with a lazy tokenizer; and more.
After reading and using this book,you’ll have begun the transition from C++ programmer to architect.
What You Will Learn
Read a specification document and translate it into a practical C++ design using some of the latest language features from C++20
Understand trade-offs in selecting between alternative design scenarios
Gain practical experience in applying design patterns to realistic development scenarios
Learn how to effectively use language elements of modern C++ to create a lasting design
Develop a complete C++ program from a blank canvas through to a fully functioning,cross platform application
Read,modify,and extend existing,high quality code
Learn the fundamentals of API design,including class,module,and plugin interfaces