ورود به حساب

نام کاربری گذرواژه

گذرواژه را فراموش کردید؟ کلیک کنید

حساب کاربری ندارید؟ ساخت حساب

ساخت حساب کاربری

نام نام کاربری ایمیل شماره موبایل گذرواژه

برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید


09117307688
09117179751

در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید

دسترسی نامحدود

برای کاربرانی که ثبت نام کرده اند

ضمانت بازگشت وجه

درصورت عدم همخوانی توضیحات با کتاب

پشتیبانی

از ساعت 7 صبح تا 10 شب

دانلود کتاب Hands-On Design Patterns with C++: Solve common C++ problems with modern design patterns and build robust applications

دانلود کتاب الگوهای طراحی عملی با C++: حل مشکلات رایج C++ با الگوهای طراحی مدرن و ایجاد برنامه های کاربردی قوی

Hands-On Design Patterns with C++: Solve common C++ problems with modern design patterns and build robust applications

مشخصات کتاب

Hands-On Design Patterns with C++: Solve common C++ problems with modern design patterns and build robust applications

ویرایش:  
نویسندگان:   
سری:  
ISBN (شابک) : 1788832566, 9781788832564 
ناشر: Packt Publishing 
سال نشر: 2019 
تعداد صفحات: 0 
زبان: English 
فرمت فایل : EPUB (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) 
حجم فایل: 6 مگابایت 

قیمت کتاب (تومان) : 31,000



ثبت امتیاز به این کتاب

میانگین امتیاز به این کتاب :
       تعداد امتیاز دهندگان : 9


در صورت تبدیل فایل کتاب Hands-On Design Patterns with C++: Solve common C++ problems with modern design patterns and build robust applications به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.

توجه داشته باشید کتاب الگوهای طراحی عملی با C++: حل مشکلات رایج C++ با الگوهای طراحی مدرن و ایجاد برنامه های کاربردی قوی نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.


توضیحاتی در مورد کتاب الگوهای طراحی عملی با C++: حل مشکلات رایج C++ با الگوهای طراحی مدرن و ایجاد برنامه های کاربردی قوی



درباره مفاهیمی مانند برنامه نویسی شی گرا (OOP)، برنامه نویسی تابعی، برنامه نویسی عمومی، و کتابخانه قالب استاندارد (STL)، به همراه کاوش در آخرین ویژگی های C <// p>

ویژگی های کلیدی

  • در الگوهای اصلی و اجزای C برای تسلط بر طراحی برنامه کاربردی کاوش کنید
  • آموزش ترفندها، تکنیک ها و بهترین شیوه ها برای مقابله با طراحی رایج و چالش های معماری
  • درک محدودیت های تحمیل شده توسط C و نحوه حل آنها با استفاده از الگوهای طراحی

توضیحات کتاب

C یک برنامه نویسی همه منظوره است. زبان طراحی شده برای اطمینان از کارایی، عملکرد و انعطاف پذیری بهینه است، در حالی که الگوهای طراحی معمولاً راه حل های پذیرفته شده برای مشکلات طراحی شناخته شده هستند. در اصل، آنها کتابخانه ای از اجزای قابل استفاده مجدد هستند که فقط برای معماری نرم افزار طراحی شده اند، نه برای پیاده سازی بتن.

این کتاب الگوهای طراحی را پوشش می دهد که به طور طبیعی نیازهای یک برنامه نویس C را برآورده می کند، با تمرکز بر روی مفاهیم ضروری C و الگوهایی که به طور منحصر به فردی از ویژگی های C بهره می برند، به ویژه برنامه نویسی عمومی. همچنین با اصطلاحات C مانند Resource Acquisition Is Initialization (RAII) و type erasure نیز آشنا خواهید شد. با داشتن دانش این الگوها، زمان کمتری را صرف جستجوی راه حلی برای یک مشکل رایج خواهید کرد و با راه حل های توسعه یافته از تجربه و همچنین مزایا و معایب آنها آشنا خواهید شد. سپس بررسی خواهید کرد که چگونه می توان از الگوهای طراحی به عنوان روشی مختصر و کارآمد برای برقراری ارتباط استفاده کرد. از آنجایی که یک الگو یک راه حل آشنا و قابل تشخیص فوری برای یک مشکل خاص است، با استفاده از آن، گاهی اوقات با یک خط کد، می توانید مقدار قابل توجهی از اطلاعات را منتقل کنید. علاوه بر این، خواهید فهمید که چگونه هر الگو برای حل یک مشکل خاص، از مشکلات طراحی رابط گرفته تا چالش های معماری سیستم، استفاده می شود. برای فصل های پایانی، کتاب شما را از طریق برخی از الگوهای طراحی پیشرفته راهنمایی می کند. همچنین متوجه خواهید شد که چگونه می توانید از برخی الگوهای پیشرفته برای رسیدگی به مشکلات طراحی پیچیده تر استفاده کنید.

