ورود به حساب

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

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

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

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

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

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


09117307688
09117179751

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

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

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

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

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

پشتیبانی

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

دانلود کتاب Large-Scale C++ Software Design

دانلود کتاب طراحی نرم افزار C++ در مقیاس بزرگ

Large-Scale C++ Software Design

مشخصات کتاب

Large-Scale C++ Software Design

دسته بندی: برنامه نویسی: زبان های برنامه نویسی
ویرایش:  
نویسندگان:   
سری:  
ISBN (شابک) : 0201633620 
ناشر: Addison Wesley 
سال نشر: 1996 
تعداد صفحات: 870 
زبان: English 
فرمت فایل : DJVU (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) 
حجم فایل: 19 مگابایت 

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



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

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


در صورت تبدیل فایل کتاب Large-Scale C++ Software Design به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.

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


توضیحاتی در مورد کتاب طراحی نرم افزار C++ در مقیاس بزرگ

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


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

Developing a large-scale software system in C++ requires more than just a sound understanding of the logical design issues covered in most books on C++ programming. To be successful, you will also need a grasp of physical design concepts that, while closely tied to the technical aspects of development, include a dimension with which even expert software developers may have little or no experience.
This is the definitive book for all C++ software professionals involved in large development efforts such as databases, operating systems, compilers, and frameworks. It is the first C++ book that actually demonstrates how to design large systems, and one of the few books on object-oriented design specifically geared to practical aspects of the C++ programming language.



فهرست مطالب

Large-Scale C++ Software Design
Contents
Figure List
Preface
Chapter 0: Introduction
	O.1 From C to C++
	0.2 Using C++ to Develop Large Projects
		0.2.1 Cyclic Dependencies
		0.2.2 Excessive Link-Time Dependencies
		0.2.3 Excessive Compile-Time Dependencies
		0.2.4 The Global Name Space
		0.2.5 Logical vs. Physical Design
	0.3 REUSE
	0.4 Quality
		0.4.1 Quality Assurance
		0.4.2 Quality Ensurance
	0.5 Software Development Tools
	0.6 Summary
PART I: BASICS
Chapter 1: Preliminaries
	1.1 Multi-File C++ Programs
		1.1.1 Declaration versus Definition
		1.1.2 Internal versus External Linkage
		1.1.3 Header (.h) Files
		1.1.4 Implementation (.c) Files
	1.2 typedef Declarations
	1.3 Assert Statements
	1.4 A Few Matters of Style
		1.4.1 Identifier Names
			1.4.1.1 Type Names
			1.4.1.2 Multi-Word Identifier Names
			1.4.1.3 Data Member Names
		1.4.2 Class Member Layout
	1.5 Iterators
	1.6 Logical Design Notation
		1.6.1 The IsA Relation
		1.6.2 The Uses-In-The-Interface Relation
			1.6.3. The Uses-In-The-Implementation Relation
			1.6.3.1 Uses
			1.6.3.2 HasA and HoldsA
			1.6.3.3 WasA
	1.7 Inheritance versus Layering
	1.8 Minimality
	1.9 Summary
Chapter 2: Ground Rules
	2.1 Overview
	2.2 Member Data Access
	2.3 The Global Name Space
		2.3.1 Global Data
		2.3.2 Free Functions
		2.3.3, Enumerations, Typedefs, and Constant Data
		2.3.4 Preprocessor Macros
		2.3.5 Names in Header Files
	2.4 Include Guards
	2.5 Redundant Include Guards
	2.6 Documentation
	2.7 Identifier-Naming Conventions
	2.8 Summary
PART II: PHYSICAL DESIGN CONCEPTS
Chapter 3: Components
	3.1 Components versus Classes
	3.2 Physical Design Rules
	3.3 The DependsOn Relation
	3.4 Implied Dependency
	3.5 Extracting Actual Dependencies
	3.6 Friendship
		3.6.1 Long-Distance Friendship and Implied Dependency
		3.6.2 Friendship and Fraud
	3.7 Summary
Chapter 4: Physical Hierarchy
	4.1 A Metaphor for Software Testing
	4.2 A Complex Subsystem
	4.3 The Difficulty in Testing “Good” Interfaces
	4.4 Design for Testability
	4.5 Testing in Isolation
	4.6 Acyclic Physical Dependencies
	4.7 Level Numbers
		4.7.1 The Origin of Level Numbers
		4.7.2 Using Level Numbers in Software
	4.8 Hierarchical and Incremental Testing
	4.9 Testing a Complex Subsystem
	4.10 Testability versus Testing
	4.11 Cyclic Physical Dependencies
	4.12 Cumulative Component Dependency
	4.13 Physical Design Quality
	4.14 Summary
Chapter 5: Levelization
	5.1 Some Causes of Cyclic Physical Dependencies
		5.1.1 Enhancement
		5.1.2 Convenience
		5.1.3 Intrinsic Interdependency
	5.2 Escalation
	5.3 DeMotion
	5.4 Opaque Pointers
	5.5 Dumb Data
	5.6 Redundancy
	5.7 Callbacks
	5.8 Manager Class
	5.9 Factoring
	5.10 Escalating Encapsulation
	5.11 Summary
