{"product_id":"object-oriented-software-design-in-c-9781633439504","title":"Object-Oriented Software Design in C++","description":"\u003cb\u003eLearn the fundamentals of Object-Oriented design by investigating good--and bad--code!\u003c\/b\u003e \u003cp\u003e\u003c\/p\u003eWell-designed applications run more efficiently, have fewer bugs, and are easier to revise and maintain. Using an engaging \"before-and-after\" approach, \u003ci\u003eObject-Oriented Software Design in C++\u003c\/i\u003e shows you exactly what bad software looks like and how to fix it with good design principles and patterns. \u003cp\u003e\u003c\/p\u003eIn \u003ci\u003eObject-Oriented Software Design in C++, \u003c\/i\u003e you'll find: \u003cp\u003e\u003c\/p\u003e \u003cul\u003e \u003cli\u003eDesign-code-test iterations that improve code with each revision\u003c\/li\u003e \u003cli\u003eGathering requirements to make sure you're developing the right application\u003c\/li\u003e \u003cli\u003eDesign principles like encapsulation and delegation that solve programming problems\u003c\/li\u003e \u003cli\u003eDesign patterns including Observer Design Pattern that fix architecture issues\u003c\/li\u003e \u003cli\u003eUsing recursion and multithreading to simplify common solutions\u003c\/li\u003e \u003c\/ul\u003e \u003cbr\u003e\u003ci\u003eObject-Oriented Software Design in C++\u003c\/i\u003e is a vital guide to building the kind of high performance applications delivered by the pros--all using industry-proven design principles and patterns. You'll learn how to gather and analyze requirements so you're building exactly what your client is looking for, backtrack mistakes with iterative development, and build a toolbox of design patterns that troubleshoot common issues with application architecture. The book's accessible examples are written in C++ 17, but its universal principles can be applied to any object-oriented language. \u003cp\u003e\u003c\/p\u003e Purchase of the print book includes a free eBook in PDF and ePub formats from Manning Publications. \u003cp\u003e\u003c\/p\u003e \u003cb\u003eAbout the technology\u003c\/b\u003e \u003cp\u003e\u003c\/p\u003e Good design is the foundation of great software. Mastering the principles of object-oriented design is the surest way to create applications that run fast, have few bugs, and last well into the future. Written especially for new C++ programmers, this easy-to-read book gently mentors you in the art of designing great software. \u003cp\u003e\u003c\/p\u003e \u003cb\u003eAbout the book\u003c\/b\u003e \u003cp\u003e\u003c\/p\u003e \u003ci\u003eObject-Oriented Software Design in C++\u003c\/i\u003e introduces object-oriented design principles, practices, and patterns in clear, jargon-free language. The instantly-familiar before-and-after examples highlight the benefits of good design. Each chapter is full of friendly conversations that anticipate your questions and help point out the subtleties you might overlook. Along the way, you'll pick up tips about idiomatic C++ style that will set your code apart. \u003cp\u003e\u003c\/p\u003e What's inside \u003cp\u003e\u003c\/p\u003e \u003cul\u003e \u003cli\u003eDesign-code-test iterations\u003c\/li\u003e \u003cli\u003eDesign principles for common programming problems\u003c\/li\u003e \u003cli\u003eArchitecture design patterns in plain English\u003c\/li\u003e \u003cli\u003eRecursion and multithreading\u003c\/li\u003e \u003c\/ul\u003e \u003cp\u003e\u003c\/p\u003e\u003cb\u003eAbout the reader\u003c\/b\u003e \u003cp\u003e\u003c\/p\u003e Examples are in C++ 17. \u003cp\u003e\u003c\/p\u003e \u003cb\u003eAbout the author\u003c\/b\u003e \u003cp\u003e\u003c\/p\u003e \u003cb\u003eRonald Mak\u003c\/b\u003e is a former NASA senior scientist. Currently, he teaches computer science at San Jose State University. \u003cp\u003e\u003c\/p\u003eThe technical editor on this book was \u003cb\u003eJuan Rufes\u003c\/b\u003e. \u003cp\u003e\u003c\/p\u003e \u003cb\u003eTable of Contents\u003c\/b\u003e \u003cp\u003e\u003c\/p\u003e PART 1\u003cbr\u003e 1 The path to well-designed software\u003cbr\u003e 2 Iterate to achieve good design\u003cbr\u003e PART 2\u003cbr\u003e 3 Get requirements to build the right application\u003cbr\u003e 4 Good class design to build the application right\u003cbr\u003e PART 3\u003cbr\u003e 5 Hide class implementations\u003cbr\u003e 6 Don't surprise your users\u003cbr\u003e 7 Design subclasses right\u003cbr\u003e PART 4\u003cbr\u003e 8 The Template Method and Strategy Design Patterns\u003cbr\u003e 9 The Factory Method and Abstract Factory Design Patterns\u003cbr\u003e 10 The Adapter and Fa?ade Design Patterns\u003cbr\u003e 11 The Iterator and Visitor Design Patterns\u003cbr\u003e 12 The Observer Design Pattern\u003cbr\u003e 13 The State Design Pattern\u003cbr\u003e 14 The Singleton, Composite, and Decorator Design Patterns\u003cbr\u003e PART 5\u003cbr\u003e 15 Designing solutions with recursion and backtracking\u003cbr\u003e 16 Designing multithreaded programs\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cb\u003eAbout the Author\u003c\/b\u003e\u003cbr\u003e\u003cb\u003eRonald Mak\u003c\/b\u003e is a highly rated instructor in object-oriented analysis and design at San Jose State University. His career has included roles as a senior computer scientist at NASA and JPL, where he contributed to major missions like Mars rovers and the Orion spacecraft. Ronald's expertise spans research at IBM, enterprise software strategy at Lawrence Livermore Lab, and senior roles at Apple and Sun Microsystems. He holds degrees in mathematical sciences and computer science from Stanford University, and has 12 software patents. Object-Oriented Software Design in C++ is his sixth book.\u003cbr\u003e","brand":"Manning Publications","offers":[{"title":"Default Title","offer_id":50555698774290,"sku":"9781633439504","price":45.99,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0831\/4771\/8930\/files\/img_df0d4602-4419-4373-853a-ad23aa80799b.jpg?v=1731738179","url":"https:\/\/surprise-castle.myshopify.com\/products\/object-oriented-software-design-in-c-9781633439504","provider":"Surprise Castle","version":"1.0","type":"link"}