در پایان این کتاب، درک جامعی از الگوهای طراحی برای ایجاد قوی، قابل استفاده مجدد و کد قابل نگهداری.

آنچه یاد خواهید گرفت

  • متداول ترین الگوهای طراحی مورد استفاده در C را بشناسید
  • درک نحوه استفاده از برنامه نویسی عمومی C برای حل رایج مشکلات طراحی
  • قوی ترین اصطلاحات C را به همراه نقاط قوت و معایب آنها کاوش کنید
  • چگونگی استفاده از اصطلاحات رایج C را با برنامه نویسی عمومی کشف کنید
  • درک تاثیر الگوهای طراحی بر روی عملکرد یک برنامه
  • تفاوت بین چندشکلی پویا و ایستا را بیاموزید

این کتاب برای چه کسی است

این کتاب برای C با تجربه است توسعه دهندگان و برنامه نویسانی که می خواهند درباره الگوها و اصول طراحی نرم افزار بیاموزند و از آنها برای ایجاد برنامه های قوی، قابل استفاده مجدد و به راحتی قابل نگهداری استفاده کنند.

فهرست محتوا

  1. مقدمه ای بر وراثت و چندشکلی
  2. کلاس و الگوهای تابع
  3. مالکیت حافظه
  4. تغییر - از ساده به ظریف
  5. نگاهی جامع به دستیابی به منابع مقداردهی اولیه (RAII)
  6. پاک کردن نوع
  7. SFINAE و مدیریت رزولوشن اضافه بار
  8. الگوی عجیب و غریب تکرارشونده الگو
  9. به نام آرگومان ها و زنجیره روش< /li>
  10. بهینه سازی بافر محلی
  11. Scopeguard
  12. Friend Factory
  13. سازندگان و کارخانه های مجازی
  14. الگوی روش الگو و اصطلاح غیر مجازی
  15. Singleton: یک الگوی OOP کلاسیک
  16. طراحی مبتنی بر سیاست
  17. آداپتورها و دکوراتورها
  18. بازدیدکننده و ارسال چندگانه< /li>

توضیحاتی درمورد کتاب به خارجی

Gain comprehensive insights into concepts such as object-oriented programming (OOP), functional programming, generic programming, and the Standard Template Library (STL), along with exploring the latest features of C++

Key Features

  • Delve into the core patterns and components of C++ to master application design
  • Learn tricks, techniques, and best practices to tackle common design and architectural challenges
  • Understand the limitations imposed by C++ and how to solve them using design patterns

Book Description

C++ is a general-purpose programming language designed to ensure optimal efficiency, performance, and flexibility, while design patterns are commonly accepted solutions to well-recognized design problems. In essence, they are a library of reusable components, designed only for software architecture, and not for concrete implementation.

This book covers the design patterns that naturally lend themselves to the needs of a C++ programmer, focusing on essential C++ concepts and on the patterns that uniquely benefit from the features of C++, in particular, generic programming. You'll also get to grips with C++ idioms such as Resource Acquisition Is Initialization (RAII) and type erasure. Armed with the knowledge of these patterns, you will spend less time searching for a solution to a common problem and be familiar with the solutions developed from experience, as well as their advantages and drawbacks. You'll then explore how design patterns can be used as a concise and an efficient way to communicate. Since a pattern is a familiar and instantly recognizable solution to a specific problem, by using it, sometimes with a single line of code, you can convey a considerable amount of information. In addition to this, you'll understand how each pattern is used for solving a specific problem, from interface design problems through to system architecture challenges. Toward the concluding chapters, the book will guide you through some advanced design patterns. You'll also discover how you can use some advanced patterns to address more complex design problems.

