正版分析模式 可复用的对象模型 +重构 改善既有代码的设计 第2版 软件开发项目管理书籍pdf下载

正版分析模式 可复用的对象模型 +重构 改善既有代码的设计 第2版 软件开发项目管理书籍百度网盘pdf下载

作者:
简介:正版分析模式 可复用的对象模型 +重构 改善既有代码的设计 第2版 软件开发项目管理书籍
出版社:
出版时间:
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍




9787115544544 9787115508645

分析模式 可复用的对象模型

要开发复杂的企业应用,先要为业务领域建立准确而深刻的分析模型。本书不是通过简化的案例讲述抽象的理论,而是直接给出来自真实项目的复杂模型,并以“模式”的方式进行归纳。本书不仅包括这些模式本身,还体现了作者丰富的实践经验和对建模技术的深入洞见。本书主要包括两部分:*一部分介绍来自人员与组织管理、观察与测量、存货与会计、计划、金融衍生品交易等多个业务领域的“分析模式”;*二部分则给出一系列“支持模式”,用于将分析模型实现为具体的软件。 具有一定经验的架构师、业务分析师以及*级开发人员通过研读本书可以很快将书中的模式和思路应用于实践,有效提高开发水平。软件开发的入门者阅读本书尽管未必能立刻领悟其全部内涵,但也足以打开一扇通向新境界的窗户,为日后的提高奠定基础。




马丁·福勒(Martin Fowler)世界软件开发大师,ThoughtWorks&席科学家。他是一位作家、演说者、咨询师和泛软件开发领域的意见*袖。他致力于改善企业级的软件设计,对*秀的设计以及支撑*秀设计的工程实践孜孜以求。他在重构、面向对象分析设计、模式、XP和UML等领域都有*越贡献,著有《重构:改善既有代码的设计》《分析模式:可复用的对象模型》《领域特定语言》《企业应用架构模式》等经典著作。




*1章 绪论 1
1.1 概念模型 1
1.2 模式的世界 4
1.3 本书中的模式 7
1.4 概念模型与业务过程再造 9
1.5 模式和框架 9
1.6 模式的使用 10
参考文献 12
*一部分 分析模式
*2章 责任 15
2.1 参与方(Party)模式 16
2.2 组织层级(Organization Hierarchies)模式 17
2.3 组织结构(Organization Structure)模式 18
2.4 责任(Accountability)模式 20
2.5 责任知识层(Accountability Kwledge Level)模式 21
2.6 参与方类型泛化(Party Type Generalizations)模式 23
2.7 分层责任(Hierarchic Accountability)模式 24
2.8 运作范围(Operating Scopes)模式 26
2.9 岗位(Post)模式 27
参考文献 28
3章 观察和测量 29
3.1 数量(Quantity)模式 30
3.2 换算率(Conversion Ratio)模式 31
3.3 复合单位(Compound Units)模式 32
3.4 测量(Measurement)模式 34
3.5 观察(Observation)模式 35
3.6 子类型化观察概念(Subtyping Observation Concepts)模式 38
3.7 规程(Protocol)模式 38
3.8 双重时间记录(Dual Time Record)模式 39
3.9 被否决观察(Rejected Observation)模式 40
3.10 有效观察、假定和推测(Active Observation, Hypothesis, and Projection)模式 40
3.11 关联观察(Associated Observation)模式 41
3.12 观察过程(Process of Observation)模式 42
参考文献 45
4章 在企业财务领域使用观察模式 46
4.1 企业片段(Enterprise Segment)模式 47
4.2 测量规程(Measurement Protocol)模式 53
4.3 范围(Range)模式 61
4.4 有范围现象(Phemen with Range)模式 62
4.5 使用结果框架(Using the Resulting Framework)模式 66
参考文献 67
5章 引用对象 68
5.1 名称(Name)模式 69
5.2 标识方案(Identification Scheme)模式 70
5.3 对象合并(Object Merge)模式 72
5.4 对象等价关系(Object Equivalence)模式 74
参考文献 75
6章 存货和会计 76
6.1 账户(Account)模式 78
6.2 会计事项(Transactions)模式 79
6.3 汇总账户(Summary Account)模式 81
6.4 备忘账户(Memo Account)模式 83
6.5 过账规则(Posting Rules)模式 84
6.6 单实例方法(Individual Instance Method)模式 85
6.7 过账规则执行(Posting Rule Eecution)模式 90
6.8 多账户过账规则(Posting Rules for Many Accounts)模式 94
6.9 选择分录(Choosing Entries)模式 96
6.10 会计实务(Accounting Practice)模式 97
6.11 分录来源(Sources of an Entry)模式 99
6.12 资产负债表和损益表(Balance Sheet and Income Statement)模式 99
6.13 对应账户(Corresponding Account)模式 100
6.14 特化账户模型(Specialized Account Model)模式 101
6.15 将分录记录到多个账户(Booking Entries to Multiple Accounts)模式 103
扩展阅读 106
参考文献 107
7章 使用会计模型 108
7.1 结构模型 109
7.2 实现该结构 111
7.3 新建电话服务 113
7.4 建立通话 115
7.5 实现基于账户的触发 116
7.6 划分日间和夜间通话 117
7.7 按时间收费 119
7.8 计税 122
7.9 结论和思考 123
参考文献 127
8章 计划 128
8.1 提议活动和已实施活动(Proposed and Implemented Action)模式 129
8.2 已完成活动和已放弃活动(Completed and Abandoned Actions)模式 130
8.3 暂停(Suspension)模式 131
8.4 计划(Plan)模式 132
8.5 规程(Protocol)模式 134
8.6 资源分配(Resource Allocation)模式 137
8.7 结果函数和启动函数(Outcome and Start Functions)模式 140
参考文献 142
9章 交易 143
9.1 合同(Contract)模式 143
9.2 组合(Portfolio)模式 147
9.3 报价(Quote)模式 150
9.4 场景(Scenario)模式 153
参考文献 160
*10章 衍生合同 161
10.1 远期合同(Forward Contracts)模式 162
10.2 期权(Options)模式 163
10.3 产品(Product)模式 168
10.4 子类型状态机(Subtype State Machines)模式 172
10.5 并列的应用和领域层级结构(Parallel Application and Domain Hierarchies)模式 177
参考文献 182
*11章 交易包 183
11.1 包的多重访问级别(Multiple Access Levels to a Package)模式 183
11.2 相互可见性(Mutual Visibility)模式 186
11.3 包的子类型化(Subtyping Packages)模式 189
11.4 结论和思考 190
参考文献 190
*二部分 支持模式
*12章 信息分层架构 193
12.1 两层架构(Two-Tier Architecture)模式 194
12.2 三层架构(Three-Tier Architecture)模式 195
12.3 展示层和应用逻辑层(Presentation and Application Logic)模式 198
12.4 数据库交互(Database Interaction)模式 203
12.5 结论和思考 206
参考文献 206
*13章 应用门面 208
13.1 一个卫生领域的例子 208
13.2 门面的内容 209
13.3 通用方法 213
13.4 作 213
13.5 类型转换 214
13.6 多个门面 216
参考文献 217
*14章 类型模型设计模板模式 218
14.1 实现关联(Implementing Associations)模式 220
14.2 实现泛化(Implementing Generalization)模式 226
14.3 对象创建(Object Creation)模式 232
14.4 对象销毁(Object Destruction)模式 233
14.5 入口点(Entry Point)模式 234
14.6 实现约束(Implementing Constraints)模式 236
14.7 其他技术的设计模板 237
参考文献 238
*15章 关联模式 239
15.1 关联类型(Associative Type)模式 240
15.2 键控映(Keyed Mapping)模式 242
15.3 历史映(Historic Mapping)模式 243
参考文献 247
*16章 后记 248
参考文献 249
附录A 技术和表示法 250
A.1 类型图 250
A.2 交互图 259
A.3 事件图 260
A.4 状态图 261
A.5 包图 262
参考文献 263
附录B 模式一览表 265


