دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش: [2 ed.]
نویسندگان: Fedor G. Pikus
سری:
ISBN (شابک) : 9781804611555
ناشر: Packtpub
سال نشر: 2023
تعداد صفحات: 626
زبان: English
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود)
حجم فایل: 3 Mb
در صورت تبدیل فایل کتاب Hands-On Design Patterns with C++ به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب الگوهای طراحی دستی با C نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
راهنمای جامع با پوشش گسترده مفاهیمی مانند OOP، برنامهنویسی کاربردی، برنامهنویسی عمومی، همزمانی، و STL به همراه آخرین ویژگیهای C Purchase کتاب چاپی یا Kindle شامل یک کتاب الکترونیکی PDF رایگان ویژگیهای کلیدی: بررسی الگوهای اصلی و مولفه های C برای تسلط بر طراحی اپلیکیشن آموزش ترفندها، تکنیک ها و بهترین شیوه ها برای حل چالش های رایج طراحی و معماری درک محدودیت های اعمال شده توسط C و نحوه حل آنها با استفاده از الگوهای طراحی توضیحات کتاب: C یک زبان برنامه نویسی همه منظوره است که برای کارایی طراحی شده است. ، عملکرد و انعطاف پذیری الگوهای طراحی راه حل های پذیرفته شده ای برای مشکلات طراحی شناخته شده هستند. در اصل، آنها یک کتابخانه از اجزای قابل استفاده مجدد هستند، فقط برای معماری نرم افزار، و نه برای پیاده سازی مشخص. این کتاب به شما کمک می کند تا روی الگوهای طراحی که به طور طبیعی با نیازهای شما سازگار است و الگوهایی که به طور منحصر به فردی از ویژگی های C بهره می برند تمرکز کنید. با داشتن دانش این الگوها، زمان کمتری را صرف جستجوی راه حل برای مشکلات رایج و مقابله با چالش ها با راه حل های توسعه یافته از تجربه خواهید کرد. شما همچنین خواهید فهمید که الگوهای طراحی روشی مختصر و کارآمد برای برقراری ارتباط هستند، زیرا الگوها راه حلی آشنا و قابل تشخیص برای یک مشکل خاص هستند و می توانند مقدار قابل توجهی از اطلاعات را با یک خط کد منتقل کنند. در پایان این کتاب، شما درک عمیقی از نحوه استفاده از الگوهای طراحی برای نوشتن نرم افزارهای قابل نگهداری، قوی و قابل استفاده مجدد خواهید داشت. آنچه خواهید آموخت: رایج ترین الگوهای طراحی مورد استفاده در C را بشناسید درک نحوه استفاده از برنامه نویسی عمومی C برای حل مشکلات رایج طراحی. الگوها و اصطلاحات جدید با ویژگی های زبان C 17 و C 20 امکان پذیر شده است. الگوها و اصول و اعمال آنها برای ایجاد برنامه ها و سیستم های نرم افزاری قوی، قابل استفاده مجدد و به راحتی قابل نگهداری است.
A comprehensive guide with extensive coverage of concepts such as OOP, functional programming, generic programming, concurrency, and STL along with the latest features of C++ Purchase of the print or Kindle book includes a free PDF eBook Key Features: Delve into the core patterns and components of C++ to master application design Learn tricks, techniques, and best practices to solve common design and architectural challenges Understand the limitation imposed by C++ and how to solve them using design patterns Book Description: C++ is a general-purpose programming language designed for efficiency, performance, and flexibility. Design patterns are commonly accepted solutions to well-recognized design problems. In essence, they are a library of reusable components, only for software architecture, and not for a concrete implementation. This book helps you focus on the design patterns that naturally adapt to your needs, and on the patterns that uniquely benefit from the features of C++. Armed with the knowledge of these patterns, you\'ll spend less time searching for solutions to common problems and tackle challenges with the solutions developed from experience. You\'ll also explore that design patterns are a concise and efficient way to communicate, as patterns are a familiar and recognizable solution to a specific problem and can convey a considerable amount of information with a single line of code. By the end of this book, you\'ll have a deep understanding of how to use design patterns to write maintainable, robust, and reusable software. What You Will Learn: Recognize the most common design patterns used in C++ Understand how to use C++ generic programming to solve common design problems Explore the most powerful C++ idioms, their strengths, and their drawbacks Rediscover how to use popular C++ idioms with generic programming Discover new patterns and idioms made possible by language features of C++17 and C++20 Understand the impact of design patterns on the program\'s performance Who this book is for: This book is for experienced C++ developers and programmers who wish to learn about software design patterns and principles and apply them to create robust, reusable, and easily maintainable programs and software systems.
Cover Copyright Contributors Table of Contents Preface Part 1: Getting Started with C++ Features and Concepts Chapter 1: An Introduction to Inheritance and Polymorphism Classes and objects Inheritance and class hierarchies Polymorphism and virtual functions Multiple inheritance Summary Questions Further reading Chapter 2: Class and Function Templates Templates in C++ Function templates Class templates Variable templates Non-type template parameters Template template parameters Template instantiations Function templates Class templates Template specializations Explicit specialization Partial specialization Template function overloading Variadic templates Lambda expressions Concepts Summary Questions Further reading Chapter 3: Memory and Ownership Technical requirements What is memory ownership? Well-designed memory ownership Poorly designed memory ownership Expressing memory ownership in C++ Expressing non-ownership Expressing exclusive ownership Expressing transfer of exclusive ownership Expressing shared ownership Owning objects and views Resource-owning objects Non-owning access to resource-owning objects Summary Questions Further reading Part 2: Common C++ Idioms Chapter 4: Swap – from Simple to Subtle Technical requirements Swap and the standard template library Swap and STL containers Non-member swap Swapping like the standard When and why to use swap Swap and exception safety Other common swap idioms How to implement and use swap correctly Implementing swap Using swap correctly Summary Questions Chapter 5: A Comprehensive Look at RAII Technical requirements Resource management in C++ Installing the microbenchmark library Installing Google Test Counting resources Dangers of manual resource management Manual resource management is error-prone Resource management and exception safety The RAII idiom RAII in a nutshell RAII for other resources Releasing early Careful implementation of Resource Acquisition is Initialization objects Downsides of RAII Very modern RAII Summary Questions Further reading Chapter 6: Understanding Type Erasure Technical requirements What is type erasure? Type erasure by example From example to generalization Type erasure as a design pattern Type erasure as an implementation technique How is type erasure implemented in C++? Very old type erasure Type erasure using inheritance Type erasure without memory allocation Type erasure without inheritance Efficient type erasure Performance of type erasure Installing the micro-benchmark library The overhead of type erasure Guidelines for using type erasure Summary Questions Chapter 7: SFINAE, Concepts, and Overload Resolution Management Technical requirements Overload resolution and overload sets C++ function overloading Template functions Type substitution in template functions Type deduction and substitution Substitution failure Substitution Failure Is Not An Error When substitution failure is still an error Where and why does substitution failure happen? Concepts and constraints in C++20 Constraints in C++20 Concepts in C++20 Concepts and type restrictions SFINAE techniques SFINAE in C++20 SFINAE and type traits Concepts before concepts Constrained templates – the best practices Summary Questions Part 3: C++ Design Patterns Chapter 8: The Curiously Recurring Template Pattern Technical requirements What is wrong with a virtual function? Introducing CRTP CRTP and static polymorphism Compile-time polymorphism The compile-time pure virtual function Destructors and polymorphic deletion CRTP and access control CRTP as a delegation pattern Expanding the interface CRTP and concepts CRTP as an implementation technique CRTP for code reuse CRTP for generic interfaces CRTP and policy-based design Summary Questions Chapter 9: Named Arguments, Method Chaining, and the Builder Pattern Technical requirements What’s wrong with many arguments? Aggregate parameters Named arguments in C++ Method chaining Method chaining and named arguments Performance of the named arguments idiom General method chaining Method chaining versus method cascading General method chaining Method chaining in class hierarchies The Builder pattern Basics of the Builder pattern The fluent Builder The implicit builder Summary Questions Chapter 10: Local Buffer Optimization Technical requirements The overhead of small memory allocations The cost of memory allocations Introducing local buffer optimization The main idea Effect of local buffer optimization Additional optimizations Local buffer optimization beyond strings Small vector Small queue Type-erased and callable objects Local buffer optimization in the standard library Local buffer optimization in detail Downsides of local buffer optimization Summary Questions Chapter 11: ScopeGuard Technical requirements Error handling and resource acquisition is initialization Error safety and exception safety Resource Acquisition Is Initialization The ScopeGuard pattern ScopeGuard basics Generic ScopeGuard ScopeGuard and exceptions What must not throw an exception Exception-driven ScopeGuard Type-erased ScopeGuard Summary Questions Chapter 12: Friend Factory Technical requirements Friends in C++ How to grant friendship in C++ Friends versus member functions Subtle details of friendship Friends and templates Friends of template classes The template friend factory Generating friends on demand The friend factory and the Curiously Recurring Template Pattern Summary Questions Chapter 13: Virtual Constructors and Factories Technical requirements Why constructors cannot be virtual When does an object get its type? The Factory pattern The basics of the Factory method Factory clarification Arguments for factory methods Dynamic type registry Polymorphic factory Factory-like patterns in C++ Polymorphic copy CRTP Factory and return types CRTP for Factory implementation Factory and Builder Summary Questions Chapter 14: The Template Method Pattern and the Non-Virtual Idiom Technical requirements The Template Method pattern The Template Method in C++ Applications of the Template Method Pre-and post-conditions and actions The Non-Virtual Interface Virtual functions and access The NVI idiom in C++ Template Method vs Strategy A note about destructors Drawbacks of the Non-Virtual Interface Composability The Fragile Base Class problem A cautionary note about template customization points Summary Questions Part 4: Advanced C++ Design Patterns Chapter 15: Policy-Based Design Technical requirements Strategy pattern and policy-based design Foundations of policy-based design Implementation of policies Use of policy objects Advanced policy-based design Policies for constructors Policies for test Policy adapters and aliases Using policies to control the public interface Rebinding policies Recommendations and guidelines Strengths of the policy-based design Disadvantages of policy-based design Guidelines for policy-based designs Summary Questions Chapter 16: Adapters and Decorators Technical requirements The decorator pattern Basic decorator pattern Decorators the C++ way Polymorphic decorators and their limitations Composable decorators The Adapter pattern Basic Adapter pattern Function adapters Adapter or Decorator Compile-time adapters Adapter versus policy Adapter solution Policy solution Summary Questions Chapter 17: The Visitor Pattern and Multiple Dispatch The Visitor pattern What is the Visitor pattern? Basic Visitor in C++ Visitor generalizations and limitations Visiting complex objects Visiting composite objects Serialization and deserialization with Visitor Acyclic Visitor Visitors in modern C++ Generic Visitor Lambda Visitor Generic Acyclic Visitor Compile-time Visitor Visitor in C++17 Summary Questions Chapter 18: Patterns for Concurrency Technical requirements C++ and concurrency Synchronization patterns Mutex and locking patterns No sharing is the best sharing Waiting patterns Lock-free synchronization patterns Concurrent design patterns and guidelines Thread safety guarantees Transactional interface design Data structures with access limitations Concurrent execution patterns Active object Reactor Object pattern Proactor Object pattern Monitor pattern Coroutine patterns in C++ Summary Questions Assessments Index Other Books You May Enjoy