By the end of this book, you will have gained a comprehensive understanding of design patterns to create robust, reusable, and maintainable code.

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, along with their strengths and drawbacks
  • Discover how to use popular C++ idioms with generic programming
  • Understand the impact of design patterns on a program's performance
  • Learn the difference between dynamic and static polymorphism

Who this book is for

This book is for experienced C++ developers and programmers who want to learn about software design patterns and principles and apply them to create robust, reusable, and easily maintainable apps.

Table of Contents

  1. An introduction to Inheritance and polymorphism
  2. Class and function templates
  3. Memory ownership
  4. Swap - from simple to subtle
  5. A Comprehensive Look at Resource Acquisition is Initialization (RAII)
  6. Type Erasure
  7. SFINAE and Overload Resolution Management
  8. The Curiously Recurring Template Pattern
  9. Named Arguments and Method Chaining
  10. Local Buffer Optimization
  11. Scopeguard
  12. Friend Factory
  13. Virtual Constructors and Factories
  14. The Template Method Pattern and the Non-Virtual Idiom
  15. Singleton: a Classic OOP Pattern
  16. Policy-based design
  17. Adaptors and Decorators
  18. Visitor and multiple dispatch


فهرست مطالب

Cover
Title Page
Copyright and Credits
About Packt
Contributors
Table of Contents
Preface
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 template
		Non-type template parameters
	Template instantiations
		Function templates
		Class templates
	Template specializations
		Explicit specialization
		Partial specialization
	Template function overloading
	Variadic templates
	Lambda expressions
	Summary
	Questions
	Further reading
Chapter 3: Memory 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
	Summary
	Questions
	Further reading
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
	Summary
	Questions
	Further reading
Chapter 6: Understanding Type Erasure
	Technical requirements
	What is type erasure?
		Type erasure by example
	How is type erasure implemented in C++?
		Very old type erasure
		Object-oriented type erasure
		The opposite of the type erasure
		Type erasure in C++
	When to use type erasure, and when to avoid it
		Type erasure and software design
		Installing the micro-benchmark library
		The overhead of type erasure
	Summary
	Questions
Chapter 7: SFINAE 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
	Taking control of overload resolution
		Basic SFINAE
		Advanced SFINAE
		Advanced SFINAE revisited
		The ultimate SFINAE
	Summary
	Questions
	Further reading
Chapter 8: The Curiously Recurring Template Pattern
	Technical requirements
	Wrapping your head around CRTP
		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
	Summary
	Questions
Chapter 9: Named Arguments and Method Chaining
	Technical requirements
	The problem with arguments
		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
	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
		Type-erased and callable objects
		Local buffer optimization in the C++ library
	Downsides of local buffer optimization
	Summary
	Questions
	Further reading
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
	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
		Arguments for factory methods
		Dynamic type registry
		Polymorphic factory
	Factory-like patterns in C++
		Polymorphic copy
		CRTP Factory and return types
		CRTP Factory with less copy-paste
	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++
		A note about destructors
	Drawbacks of the Non-Virtual Interface
		Composability
		The Fragile Base Class problem
	Summary
	Questions
	Further reading
Chapter 15: Singleton - A Classic OOP Pattern
	Technical requirements
	The singleton pattern – what is it and what is it for?
		What is a singleton?
		When to use the singleton
	Types of singletons
		Static singleton
		Meyers\' Singleton
		Leaky singletons
	Summary
	Questions
Chapter 16: 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
	Almost policy-based approach
	Summary
	Questions
Chapter 17: 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
		Compile-time adapters
	Adapter versus policy
	Summary
	Questions
Chapter 18: The Visitor Pattern and Multiple Dispatch
	Technical requirements
	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
	Summary
	Questions
Assessments
Other Books You May Enjoy
Index




نظرات کاربران