重构 改善既有代码的设计 2版

内容简介
《重构 改善既有代码的设计 2版 全彩精装版》是经典著作《重构》出版20年后的更新版。书中清晰揭示了重构的过程,解释了重构的原理和实践方式,并给出了何时以及何地应该开始挖掘代码以求改善。书中给出了60多个可行的重构,每个重构都介绍了一种经过验证的代码变换手法的动机和技术。本书提出的重构准则将帮助开发人员一次一小步地修改代码,从而减少了开发过程中的。



《重构 改善既有代码的设计 2版 全彩精装版》适合软件开发人员、项目管理人员等阅读,也可作为高等院校计算机及相关师生的参考读物。

目录
1 章 重构, 一个示例 1



1.1 起点 1



1.2 对此起始程序的评价 3



1.3 重构的 一步 5



1.4 分解statement 函数 6



1.5 进展:大量嵌套函数 22



1.6 拆分计算阶段与格式化阶段 24



1.7 进展:分离到两个文件(和两个阶段) 31



1.8 按类型重组计算过程 34



1.9 进展:使用多态计算器来提供数据 41



1.10 结语 43



 2 章 重构的原则 45



2.1 何谓重构 45



2.2 两顶帽子 46



2.3 为何重构 47



2.4 何时重构 50



2.5 重构的挑战 55



2.6 重构、架构和YAGNI 62



2.7 重构与软件开发过程 63



2.8 重构与性能 64



2.9 重构起源何处 67



2.10 自动化重构 68



2.11 延展阅读 70



3 章 代码的坏味道 71



3.1 神秘命名(Mysterious Name) 72



3.2 重复代码(Duplicated Code) 72



3.3 过长函数(Long Function) 73



3.4 过长参数列表(Long Parameter List) 74



3.5 全局数据(Global Data) 74



3.6 可变数据(Mutable Data) 75



3.7 发散式变化(Divergent Change) 76



3.8 霰弹式修改(Shotgun Surgery) 76



3.9 依恋情结(Feature Envy) 77



3.10 数据泥团(Data Clumps) 78



