
作者:(德)克劳斯·伊格尔伯格(Klaus l
页数:15,415页
出版社:东南大学出版社
出版日期:2023
ISBN:9787576605532
电子书格式:pdf/epub/txt
内容简介
好的软件设计对于项目成功至关重要,但设计软件并非易事。你需要对设计决策的结果有深刻的理解,并很好地了解可用的设计方案。通过本书,有经验的C 开发人员将对实用这种现代语言的软件设计有一个透彻的、实用的、前所未有的理解。
C 培训师和顾问Klaus Iglberger解释了如何管理依赖性和抽象,提高软件实体的可变性和可扩展性,以及应用和实现现代设计模式来帮助你利用现今的一切可能性。软件设计是软件项目重要的一环,因为它影响到软件重要的属性:可维护性、可变性和可扩展性。
作者简介
[德]克劳斯·伊格尔伯格(Klaus Lglberger) is a freelancing C++ trainer and consultant. He shares his expertise of 15+ years of C++ in popular training courses around the world and is a frequent speaker at C++ conferences. Since his PhD in 2010 he has focused on large-scale software design and on how to improve the maintainability of software. His major interest is how to design for change and extensibility and how to apply design patterns to simplify the task.
目录
1. The Art of Software Design
Guideline 1: Understand the Importance of Software Design
Features Are Not Software Design
Software Design: The Art of Managing Dependencies and Abstractions
The Three Levels of Software Development
The Focus on Features
The Focus on Software Design and Design Principles
Guideline 2: Design for Change
Separation of Concerns
An Example of Artificial Coupling
Logical Versus Physical Coupling
Don’t Repeat Yourself
Avoid Premature Separation of Concerns
Guideline 3: Separate Interfaces to Avoid Artificial Coupling
Segregate Interfaces to Separate Concerns
Minimizing Requirements of Template Arguments
Guideline 4: Design for Testability
How to Test a Private Member Function
The True Solution: Separate Concerns
Guideline 5: Design for Extension
The Open-Closed Principle
Compile-Time Extensibility
Avoid Premature Design for Extension
2. The Art of Building Abstractions
Guideline 6: Adhere to the Expected Behavior of Abstractions
An Example of Violating Expectations
The Liskov Substitution Principle
Criticism of the Liskov Substitution Principle
The Need for Good and Meaningful Abstractions
Guideline 7: Understand the Similarities Between Base Classes and Concepts
Guideline 8: Understand the Semantic Requirements of Overload Sets
The Power of Free Functions: A Compile-Time Abstraction Mechanism
The Problem of Free Functions: Expectations on the Behavior
Guideline 9: Pay Attention to the Ownership of Abstractions
The Dependency Inversion Principle
Dependency Inversion in a Plug-In Architecture
Dependency Inversion via Templates
Dependency Inversion via Overload Sets
Dependency Inversion Principle Versus Single-Responsibility Principle
Guideline 10: Consider Creating an Architectural Document
3. The Purpose of Design Patterns
Guideline 11: Understand the Purpose of Design Patterns
A Design Pattern Has a Name
A Design Pattern Carries an Intent
A Design Pattern Introduces an Abstraction
A Design Pattern Has Been Proven
Guideline 12: Beware of Design Pattern Misconceptions
Design Patterns Are Not a Goal
Design Patterns Are Not About Implementation Details