Chapter 6: Insulation
	6.1 From Encapsulation to Insulation
		6.1.1 The Cost of Compile-Time Coupling
	6.2 C++  and Compile-Time Coupling
		6.2.1 Inheritance (IsA) and Compile-Time Coupling
		6.2.2 Layering (HasA/HoldsA) and Compile-Time Coupling
		6.2.3 Inline Functions and Compile-Time Coupling
		6.2.4 Private Members and Compile-Time Coupling
		6.2.5 Protected Members and Compile-Time Coupling
		6.2.6 Compiler-Generated Member Functions and Compile-Time Coupling
		6.2.7 Include Directives and Compile-Time Coupling
		6.2.8 Default Arguments and Compile-Time Coupling
		6.2.9 Enumerations and Compile-Time Coupling
	6.3 Partial Insulation Techniques
		6.3.1 Removing Private Inheritance
		6.3.2 Removing Embedded Data Members
		6.3.3 Removing Private Member Functions
		6.3.4 Removing Protected Members
		6.3.5 Removing Private Member Data
		6.3.6 Removing Compiler-Generated Functions
		6.3.7 Removing Include Directives
		6.3.8 Removing Default Argument
		6.3.9 Removing Enumerations
	6.4 Total Insulation Techniques
		6.4.1 The Protocol Class
		6.4.2 The Fully Insulating Concrete Class
		6.4.3 The Insulating Wrapper
			6.4.3.1 Single-Component Wrappers
			6.4.3.2 Multi-Component Wrappers
	6.5 The Procedural Interface
		6.5.1 The Procedural Interface Architecture
		6.5.2 Creating and Destroying Opaque Objects
		6.5.3 Handles
		6.5.4 Accessing and Manipulating Opaque Objects
		6.5.5 Inheritance and Opaque Objects
	6.6 To Insulate or Not to Insulate
		6.6.1 The Cost of Insulation
		6.6.2 When Not to Insulate
		6.6.3 How to Insulate
		6.6.4 How Much to Insulate
	6.7 Summary
Chapter 7: Packages
	7.1 From Components to Packages
	7.2 Registered Package Prefixes
		7.2.1 The Need for Prefixes
		7.2.2 Namespaces
		7.2.3 Preserving Prefix Integrity
	7.3 Package Levelization
		7.3.1 The Importance of Levelizing Packages
		7.3.2 Package Levelization Techinques
		7.3.3 Partitioning a System
		7.3.4 Multi-Site Development
	7.4 Package Insulation
	7.5 Package Groups
	7.6 The Release Process
		7.6.1 The Release Structure
		7.6.2 Patches
	7.7 The main Program
	7.8 Start-Up
		7.8.1 Initialization Strategies
			7.8.1.1 The Wake-Up Initialized Technique
			7.8.1.2 The Explicit init Function Technique
			7.8.1.3 The Nifty Counter Technique
			7.8.1.4 The Check-Every-Time Technique
		7.8.2 Clean-Up
		7.8.3 Review
	7.9 Summary
PART III: LOGICAL DESIGN ISSUES
Chapter 8: Architecting a Component
	8.1 Abstractions and Components
	8.2 Component Interface Design
	8.3 Degrees of Encapsulation
	8.4 Auxiliary Implementation Classes
	8.5 Summary
Chapter 9: Designing a Function
	9.1 Function Interface Specification
		9.1.1 Operator or Non-Operator Function
		9.1.2 Free or Member Operator
		9.1.3 Virtual or Non-Virtual Function
		9.1.4 Pure or Non-Pure Virtual Member Function
		9.1.5 Static or Non-Static Member Function
		9.1.6 const Member or Non-const Member Function
		9.1.7 Public, Protected, or Private Member Function
		9.1.8 Return by Value, Reference, Or Pointer
		9.1.9 Return const Or Non-const
		9.1.10 Argument Optional or Required
		9.1.11 Pass Argument by Value, Reference, or Pointer
		9.1.12 Pass Argument as const or Non-const
		9.1.13 Friend or Non-Friend Function
		9.1.14 Inline or Non-Inline Function
	9.2 Fundamental Types Used in the Interface
		9.2.1 Using short in the Interface
		9.2.2 Using unsigned in the Interface
		9.2.3 Using long in the Interface
		9.2.4 Using float, double, and long double in the Interface
	9.3 Special-Case Functions
		9.3.1 Conversion Operators
		9.3.2 Compiler-Generated Value Semantics
		9.3.3 The Destructor
Chapter 10: Implementing an Object
	10.1 Member Data
		10.1.1 Natural Alignment
		10.1.2 Fundamental Types Used in the Implementation
		10.1.3 Using typedef in the Implementation
	10.2 Function Definitions
		10.2.1 Assert Yourself
		10.2.2 Avoid Special Casing
		10.2.3 Factor Instead of Duplicate
		10.2.4 Don’t Be Too Clever
	10.3 Memory Management
		10.3.1 Logical versus Physical State Values
		10.3.2 Physical Parameters
		10.3.3 Memory
		10.3.4 Class-Specific Memory Management
			10.3.4.1 Adding Custom Memory Management
			10.3.4.2 Hogging Memory
		10.3.5 Object-Specific Memory Management
	10.4 Using C++ Templates in Large Projects
		10.4.1 Compiler Implementations
		10.4.2 Managing Memory in Templates
		10.4.3 Patterns versus Templates
	10.5 Summary
Appendix A The Protocol Hierarchy
	Intent
	Also Known As
	Motivation
	Applicability
	Structure
	Participants
	Collaborations
	Consequences
	Implementation
	Sample Code
	Known Uses
	Related Patterns
Appendix B Implementing an ANSI C-Compatible C++ Interface
	B.1 Memory Allocation Error Detection
	B.2 Providing a Main Procedure (ANSI C Only)
Appendix C A Dependency Extractor/Analyzer Package
	C.1 Using adep, cdep, and 1dep
	C.2 Command-Line Documentation
	C.3 Idep Package Architecture
	C.4 Source Code
Appendix D Quick Reference
	D.1 Definitions
	D.2 Major Design Rules
	D.3 Minor Design Rules
	D.4 Guidelines
	D.5 Principles
	Bibliography
	Index




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