3.11 基本类型偏执(Primitive Obsession) 78



3.12 重复的switch(Repeated Switches) 79



3.13 循环语句(Loops) 79



3.14 冗赘的元素(Lazy Element) 80



3.15 夸夸其谈通用性(Speculative Generality) 80



3.16 临时字段(Temporary Field) 80



3.17 过长的消息链(Message Chains) 81



3.18 中间人(Middle Man) 81



3.19 内幕交易(Insider Trading) 82



3.20 过大的类(Large Class) 82



3.21 异曲同工的类(Alternative Classes with Different Interfaces) 83



3.22 纯数据类(Data Class) 83



3.23 被拒的遗赠(Refused Bequest) 83



3.24 注释(Comments) 84



4 章 构筑测试体系 85



4.1 自测试代码的价值 85



4.2 待测试的示例代码 87



4.3  一个测试 90



4.4 再添加一个测试 93



4.5 修改测试夹具 95



4.6 探测边界条件 96



4.7 测试远不止如此 99



5 章 介绍重构名录 101



5.1 重构的记录格式 101



5.2 挑选重构的依据 102



6 章 一组重构 105



6.1 提炼函数(Etract Function) 106



6.2 内联函数(Inline Function) 115



6.3 提炼变量(Etract Variable) 119



6.4 内联变量(Inline Variable) 123



6.5 改变函数声明(Change Function Declaration) 124



6.6 封装变量(Encapsulate Variable) 132



6.7 变量改名(Rename Variable) 137



6.8 引入参数对象(Introduce Parameter Object) 140



6.9 函数组类(Combine Functions into Class) 144



6.10 函数组变换(Combine Functions into Transform) 149



6.11 拆分阶段(Split Phase) 154



7 章 封装 161



7.1 封装记录(Encapsulate Record) 162



7.2 封装集合(Encapsulate Collection) 170



7.3 以对象取代基本类型(Replace Primitive with Object) 174



7.4 以查询取代临时变量(Replace Temp with Query) 178



7.5 提炼类(Etract Class) 182



7.6 内联类(Inline Class) 186



7.7 隐藏委托关系(Hide Delegate) 189



7.8 移除中间人(Remove Middle Man) 192



7.9 替换算法(Substitute Algorithm) 195



8 章 搬移特性 197



8.1 搬移函数 198



8.2 搬移字段(Move Field) 207



8.3 搬移语句到函数(Move Statements into Function) 213



8.4 搬移语句到调用者(Move Statements to Callers) 217



8.5 以函数调用取代内联代码(Replace Inline Code with Function Call) 222



8.6 移动语句(Slide Statements) 223



8.7 拆分循环(Split Loop) 227



8.8 以管道取代循环(Replace Loop with Pipeline) 231



8.9 移除死代码(Remove Dead Code) 237



9 章 重新组织数据 239



9.1 拆分变量(Split Variable) 240



9.2 字段改名(Rename Field) 244



9.3 以查询取代派生变量(Replace Derived Variable with Query) 248



9.4 将引用对象改为值对象(Change Reference to Value) 252



9.5 将值对象改为引用对象(Change Value to Reference) 256



 10 章 简化条件逻辑 259



10.1 分解条件表达式(Decompose Conditional) 260



10.2 合并条件表达式(Consolidate Conditional Epression) 263



10.3 以卫语句取代嵌套条件表达式(Replace Nested Conditional with Guard Clauses) 266



10.4 以多态取代条件表达式(Replace Conditional with Polymorphism) 272



10.5 引入特例(Introduce Special Case) 289



10.6 引入断言(Introduce Assertion) 302



 11 章 重构API 305



11.1 将查询函数和修改函数分离(Separate Query from Modifier) 306



11.2 函数参数化(Parameterize Function) 310



11.3 移除标记参数(Remove Flag Argument) 314



11.4 保持对象完整(Preserve Whole Object) 319



11.5 以查询取代参数(Replace Parameter with Query) 324



11.6 以参数取代查询(Replace Query with Parameter) 327



11.7 移除设值函数(Remove Setting Method) 331



11.8 以工厂函数取代构造函数(Replace Constructor with Factory Function) 334



11.9 以命令取代函数(Replace Function with Command) 337



11.10 以函数取代命令(Replace Command with Function) 344



 12 章 处理继承关系 349



12.1 函数上移(Pull Up Method) 350



12.2 字段上移(Pull Up Field) 353



12.3 构造函数本体上移(Pull Up Constructor Body) 355



12.4 函数下移(Push Down Method) 359



12.5 字段下移(Push Down Field) 361



12.6 以子类取代类型码(Replace Type Code with Subclasses) 362



12.7 移除子类(Remove Subclass) 369



12.8 提炼类(Etract Superclass) 375



12.9 折叠继承体系(Collapse Hierarchy) 380



12.10 以委托取代子类(Replace Subclass with Delegate) 381



12.11 以委托取代类(Replace Superclass with Delegate) 399



参考文献 405



索引 409


暂时没有目录,请见谅!

^_^:f6755959b980e4f5a3c258aa1d7dba2f