反模式:危机中软件架构和项目的重构

反模式:危机中软件架构和项目的重构
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [美] (Brown W.J.) ,
2008-01
版次: 1
ISBN: 9787115162793
定价: 45.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 216页
字数: 363千字
原版书名: AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis
  •   模式是可以复用的优秀解决方案。本书从一个新的角度审视模式,提出了反模式的概念,介绍了在软件开发中常常出现的问题——将设计模式错误应用于不适当的上下文环境。首先,定义了软件开发参考模型和文档模板来说明这些反模式。然后,从开发人员角度、架构角度和管理角度三个方面对这些反模式逐一说明,并说明了与特定反模式相关的背景、原因、症状和后果,让读者可以迅速地检验身边的项目是否出现了这些状况,同时也针对每个反模式给出了相应的解决方案。
      本书适用于从事项目管理和软件开发的相关人员。   WilliamJ.Brown曾任Saga软件公司研发总监和OMG金融业工作组主席。擅长金融行业大型软件系统的开发。 第一部分 反模式绪论
    第1章 模式与反模式简介 3
    1.1 反模式就是揭露假象 3
    1.2 反模式的概念 6
    1.3 反模式的由来 7
    1.4 本书组织结构 10
    第2章 反模式参考模型 11
    2.1 视角 13
    2.2 根源 14
    2.2.1 匆忙 14
    2.2.2 漠然 15
    2.2.3 思想狭隘 16
    2.2.4 懒惰 16
    2.2.5 贪婪 17
    2.2.6 无知 18
    2.2.7 自负 18
    2.3 原力 19
    2.4 软件设计层次模型 25
    2.4.1 对象层 28
    2.4.2 微架构层 28
    2.4.3 框架层 28
    2.4.4 应用层 29
    2.4.5 系统层 29
    2.4.6 企业层 31
    2.4.7 全球层 32
    2.4.8 设计层次小结 32
    2.5 架构规模和原力 33
    第3章 模式和反模式的模板 35
    3.1 退化形式 35
    3.2 Alexander形式 36
    3.3 最小化模板(微型模式) 36
    3.4 小型模式模板 36
    3.4.1 归纳式小型模式 37
    3.4.2 演绎式小型模式 37
    3.5 正式模板 37
    3.5.1 GoF模板 37
    3.5.2 模式系统模板 38
    3.6 对设计模式模板的反思 38
    3.7 反模式模板 39
    3.7.1 伪反模式模板 40
    3.7.2 小型反模式 40
    3.8 完整的反模式模板 40
    第4章 对使用反模式的建议 43
    4.1 机能不良环境 43
    4.2 反模式与变化 44
    4.3 编写新反模式 45
    4.4 小结 46

    第二部分 反模式
    第5章 软件开发性反模式 49
    5.1 软件重构 49
    5.2 开发性反模式摘要 50
    5.3 TheBlob(胖球) 52
    5.3.1 背景 52
    5.3.2 一般形式 53
    5.3.3 症状和后果 54
    5.3.4 典型原因 54
    5.3.5 已知例外 55
    5.3.6 重构方案 55
    5.3.7 变化 58
    5.3.8 对其他视角和规模的适用性 59
    5.3.9 示例 59
    5.4 LavaFlow(岩浆流) 62
    5.4.1 背景 62
    5.4.2 一般形式 63
    5.4.3 症状和后果 65
    5.4.4 典型原因 65
    5.4.5 已知例外 66
    5.4.6 重构方案 66
    5.4.7 示例 66
    5.4.8 相关解决方案 67
    5.4.9 对其他视角和规模的适用性 67
    5.5 FunctionalDecomposition(功能分解) 69
    5.5.1 背景 69
    5.5.2 一般形式 69
    5.5.3 症状和后果 69
    5.5.4 典型原因 70
    5.5.5 已知例外 70
    5.5.6 重构方案 70
    5.5.7 示例 71
    5.5.8 相关解决方案 72
    5.5.9 对其他视角和规模的适用性 72
    5.6 Poltergeist(恶作剧鬼) 73
    5.6.1 背景 73
    5.6.2 一般形式 73
    5.6.3 症状和后果 74
    5.6.4 典型原因 75
    5.6.5 已知例外 75
    5.6.6 重构方案 75
    5.6.7 示例 75
    5.6.8 相关解决方案 76
    5.6.9 对其他视角和规模的适用性 76
    5.7 GoldenHammer(金锤) 78
    5.7.1 背景 78
    5.7.2 一般形式 79
    5.7.3 症状和后果 79
    5.7.4 典型原因 79
    5.7.5 已知例外 79
    5.7.6 重构方案 80
    5.7.7 变化 81
    5.7.8 示例 81
    5.7.9 相关方案 81
    5.8 SpaghettiCode(面条代码) 83
    5.8.1 背景 83
    5.8.2 一般形式 83
    5.8.3 症状和后果 83
    5.8.4 典型原因 84
    5.8.5 已知例外 84
    5.8.6 重构方案 84
    5.8.7 示例 86
    5.8.8 相关解决方案 89
    5.9 Cut-And-PasteProgramming(剪贴编程) 92
    5.9.1 背景 92
    5.9.2 一般形式 92
    5.9.3 症状和后果 92
    5.9.4 典型原因 93
    5.9.5 已知例外 93
    5.9.6 重构方案 93
    5.9.7 示例 94
    5.9.8 相关解决方案 95
    第6章 软件架构性反模式 97
    6.1 架构性反模式摘要 98
    6.2 StovepipeEnterprise(烟囱企业) 100
    6.2.1 背景 100
    6.2.2 一般形式 100
    6.2.3 症状和后果 101
    6.2.4 典型原因 101
    6.2.5 已知例外 101
    6.2.6 重构方案 102
    6.2.7 示例 105
    6.2.8 相关解决方案 106
    6.2.9 对其他视角和规模的适用性 107
    6.3 StovepipeSystem(烟囱系统) 108
    6.3.1 背景 108
    6.3.2 一般形式 108
    6.3.3 症状和后果 109
    6.3.4 典型原因 109
    6.3.5 已知例外 109
    6.3.6 重构方案 109
    6.3.7 示例 110
    6.3.8 相关解决方案 112
    6.3.9 对其他视角和规模的适用性 112
    6.4 VendorLock-In(供应商锁定) 113
    6.4.1 背景 113
    6.4.2 一般形式 114
    6.4.3 症状和后果 114
    6.4.4 典型原因 114
    6.4.5 已知例外 115
    6.4.6 重构方案 115
    6.4.7 变化 116
    6.4.8 示例 117
    6.4.9 相关解决方案 117
    6.4.10 对其他视角和规模的适用性 117
    6.5 ArchitectureByImplication(实现主导架构) 120
    6.5.1 背景 120
    6.5.2 一般形式 120
    6.5.3 症状和后果 121
    6.5.4 典型原因 121
    6.5.5 已知例外 121
    6.5.6 重构方案 122
    6.5.7 变化 123
    6.5.8 示例 123
    6.5.9 相关解决方案 124
    6.5.10 对其他视角和规模的适用性 124
    6.6 DesignByCommittee(委员会设计) 126
    6.6.1 背景 126
    6.6.2 一般形式 126
    6.6.3 症状和后果 126
    6.6.4 典型原因 127
    6.6.5 已知例外 127
    6.6.6 重构方案 127
    6.6.7 变化 129
    6.6.8 示例 129
    6.6.9 相关解决方案、模式和反模式 131
    6.6.10 对其他视角和规模的适用性 132
    6.7 ReinventTheWheel(重新发明轮子) 134
    6.7.1 背景 134
    6.7.2 一般形式 134
    6.7.3 症状和后果 135
    6.7.4 典型原因 135
    6.7.5 已知例外 135
    6.7.6 重构方案 135
    6.7.7 变化 136
    6.7.8 示例 137
    6.7.9 相关解决方案 139
    6.7.10 对其他视角和规模的适用性 139
    第7章 软件项目管理性反模式 141
    7.1 管理角色的转变 141
    7.2 管理性反模式摘要 142
    7.3 AnalysisParalysis(分析瘫痪) 145
    7.3.1 背景 145
    7.3.2 一般形式 145
    7.3.3 症状和后果 146
    7.3.4 典型原因 146
    7.3.5 已知例外 147
    7.3.6 重构方案 147
    7.4 DeathByPlanning(规划致死) 149
    7.4.1 背景 149
    7.4.2 一般形式 149
    7.4.3 症状和后果 151
    7.4.4 典型原因 152
    7.4.5 已知例外 152
    7.4.6 重构方案 152
    7.4.7 变化 154
    7.4.8 示例 156
    7.4.9 相关解决方案 157
    7.4.10 对其他视角和规模的适用性 158
    7.5 Corncob(玉米棒子) 159
    7.5.1 背景 159
    7.5.2 一般形式 159
    7.5.3 症状和后果 159
    7.5.4 典型原因 160
    7.5.5 已知例外 160
    7.5.6 重构方案 160
    7.5.7 变化 161
    7.5.8 示例 163
    7.5.9 相关解决方案 163
    7.5.10 对其他视角和规模的适用性 163
    7.6 IrrationalManagement(非理性管理) 165
    7.6.1 背景 165
    7.6.2 一般形式 165
    7.6.3 症状和后果 166
    7.6.4 典型原因 166
    7.6.5 已知例外 166
    7.6.6 重构方案 166
    7.6.7 变化 169
    7.6.8 示例 169
    7.7 ProjectMismanagement(项目管理不善) 172
    7.7.1 背景 172
    7.7.2 一般形式 172
    7.7.3 症状和后果 173
    7.7.4 典型原因 173
    7.7.5 已知例外 173
    7.7.6 重构方案 173
    7.7.7 变化 174
    7.7.8 示例 175
    7.7.9 相关解决方案 176

    第三部分 结论和资源

    附录A 反模式大纲 181
    附录B 反模式术语表 187
    附录C 缩略语 191
    附录D 参考文献 193
    索引 199
  • 内容简介:
      模式是可以复用的优秀解决方案。本书从一个新的角度审视模式,提出了反模式的概念,介绍了在软件开发中常常出现的问题——将设计模式错误应用于不适当的上下文环境。首先,定义了软件开发参考模型和文档模板来说明这些反模式。然后,从开发人员角度、架构角度和管理角度三个方面对这些反模式逐一说明,并说明了与特定反模式相关的背景、原因、症状和后果,让读者可以迅速地检验身边的项目是否出现了这些状况,同时也针对每个反模式给出了相应的解决方案。
      本书适用于从事项目管理和软件开发的相关人员。
  • 作者简介:
      WilliamJ.Brown曾任Saga软件公司研发总监和OMG金融业工作组主席。擅长金融行业大型软件系统的开发。
  • 目录:
    第一部分 反模式绪论
    第1章 模式与反模式简介 3
    1.1 反模式就是揭露假象 3
    1.2 反模式的概念 6
    1.3 反模式的由来 7
    1.4 本书组织结构 10
    第2章 反模式参考模型 11
    2.1 视角 13
    2.2 根源 14
    2.2.1 匆忙 14
    2.2.2 漠然 15
    2.2.3 思想狭隘 16
    2.2.4 懒惰 16
    2.2.5 贪婪 17
    2.2.6 无知 18
    2.2.7 自负 18
    2.3 原力 19
    2.4 软件设计层次模型 25
    2.4.1 对象层 28
    2.4.2 微架构层 28
    2.4.3 框架层 28
    2.4.4 应用层 29
    2.4.5 系统层 29
    2.4.6 企业层 31
    2.4.7 全球层 32
    2.4.8 设计层次小结 32
    2.5 架构规模和原力 33
    第3章 模式和反模式的模板 35
    3.1 退化形式 35
    3.2 Alexander形式 36
    3.3 最小化模板(微型模式) 36
    3.4 小型模式模板 36
    3.4.1 归纳式小型模式 37
    3.4.2 演绎式小型模式 37
    3.5 正式模板 37
    3.5.1 GoF模板 37
    3.5.2 模式系统模板 38
    3.6 对设计模式模板的反思 38
    3.7 反模式模板 39
    3.7.1 伪反模式模板 40
    3.7.2 小型反模式 40
    3.8 完整的反模式模板 40
    第4章 对使用反模式的建议 43
    4.1 机能不良环境 43
    4.2 反模式与变化 44
    4.3 编写新反模式 45
    4.4 小结 46

    第二部分 反模式
    第5章 软件开发性反模式 49
    5.1 软件重构 49
    5.2 开发性反模式摘要 50
    5.3 TheBlob(胖球) 52
    5.3.1 背景 52
    5.3.2 一般形式 53
    5.3.3 症状和后果 54
    5.3.4 典型原因 54
    5.3.5 已知例外 55
    5.3.6 重构方案 55
    5.3.7 变化 58
    5.3.8 对其他视角和规模的适用性 59
    5.3.9 示例 59
    5.4 LavaFlow(岩浆流) 62
    5.4.1 背景 62
    5.4.2 一般形式 63
    5.4.3 症状和后果 65
    5.4.4 典型原因 65
    5.4.5 已知例外 66
    5.4.6 重构方案 66
    5.4.7 示例 66
    5.4.8 相关解决方案 67
    5.4.9 对其他视角和规模的适用性 67
    5.5 FunctionalDecomposition(功能分解) 69
    5.5.1 背景 69
    5.5.2 一般形式 69
    5.5.3 症状和后果 69
    5.5.4 典型原因 70
    5.5.5 已知例外 70
    5.5.6 重构方案 70
    5.5.7 示例 71
    5.5.8 相关解决方案 72
    5.5.9 对其他视角和规模的适用性 72
    5.6 Poltergeist(恶作剧鬼) 73
    5.6.1 背景 73
    5.6.2 一般形式 73
    5.6.3 症状和后果 74
    5.6.4 典型原因 75
    5.6.5 已知例外 75
    5.6.6 重构方案 75
    5.6.7 示例 75
    5.6.8 相关解决方案 76
    5.6.9 对其他视角和规模的适用性 76
    5.7 GoldenHammer(金锤) 78
    5.7.1 背景 78
    5.7.2 一般形式 79
    5.7.3 症状和后果 79
    5.7.4 典型原因 79
    5.7.5 已知例外 79
    5.7.6 重构方案 80
    5.7.7 变化 81
    5.7.8 示例 81
    5.7.9 相关方案 81
    5.8 SpaghettiCode(面条代码) 83
    5.8.1 背景 83
    5.8.2 一般形式 83
    5.8.3 症状和后果 83
    5.8.4 典型原因 84
    5.8.5 已知例外 84
    5.8.6 重构方案 84
    5.8.7 示例 86
    5.8.8 相关解决方案 89
    5.9 Cut-And-PasteProgramming(剪贴编程) 92
    5.9.1 背景 92
    5.9.2 一般形式 92
    5.9.3 症状和后果 92
    5.9.4 典型原因 93
    5.9.5 已知例外 93
    5.9.6 重构方案 93
    5.9.7 示例 94
    5.9.8 相关解决方案 95
    第6章 软件架构性反模式 97
    6.1 架构性反模式摘要 98
    6.2 StovepipeEnterprise(烟囱企业) 100
    6.2.1 背景 100
    6.2.2 一般形式 100
    6.2.3 症状和后果 101
    6.2.4 典型原因 101
    6.2.5 已知例外 101
    6.2.6 重构方案 102
    6.2.7 示例 105
    6.2.8 相关解决方案 106
    6.2.9 对其他视角和规模的适用性 107
    6.3 StovepipeSystem(烟囱系统) 108
    6.3.1 背景 108
    6.3.2 一般形式 108
    6.3.3 症状和后果 109
    6.3.4 典型原因 109
    6.3.5 已知例外 109
    6.3.6 重构方案 109
    6.3.7 示例 110
    6.3.8 相关解决方案 112
    6.3.9 对其他视角和规模的适用性 112
    6.4 VendorLock-In(供应商锁定) 113
    6.4.1 背景 113
    6.4.2 一般形式 114
    6.4.3 症状和后果 114
    6.4.4 典型原因 114
    6.4.5 已知例外 115
    6.4.6 重构方案 115
    6.4.7 变化 116
    6.4.8 示例 117
    6.4.9 相关解决方案 117
    6.4.10 对其他视角和规模的适用性 117
    6.5 ArchitectureByImplication(实现主导架构) 120
    6.5.1 背景 120
    6.5.2 一般形式 120
    6.5.3 症状和后果 121
    6.5.4 典型原因 121
    6.5.5 已知例外 121
    6.5.6 重构方案 122
    6.5.7 变化 123
    6.5.8 示例 123
    6.5.9 相关解决方案 124
    6.5.10 对其他视角和规模的适用性 124
    6.6 DesignByCommittee(委员会设计) 126
    6.6.1 背景 126
    6.6.2 一般形式 126
    6.6.3 症状和后果 126
    6.6.4 典型原因 127
    6.6.5 已知例外 127
    6.6.6 重构方案 127
    6.6.7 变化 129
    6.6.8 示例 129
    6.6.9 相关解决方案、模式和反模式 131
    6.6.10 对其他视角和规模的适用性 132
    6.7 ReinventTheWheel(重新发明轮子) 134
    6.7.1 背景 134
    6.7.2 一般形式 134
    6.7.3 症状和后果 135
    6.7.4 典型原因 135
    6.7.5 已知例外 135
    6.7.6 重构方案 135
    6.7.7 变化 136
    6.7.8 示例 137
    6.7.9 相关解决方案 139
    6.7.10 对其他视角和规模的适用性 139
    第7章 软件项目管理性反模式 141
    7.1 管理角色的转变 141
    7.2 管理性反模式摘要 142
    7.3 AnalysisParalysis(分析瘫痪) 145
    7.3.1 背景 145
    7.3.2 一般形式 145
    7.3.3 症状和后果 146
    7.3.4 典型原因 146
    7.3.5 已知例外 147
    7.3.6 重构方案 147
    7.4 DeathByPlanning(规划致死) 149
    7.4.1 背景 149
    7.4.2 一般形式 149
    7.4.3 症状和后果 151
    7.4.4 典型原因 152
    7.4.5 已知例外 152
    7.4.6 重构方案 152
    7.4.7 变化 154
    7.4.8 示例 156
    7.4.9 相关解决方案 157
    7.4.10 对其他视角和规模的适用性 158
    7.5 Corncob(玉米棒子) 159
    7.5.1 背景 159
    7.5.2 一般形式 159
    7.5.3 症状和后果 159
    7.5.4 典型原因 160
    7.5.5 已知例外 160
    7.5.6 重构方案 160
    7.5.7 变化 161
    7.5.8 示例 163
    7.5.9 相关解决方案 163
    7.5.10 对其他视角和规模的适用性 163
    7.6 IrrationalManagement(非理性管理) 165
    7.6.1 背景 165
    7.6.2 一般形式 165
    7.6.3 症状和后果 166
    7.6.4 典型原因 166
    7.6.5 已知例外 166
    7.6.6 重构方案 166
    7.6.7 变化 169
    7.6.8 示例 169
    7.7 ProjectMismanagement(项目管理不善) 172
    7.7.1 背景 172
    7.7.2 一般形式 172
    7.7.3 症状和后果 173
    7.7.4 典型原因 173
    7.7.5 已知例外 173
    7.7.6 重构方案 173
    7.7.7 变化 174
    7.7.8 示例 175
    7.7.9 相关解决方案 176

    第三部分 结论和资源

    附录A 反模式大纲 181
    附录B 反模式术语表 187
    附录C 缩略语 191
    附录D 参考文献 193
    索引 199
查看详情