
编辑推荐
本书主要针对熟悉Java EE常见技术并立志向架构师方向发展的后台服务开发人员。
能帮助读者了解并掌握迈向架构师所需的各种知识体系和实践技巧。
关注于转型这个特定主题给出了作者自身的一些思考和总结,从内容上填补了市场上的这一空白。
作者简介
本书作者有近10年软件行业从业经验,在医疗、安防和电商行业都有所涉及,主持和参与过多个大型企业级应用和移动互联网系统的开发和管理工作,前后担任技术经理、系统分析架构师和部门经理等职务,目前就职于一家国内领先的电商独角兽企业。主持过十余个面向研发人员的技术和管理类培训系统课程,善于提炼和抽象核心内容作为教学内容,善于知识分享和技术人员培养,对系统架构设计和研发过程改进有丰富的经验和较深的理解。
目录
第一篇 程序员向架构师转型概述
第1章 程序员向架构师转型 2
1.1 架构设计基本概念 2
1.1.1 架构的基本定义 2
1.1.2 架构演进理论 4
1.1.3 架构设计与系统工程 7
1.2 剖析架构师角色 8
1.2.1 架构师角色 8
1.2.2 当程序员遇到架构师 10
1.3 架构师的视图和视角 11
1.3.1 架构师的视图 12
1.3.2 架构师的视角 16
1.3.3 视图视角与系统工程 18
1.4 程序员如何向架构师成功转型 19
1.4.1 转型成功的三段式模型 19
1.4.2 转型思维导图 20
1.4.3 作为架构师开展工作 21
1.5 本章小结 22
第二篇 软件架构设计知识体系
第2章 软件架构体系结构 24
2.1 软件体系结构 24
2.2 架构风格 25
2.2.1 分布式 25
2.2.2 事件驱动 28
2.2.3 系统结构 31
2.2.4 消息总线 32
2.2.5 适配与扩展 33
2.3 架构模式 35
2.3.1 数据访问 35
2.3.2 服务定位 36
2.3.3 异步化 38
2.3.4 资源管理 39
2.3.5 依赖管理 41
2.4 架构模型 44
2.5 本章小结 45
第3章 领域驱动设计 46
3.1 面向领域思想 46
3.1.1 架构设计与领域驱动 46
3.1.2 领域驱动设计核心概念 47
3.1.3 案例介绍 47
3.2 面向领域的策略设计 48
3.2.1 通用语言 48
3.2.2 领域与上下文 48
3.2.3 领域驱动的架构风格 51
3.2.4 案例策略设计 54
3.3 面向领域的技术设计 56
3.3.1 实体与值对象 56
3.3.2 领域服务 59
3.3.3 领域事件 60
3.3.4 聚合 62
3.3.5 资源库 64
3.3.6 集成界限上下文 65
3.3.7 应用程序 67
3.3.8 案例技术设计 67
3.4 案例实现 69
3.5 本章小结 70
第4章 分布式系统架构设计 72
4.1 分布式系统 73
4.2 RPC架构 74
4.2.1 网络通信 75
4.2.2 序列化 76
4.2.3 传输协议 77
4.2.4 服务调用 78
4.3 分布式服务架构 81
4.3.1 负载均衡与集群容错 81
4.3.2 服务路由 83
4.3.3 服务注册中心 84
4.3.4 服务发布与调用 88
4.3.5 服务监控与治理 90
4.4 分布式服务框架Dubbo剖析 91
4.4.1 Dubbo核心功能 91
4.4.2 Dubbo原理分析 94
4.5 微服务架构 102
4.5.1 微服务实现策略 103
4.5.2 微服务实现技术 104
4.5.3 微服务实现案例 108
4.6 本章小结 109
第5章 架构实现技术体系 110
5.1 缓存与性能优化 111
5.1.1 性能概述 111
5.1.2 Memcached 112
5.1.3 Redis 116
5.1.4 Nginx 120
5.2 消息传递系统 122
5.2.1 消息中间件需求 122
5.2.2 JMS 123
5.2.3 AMQP 126
5.2.4 Kafka 129
5.3 企业服务总线 130
5.3.1 服务总线解决方案 130
5.3.2 集成化端点 136
5.4 数据分析处理 140
5.4.1 轻量级批处理 140
5.4.2 SpringBatch 142
5.5 安全性 147
5.5.1 安全性概述 147
5.5.2 安全性实现技术 148
5.6 本章小结 151
第三篇 软件架构设计系统工程
第6章 软件工程学 154
6.1 软件工程学概述 154
6.2 软件实现 155
6.2.1 需求工程 155
6.2.2 系统建模与案例分析 157
6.2.3 软件实现与架构师 165
6.3 项目管理 166
6.3.1 项目管理体系 167
6.3.2 项目研发过程的透明化管理 173
6.3.3 项目管理与架构师 178
6.4 过程改进 179
6.4.1 软件过程模型 179
6.4.2 软件过程改进 181
6.4.3 过程改进与架构师 182
6.5 本章小结 183
第7章 敏捷方法与实践 184
7.1 敏捷方法论概述 184
7.2 极限编程与工程实践 186
7.2.1 极限编程方法 186
7.2.2 极限编程工程实践 186
7.3 Scrum与过程管理 191
7.3.1 Scrum简介 191
7.3.2 Scrum框架 192
7.3.3 如何进行敏捷回顾案例分析 194
7.4 敏捷方法论与架构师 198
7.4.1 敏捷开发中架构师的角色 198
7.4.2 识别和消除研发过程浪费 199
7.5 本章小结 204
第8章 软件交付模型 205
8.1 软件交付模型概述 205
8.2 配置管理 206
8.2.1 配置管理概述 206
8.2.2 配置管理模式与实践 209
8.2.3 SVN/GIT基本应用与实践 210
8.2.4 系统版本控制策略案例分析 214
8.3 持续集成 217
8.3.1 持续集成理念 217
8.3.2 Jenkins应用 219
8.4 交付工作流 219
8.5 本章小结 220
第四篇 架构师软技能
第9章 架构师必备软技能 222
9.1 架构师与外部环境 222
9.1.1 政治与协商 223
9.1.2 沟通 224
9.1.3 邮件 227
9.2 架构师与自身团队 231
9.2.1 领导力 231
9.2.2 知识管理 232
9.2.3 人员管理 235
9.2.4 绩效管理 237
9.3 架构师与意识形态 240
9.3.1 思维模式 241
9.3.2 引入变化 241
9.4 本章小结 245
参考文献 246
文摘
版权页:
插图:
我们希望知识管理平台能够在时间(Anytime)、空间(Anywhere)和成员(Anybody)上为我们提供清晰、高效的信息共享,包括项目知识、产品知识、研发知识、运营知识等研发团队中需要把控的各个方面。
团队知识管理有很多潜在的需求,如我们需要在统一的空间中管理信息资源。信息资源包括:文本信息、表格数据等;图片信息、手写信息、各种图形符号;来自网络当中的各种信息;音频、视频、影像资料。同时,需求还包括能够随时随地查找所需信息,团队之间的高效协作与信息共享,并确保信息的安全性和可靠性。通过知识管理平台的建设,我们的目的就是要满足这些需求。OneNote就是能满足这些需求的知识管理平台的一种体现。
3.OneNote
OneNote是Office自带的工具,如果用过Word和Excel,那么OneNote上手的成本几乎为O;同时,OneNote与Offce其他工具之间的集成成本也几乎为0,考虑到Office工具的普及型,OneNote无疑具有先天优势。OneNote特别适合以下工作场景。
·对不太适合放到电子邮件、日历或正式文档中的零散信息进行组织。
·收集会议或讲座笔记供以后参考。
·收集来自网站或其他来源的调查内容,并为自己或他人添加批注。
·跟踪下一步要做的事项,以免遗漏任何事情。
·通过项目共享笔记和文件,与其他人紧密协作。
如果我们把OneNote比作一个笔记本,那它的内容基本组织方式可以理解为笔记本一分区一页面这3级层次结构,为信息的维护提供清晰的信息存储结构。在每个页面中,OneNote能全方位整合信息,如对各类文本、表格、列表信息而言,输入方式灵活多样、位置调整简便快捷、拖放操作得心应手;各类文档统一管理,Word、Excel、PowerPoint等无缝集成;支持图片插入、屏幕剪辑一键搞定;支持音频、视频,信息之间的超链接。
对一个知识管理平台而言,即时搜索信息是最基本的功能需求。与其他Office系列工具一样,OneNote支持在收集的所有信息中进行快速搜索并根据指定条件检索重要笔记。另一方面,能够实时共享与团队协作也是知识管理平台的核心要求,而OneNote可以在多个环境下使用笔记本。在工作场所的一台台式计算机和一台便携式计算机、或几台连接到同一网络的个人计算机,在无网络情况下信息保存,有网络时自动同步。所有团队成员实时面对同一个统一视图、将内容通过电子邮件、PDF或直接发送至Word文档等协作方式都非常有用。
本书主要针对熟悉Java EE常见技术并立志向架构师方向发展的后台服务开发人员。
能帮助读者了解并掌握迈向架构师所需的各种知识体系和实践技巧。
关注于转型这个特定主题给出了作者自身的一些思考和总结,从内容上填补了市场上的这一空白。
作者简介
本书作者有近10年软件行业从业经验,在医疗、安防和电商行业都有所涉及,主持和参与过多个大型企业级应用和移动互联网系统的开发和管理工作,前后担任技术经理、系统分析架构师和部门经理等职务,目前就职于一家国内领先的电商独角兽企业。主持过十余个面向研发人员的技术和管理类培训系统课程,善于提炼和抽象核心内容作为教学内容,善于知识分享和技术人员培养,对系统架构设计和研发过程改进有丰富的经验和较深的理解。
目录
第一篇 程序员向架构师转型概述
第1章 程序员向架构师转型 2
1.1 架构设计基本概念 2
1.1.1 架构的基本定义 2
1.1.2 架构演进理论 4
1.1.3 架构设计与系统工程 7
1.2 剖析架构师角色 8
1.2.1 架构师角色 8
1.2.2 当程序员遇到架构师 10
1.3 架构师的视图和视角 11
1.3.1 架构师的视图 12
1.3.2 架构师的视角 16
1.3.3 视图视角与系统工程 18
1.4 程序员如何向架构师成功转型 19
1.4.1 转型成功的三段式模型 19
1.4.2 转型思维导图 20
1.4.3 作为架构师开展工作 21
1.5 本章小结 22
第二篇 软件架构设计知识体系
第2章 软件架构体系结构 24
2.1 软件体系结构 24
2.2 架构风格 25
2.2.1 分布式 25
2.2.2 事件驱动 28
2.2.3 系统结构 31
2.2.4 消息总线 32
2.2.5 适配与扩展 33
2.3 架构模式 35
2.3.1 数据访问 35
2.3.2 服务定位 36
2.3.3 异步化 38
2.3.4 资源管理 39
2.3.5 依赖管理 41
2.4 架构模型 44
2.5 本章小结 45
第3章 领域驱动设计 46
3.1 面向领域思想 46
3.1.1 架构设计与领域驱动 46
3.1.2 领域驱动设计核心概念 47
3.1.3 案例介绍 47
3.2 面向领域的策略设计 48
3.2.1 通用语言 48
3.2.2 领域与上下文 48
3.2.3 领域驱动的架构风格 51
3.2.4 案例策略设计 54
3.3 面向领域的技术设计 56
3.3.1 实体与值对象 56
3.3.2 领域服务 59
3.3.3 领域事件 60
3.3.4 聚合 62
3.3.5 资源库 64
3.3.6 集成界限上下文 65
3.3.7 应用程序 67
3.3.8 案例技术设计 67
3.4 案例实现 69
3.5 本章小结 70
第4章 分布式系统架构设计 72
4.1 分布式系统 73
4.2 RPC架构 74
4.2.1 网络通信 75
4.2.2 序列化 76
4.2.3 传输协议 77
4.2.4 服务调用 78
4.3 分布式服务架构 81
4.3.1 负载均衡与集群容错 81
4.3.2 服务路由 83
4.3.3 服务注册中心 84
4.3.4 服务发布与调用 88
4.3.5 服务监控与治理 90
4.4 分布式服务框架Dubbo剖析 91
4.4.1 Dubbo核心功能 91
4.4.2 Dubbo原理分析 94
4.5 微服务架构 102
4.5.1 微服务实现策略 103
4.5.2 微服务实现技术 104
4.5.3 微服务实现案例 108
4.6 本章小结 109
第5章 架构实现技术体系 110
5.1 缓存与性能优化 111
5.1.1 性能概述 111
5.1.2 Memcached 112
5.1.3 Redis 116
5.1.4 Nginx 120
5.2 消息传递系统 122
5.2.1 消息中间件需求 122
5.2.2 JMS 123
5.2.3 AMQP 126
5.2.4 Kafka 129
5.3 企业服务总线 130
5.3.1 服务总线解决方案 130
5.3.2 集成化端点 136
5.4 数据分析处理 140
5.4.1 轻量级批处理 140
5.4.2 SpringBatch 142
5.5 安全性 147
5.5.1 安全性概述 147
5.5.2 安全性实现技术 148
5.6 本章小结 151
第三篇 软件架构设计系统工程
第6章 软件工程学 154
6.1 软件工程学概述 154
6.2 软件实现 155
6.2.1 需求工程 155
6.2.2 系统建模与案例分析 157
6.2.3 软件实现与架构师 165
6.3 项目管理 166
6.3.1 项目管理体系 167
6.3.2 项目研发过程的透明化管理 173
6.3.3 项目管理与架构师 178
6.4 过程改进 179
6.4.1 软件过程模型 179
6.4.2 软件过程改进 181
6.4.3 过程改进与架构师 182
6.5 本章小结 183
第7章 敏捷方法与实践 184
7.1 敏捷方法论概述 184
7.2 极限编程与工程实践 186
7.2.1 极限编程方法 186
7.2.2 极限编程工程实践 186
7.3 Scrum与过程管理 191
7.3.1 Scrum简介 191
7.3.2 Scrum框架 192
7.3.3 如何进行敏捷回顾案例分析 194
7.4 敏捷方法论与架构师 198
7.4.1 敏捷开发中架构师的角色 198
7.4.2 识别和消除研发过程浪费 199
7.5 本章小结 204
第8章 软件交付模型 205
8.1 软件交付模型概述 205
8.2 配置管理 206
8.2.1 配置管理概述 206
8.2.2 配置管理模式与实践 209
8.2.3 SVN/GIT基本应用与实践 210
8.2.4 系统版本控制策略案例分析 214
8.3 持续集成 217
8.3.1 持续集成理念 217
8.3.2 Jenkins应用 219
8.4 交付工作流 219
8.5 本章小结 220
第四篇 架构师软技能
第9章 架构师必备软技能 222
9.1 架构师与外部环境 222
9.1.1 政治与协商 223
9.1.2 沟通 224
9.1.3 邮件 227
9.2 架构师与自身团队 231
9.2.1 领导力 231
9.2.2 知识管理 232
9.2.3 人员管理 235
9.2.4 绩效管理 237
9.3 架构师与意识形态 240
9.3.1 思维模式 241
9.3.2 引入变化 241
9.4 本章小结 245
参考文献 246
文摘
版权页:
插图:
我们希望知识管理平台能够在时间(Anytime)、空间(Anywhere)和成员(Anybody)上为我们提供清晰、高效的信息共享,包括项目知识、产品知识、研发知识、运营知识等研发团队中需要把控的各个方面。
团队知识管理有很多潜在的需求,如我们需要在统一的空间中管理信息资源。信息资源包括:文本信息、表格数据等;图片信息、手写信息、各种图形符号;来自网络当中的各种信息;音频、视频、影像资料。同时,需求还包括能够随时随地查找所需信息,团队之间的高效协作与信息共享,并确保信息的安全性和可靠性。通过知识管理平台的建设,我们的目的就是要满足这些需求。OneNote就是能满足这些需求的知识管理平台的一种体现。
3.OneNote
OneNote是Office自带的工具,如果用过Word和Excel,那么OneNote上手的成本几乎为O;同时,OneNote与Offce其他工具之间的集成成本也几乎为0,考虑到Office工具的普及型,OneNote无疑具有先天优势。OneNote特别适合以下工作场景。
·对不太适合放到电子邮件、日历或正式文档中的零散信息进行组织。
·收集会议或讲座笔记供以后参考。
·收集来自网站或其他来源的调查内容,并为自己或他人添加批注。
·跟踪下一步要做的事项,以免遗漏任何事情。
·通过项目共享笔记和文件,与其他人紧密协作。
如果我们把OneNote比作一个笔记本,那它的内容基本组织方式可以理解为笔记本一分区一页面这3级层次结构,为信息的维护提供清晰的信息存储结构。在每个页面中,OneNote能全方位整合信息,如对各类文本、表格、列表信息而言,输入方式灵活多样、位置调整简便快捷、拖放操作得心应手;各类文档统一管理,Word、Excel、PowerPoint等无缝集成;支持图片插入、屏幕剪辑一键搞定;支持音频、视频,信息之间的超链接。
对一个知识管理平台而言,即时搜索信息是最基本的功能需求。与其他Office系列工具一样,OneNote支持在收集的所有信息中进行快速搜索并根据指定条件检索重要笔记。另一方面,能够实时共享与团队协作也是知识管理平台的核心要求,而OneNote可以在多个环境下使用笔记本。在工作场所的一台台式计算机和一台便携式计算机、或几台连接到同一网络的个人计算机,在无网络情况下信息保存,有网络时自动同步。所有团队成员实时面对同一个统一视图、将内容通过电子邮件、PDF或直接发送至Word文档等协作方式都非常有用。
ISBN | 9787115450548,7115450544 |
---|---|
出版社 | 人民邮电出版社 |
作者 | 郑天民 |
尺寸 | 16 |