《架构思维:从程序员到CTO》人民邮电出版社 | PDF下载|ePub下载
内容简介 · · · · · ·
◆架构设计不只是技术维度的广泛认知,更是商业维度的全局把控。
◆本书是Coupang副总裁郭东白10多年架构师和CTO工作的经验总结。在本书中,你可以了解互联网行业进化的本质,架构师的工作内容、所需能力等,你熟知的每一个互联网案例背后的架构设计原则和逻辑。
◎编辑推荐:
这不是一本架构师速成书,本书中除了有对架构设计中的技术选型的分析,还有对架构活动中的环境、人性、经济等的洞察。在这个不断变化的环境中,作者从自己亲身经历的诸多案例出发,将丰富的经验和开阔的视野提炼出一名优异的架构师应有的能力和战略目标,本书对所有IT从业人员都有益,尤其适合想成为架构师的研发人员和想提升自己架构能力的架构师。
◎内容简介:
本书以架构师工作中的痛点问题为导向,结合大量真实、复杂的案例,帮助架构师提高架构设计能力,规划职业成长路径。本书共4部分,第一部分“架构师的思维模式”介绍3种架构师的思维定式和4种架构活动中常见的思维模式;第二部分“架构师的生存法则”介绍影响架构活动成败的6个要素,以及由其引出的架构师的6条生存法则;第三部分“架构活动中的挑战、根因和应对”介绍架构师在整个架构活动中持续发挥的作用以及架构活动不同阶段常见的问题;第四部分“架构师的职业规划和能力成长”介绍架构师的成长地图和对应角色的关键能力,以及提升思考力的方法。
◎专业书评:
三人行,必有我师。郭东白老师在架构方面的思考,凝聚了他在海内外大企业的丰富研发管理经验,让我收获良多。架构为什么重要?架构是软件工程活动最核心的关注点。做高水平的软件研发,就要围绕最本质的架构做功,无论是追求研发效率,还是追求成本、性能、稳定性、可扩展性等,都要不断地提升架构抽象和设计水平。因此,建议每一位有追求的工程师都能花点时间跟郭东白老师学习如何设计架构:既要懂业务,又要通人性,甚至还可以利用架构思维来进行组织设计,成长为更高阶的技术专家或研发管理者。
——于冰,快手高级副总裁、研发线负责人
在我初识郭东白老师时,他正担任AliExpress的CTO和首席架构师,那也是AliExpress野蛮扩张的关键期。郭老师用他的全局视野、架构设计能力、团队管理能力和业务感知能力,带领阿里巴巴国际化电商团队,始终沿着正轨前进。近年来,得物App同样开始重视业务架构。我们发现,随着业务快速发展,为了使系统快速上线,我们在架构设计、系统方案、领域划分、边界依赖等问题上或多或少做过一些妥协,但从长远来看,当时的妥协产生的问题现在大多以技术重构、出现线上故障、迭代效率下降等形式显露出来。随着团队人数增加、系统规模增大,系统交互依赖越来越复杂,架构师和架构思维的重要性也会越发凸显,这在互联网行业已经达成共识。
郭东白老师精心打磨的这本书,是他对多年软件开发经验的提炼。在本书中,他对架构设计进行深入的研究和浅显易懂的总结,并依照业务背景、生存法则、关键节点和核心能力等几方面,系统化地阐述了架构师的成长路径。对那些立志成为架构师的人来说,这本书是一盏指引前行方向的明灯。
——陈思淼,得物App CTO
东白对架构师的思考非常深刻且具有独特性。当前市面上亦有不少架构方面的图书和课程,但这些图书和课程都只关注技术内容,只有东白从架构师职业的完整视角来分析如何才能成为一名成功的架构师。要成为一名成功的架构师,不仅需要对技术有全面的了解,更需要以足够的思考力做出因地制宜的正确决策,还需要理解组织和人性并具备高超的领导力来保障架构活动的成功。要寻求这些关键问题的答案,本书是最好的参考。
——汪源,网易副总裁、网易杭州研究院执行院长
读东白的书,我能明显感觉到他希望自己能“授人以渔”而不单单是“授人以鱼”。一个一秒钟就可以看透事物本质的人注定和一辈子都迷迷糊糊的人有着不同的命运。本书讲解如何从商业价值和人性的理解中去找到那些有意义的架构活动,进而用具体的方法来增加这些架构活动的成功概率,具有极强的实操性。开卷有益,建议想成为架构师的研发人员,都认真地读一下本书。
——蒋旭,叮咚买菜CTO
架构是解决问题的方案。对问题进行分解、抽象,并做好各种权衡(如团队人数、上线时间等),从而形成解决方案,这一过程需要丰富的实战经验和开阔的知识视野。作者将自己丰富的经验和开阔的视野写入本书,对希望提升架构能力的工程师有极大的帮助。
——毕玄,贝联珠贯创始人兼CEO、阿里巴巴前P10
作者简介 · · · · · ·
郭东白,布朗大学博士,当前担任Coupang副总裁,兼任浙江大学计算机学院兼职教授和博导。他先后在甲骨文、微软、亚马逊、阿里巴巴、车好多等公司任职。他是云计算和国际化电商平台领域的资深专家,分别为亚马逊、阿里巴巴和Lazada搭建每秒上万次成交、年成交额超百亿美金的大型电商平台,使平台覆盖数字、跨境和本地3种电商商业模式,支持内容化、社交化、游戏化、私域化等一系列创新技术,为企业带来了巨大的商业成功和生存优势。
目录 · · · · · ·
第1章 互联网时代的架构师 3
1.1 架构师的定义 3
1.2 架构师的职责定位 4
1.3 互联网软件架构的特点 5
1.4 看压力,人人都是架构师 8
1.5 小结 9
1.6 思维拓展:通过领域模型提升思考的结构性 9
1.7 思考题 9
第2章 互联网架构师的思维定式 10
2.1 最大化企业生存的王道 10
2.2 从企业生存的王道到架构师的价值思维 10
2.3 从个人生存的王道到架构师的思维定式 12
2.3.1 实证思维 12
2.3.2 成长思维 14
2.4 成长思维、实证思维和价值思维的关系 16
2.5 小结 17
2.6 思维拓展:以去中心化的工作方式践行实证思维 17
2.7 思考题 19
第3章 架构活动中的思维模式 20
3.1 架构活动的生命周期 20
3.2 想法形成阶段——全方位思维 21
3.3 架构规划阶段——批判思维 22
3.4 实施阶段——实用主义思维 23
3.5 复盘阶段——分析思维 24
3.6 架构活动不同阶段的思维模式组合 26
3.7 小结 27
3.8 思维拓展:学习切换思维模式 27
3.9 思考题 28
第二部分 架构师的生存法则
第4章 互联网架构活动的抽象模型 31
4.1 架构活动领域模型 31
4.2 影响架构活动成败的 6 个要素 32
4.3 架构师的 6 条生存法则 34
4.4 小结 36
4.5 思维拓展:永远不能犯同样的错误 36
4.6 思考题 37
第5章 生存法则一:有唯一且正确的目标 38
5.1 架构活动中的目标 38
5.1.1 业务目标和技术目标对一个软件系统的价值 38
5.1.2 研发资源充足的环境更需要精准的目标 40
5.2 目标缺失的根因 40
5.2.1 技术场景之一:单纯由好奇心驱动的技术探索 41
5.2.2 技术场景之二:出于个人原因发起架构活动 41
5.2.3 技术场景之三:个人决策失误导致设错目标 42
5.2.4 业务场景之一:决策者远见不足导致目标太多 42
5.2.5 业务场景之二:企业内部斗争导致目标摇摆不定 44
5.2.6 业务场景之三:企业缺乏立项流程而导致目标缺失 44
5.3 架构师如何帮助团队逼近正确目标 44
5.3.1 价值思维:对目标正确性的判断 45
5.3.2 架构师如何影响技术项目的目标 46
5.3.3 架构师如何影响业务项目的目标 48
5.4 如果有一个正确但太过超前的目标该怎么办 50
5.5 小结 51
5.6 思维拓展:从反抗权威中获取决策自信心 52
5.7 思考题 53
第6章 生存法则二:架构设计要顺应人性 54
6.1 理解人性,从马斯洛的动机跃迁理论讲起 54
6.1.1 不是需求有层次,而是动机有优先级 54
6.1.2 一个人任何时候只有一个主导动机 56
6.1.3 主导动机会抢占一个人的全部意识 56
6.2 架构设计中对人性因素的考虑 57
6.2.1 案例一:没有人性的技术架构就没有生存空间 58
6.2.2 为什么会有人设计和坚持没有人性的架构 60
6.2.3 案例二:从研发人员心理安全感的角度来思考微服务的粒度 61
6.3 从用户心智开始架构设计 62
6.3.1 案例三:从人性角度来分析拼多多是怎么赶超阿里的 63
6.3.2 从用户心智角度理解增长飞轮 63
6.3.3 案例四:心智定位是长期战略,不是靠直接的统计 65
6.4 远离邪恶的心智 66
6.5 小结 67
6.6 思维拓展:从源头学习,缩短认知差距 67
6.7 思考题 68
第7章 生存法则三:最大化经济价值 70
7.1 关于商业模式和经济价值 70
7.2 每个人都要有自己的商业模式 72
7.3 理解一家企业或一个团队的商业模式 73
7.3.1 深度理解一家企业的商业模式 73
7.3.2 一种商业模式公式化表达 73
7.3.3 商业模式的本质 75
7.4 架构师是如何创造经济价值的 76
7.4.1 通过合理取舍保证商业模式的构建 76
7.4.2 优化商业模式的效率 76
7.4.3 加速一种商业模式的收敛速度 78
7.5 从一个性能优化案例看最大化经济价值 80
7.5.1 案例背景与分析 80
7.5.2 案例剖析 82
7.5.3 故事的番外 84
7.6 小结 84
7.7 思维拓展:认知之旅是基于实证主义的知行合一 85
7.8 思考题 85
第8章 生存法则四:架构选型必须顺应技术趋势 87
8.1 消除阻碍自己探索新技术的性格弱点 87
8.2 如何发现颠覆性的技术趋势 89
8.2.1 通过技术成熟度曲线看技术生命周期 89
8.2.2 从经济角度看软件技术增长的推动力 91
8.3 由硬件技术突破推动的软件技术进化 91
8.3.1 硬件技术革新是软件技术革新的前置指标 91
8.3.2 从出货量预测硬件厂商中的赢家 92
8.4 软件行业的常见演化过程 92
8.5 由商业模式突破拉动的软件技术进化 94
8.6 全力投到一个颠覆性的技术上 95
8.7 小结 96
8.8 思维拓展:在大尺度上思考问题 97
8.9 思考题 98
第9章 生存法则五:通过架构手段为企业注入外部适应性 99
9.1 什么是外部适应性 99
9.1.1 架构师独立为企业注入外部适应性的手段 101
9.1.2 研发活动的 3 个层次 102
9.2 削弱一个软件系统外部适应性的因素 103
9.3 架构师如何为企业注入外部适应性 104
9.3.1 业务尝试和产品尝试:以最小的架构代价获得有效结论 104
9.3.2 架构改造和战略转型:彻底改造,不留后患 106
9.3.3 技术产品抽象:让架构抽象为一个理智行为 106
9.3.4 一个架构师注入外部适应性的具体案例 107
9.4 做一个比业务人员更懂业务的架构师 109
9.4.1 建立业务、产品和技术的平权世界 109
9.4.2 认知的突破靠持续的竞争对抗 111
9.5 小结 112
9.6 思维拓展:以成长思维来最大化认知的提升 112
9.7 思考题 113
第10章 生存法则六:在一个友善的企业文化中成长 114
10.1 为什么企业文化对架构师很重要 114
10.1.1 架构师视角的企业文化 114
10.1.2 识别企业的真实企业文化 115
10.1.3 架构师的乌托邦:一个可以践行实证主义的企业文化 116
10.2 如何在小范围内打造一种友善的企业文化 117
10.2.1 靠良知换取决策机会 118
10.2.2 践行过程正义 118
10.2.3 有勇气做违反共识的决策 119
10.3 拼图的最后一块:一致的价值理念 120
10.4 良禽择木而栖 120
10.5 小结 121
10.6 思维拓展:实践从发现行动点开始 122
10.7 思考题 122
第三部分 架构活动中的挑战、根因和应对
第11章 架构师持续发挥的作用 125
11.1 建立共识 125
11.1.1 如何在利益冲突的情况下建立共识 126
11.1.2 如何在不同视角的一群人中间建立共识 127
11.1.3 如何在不同知识背景的人群中建立共识 128
11.1.4 建立长期共识靠长期的投入和信用 128
11.2 控制风险 129
11.2.1 对风险逐渐形成量化认知 129
11.2.2 在有准备的情况下首先选择冒险 129
11.2.3 在风险失控的情形下迅速沟通 130
11.3 注入理性思考 130
11.4 小结 131
11.5 思维拓展:从僵化到内化的学习过程 132
11.6 思考题 132
第12章 环境搭建 134
12.1 为什么要做环境搭建 134
12.2 环境搭建前的准备工作 134
12.3 如何搭建一个安全、高效且有针对性的决策环境 135
12.4 以最小必需原则获取环境资源 137
12.5 对环境的持续监控 138
12.6 小结 138
12.7 思维拓展:从换位思考到换心思考 138
12.8 思考题 139
第13章 目标确认 140
13.1 目标确认的 3 种不同视角 140
13.2 目标确认前的准备工作 141
13.3 架构师在目标确认过程中的工作 142
13.3.1 确认核心角色 142
13.3.2 对正确目标的逼近过程 143
13.3.3 在模糊的场景下发现正确的目标 144
13.3.4 目标的合理性和可达性的初步验证 146
13.4 完成目标确认 147
13.5 小结 147
13.6 思维拓展:天下没有免费的午餐 148
13.7 思考题 148
第14章 可行性探索 149
14.1 什么是可行性探索 149
14.2 可行性探索前的准备工作 150
14.3 可行性探索的过程 151
14.3.1 重大风险发掘 151
14.3.2 风险敞口预估 152
14.3.3 风险沟通 154
14.3.4 风险决策 154
14.4 完成可行性探索 155
14.5 小结 155
14.6 思维拓展:用好风险这个筹码 156
14.7 思考题 156
第15章 规划确认 158
15.1 统一语义:追求不同角色间的无损交流 158
15.1.1 为什么要统一语义 158
15.1.2 由语境差异带来架构挑战的示例 159
15.1.3 语境的差异的认知根源 161
15.1.4 架构师在统一语义过程中的价值 162
15.1.5 如何在分布式的工作状态下消除语义的分歧 163
15.2 建立架构信条:建立一个安全的决策环境 164
15.2.1 信条一:任务划分可以打破现有执行团队的组织边界 164
15.2.2 信条二:通过客观的判断标准比较多个候选方案 164
15.2.3 信条三:最小化架构目标之外的技术投入 164
15.2.4 信条四:最大化系统的灵活性 165
15.2.5 信条五:架构决策要面向未来最优 165
15.3 确认需求:验证需求的充要性 166
15.3.1 从问题域到执行域的映射 166
15.3.2 最小必要需求的筛选 167
15.3.3 需求的充分性验证 167
15.3.4 处理问题域和执行域中的冲突 168
15.4 划分边界:在架构活动中重组执行域边界 170
15.4.1 市场竞争决定最优执行域边界 170
15.4.2 任务分配过程中要关注系统最软肋 171
15.4.3 锁定所有最小必要需求的交付资源 171
15.5 确认规划:通过建设反馈闭环提升交付确定性 172
15.5.1 通过保障文档到现实映射的真实性提升交付确定性 172
15.5.2 通过用例文档保障分解和传递的无损 173
15.5.3 通过提升项目数据的及时性来保障交付节奏 174
15.5.4 通过统一的领域模型来保障需求侧语义无损 174
15.5.5 通过正式的 API Spec 提升软件架构的长期合理性 174
15.5.6 通过优化数据流转提升项目结果的可观测性 175
15.5.7 通过测试用例梳理确保最终的交付质量 176
15.5.8 通过文档的完整性保障整体交付的确定性 176
15.6 小结 177
15.7 思维拓展:从细节上做宏观决策 177
15.8 思考题 178
第16章 项目启动 180
16.1 项目启动前的准备工作 180
16.1.1 架构方案的正式确认 181
16.1.2 核心资源的官方确认 182
16.1.3 问题预警机制和冲突解决机制建设 182
16.2 项目启动 183
16.3 小结 184
16.4 思维拓展:用合同来保障命运 184
16.5 思考题 184
第17章 价值交付 185
17.1 什么是原子价值单元 185
17.2 以用户价值为终极目标的交付方式 186
17.3 阶段性价值交付面临的挑战 187
17.4 从价值交付的角度做原子价值单元拆分 188
17.4.1 依照用户价值点拆分交付目标 188
17.4.2 以实用主义思维发现最短交付路径 189
17.4.3 从结构性和成本出发优化的交付路径 190
17.4.4 交付进度反馈和交付路径调整 191
17.5 完成阶段性交付 192
17.6 小结 192
17.7 思维拓展:持续发现并交付原子价值单元 193
17.8 思考题 193
第18章 总结复盘 194
18.1 复盘的目的和视角 194
18.2 复盘的三大误区 195
18.3 建设一个包容且视角平衡的复盘环境 196
18.4 明确复盘的目标 197
18.5 从多个平衡的视角回放整个架构活动 198
18.6 以发掘有效行动点为目标来引导复盘路径 198
18.7 挖掘根因 200
18.8 寻找新的模式与机制 201
18.9 产出跟进项 202
18.10 完成复盘和整个架构活动,释放资源 202
18.11 小结 202
18.12 思维拓展:从实践发现新的理论 203
18.13 思考题 203
第四部分 架构师的职业规划和能力成长
第19章 结构化设计的能力 207
19.1 结构化设计的能力是架构师成长的必要条件 207
19.2 如何提升程序员的结构化设计的能力 208
19.2.1 意识到结构化的价值 208
19.2.2 培养对软件结构性的鉴别能力 209
19.2.3 找到结构化的客观度量和逻辑 209
19.2.4 做到在业务成长周期下思考合理取舍 210
19.3 日常研发中的结构化设计行为规范 212
19.4 小结 213
19.5 思维拓展:成长的关键在于发现障碍 213
19.6 思考题 214
第20章 解决横向问题的能力 215
20.1 跨越执行域到基础域的障碍 215
20.2 程序员提升基础域能力的策略 216
20.2.1 架构师成长策略:先优化宽度还是先优化深度 216
20.2.2 学习解决横向问题,该从哪里开始 216
20.3 从稳定性开始提升自己的横向能力 217
20.4 小结 217
20.5 思维拓展:从兴趣中放大自己的稀缺性 217
20.6 思考题 218
第21章 解决跨领域冲突的能力 219
21.1 跨域架构师的缘起 219
21.2 从背锅来分析跨域架构师面临的领域冲突 221
21.3 如何为割裂的多个子域注入全局架构视角 223
21.4 尾声:这个锅谁来背 225
21.5 小结 226
21.6 思维拓展:社交能力对架构师也很重要 226
21.7 思考题 227
第22章 构筑技术壁垒的能力 228
22.1 总架构师的核心能力:构筑技术壁垒 228
22.2 跨越不确定性的障碍 229
22.3 通过正确的职业选择获取高质量的决策机会 230
22.3.1 从技术型企业的生命周期来思考职业选择 230
22.3.2 从行业的生命周期来思考职业选择 234
22.4 小结 235
22.5 思维拓展:要不停地看机会 236
22.6 思考题 236
第23章 为企业创造生存优势的能力 237
23.1 CTO 到底是做什么的 237
23.2 成长为 CTO 要跨越的障碍 238
23.3 CTO 的双重人格 239
23.4 如何提升自己的商业嗅觉 240
23.5 小结 241
23.6 思维拓展:提升自己对人才的判断力 241
23.7 思考题 242
第24章 架构师的职业成长 243
24.1 架构师成长过程的 5 个阶段 243
24.2 贯穿架构师职业生涯的结构性 244
24.3 架构师成长的必要条件 246
24.3.1 必要条件一:独立思考的能力 246
24.3.2 必要条件二:信息优势的内化能力 247
24.3.3 必要条件三:适应力 248
24.4 架构师成长的充分条件 250
24.4.1 充分条件一:大量高风险的决策机会 250
24.4.2 充分条件二:对架构师友善的企业文化 251
24.4.3 充分条件三:正确的目标 252
24.5 架构师成长的充分条件和必要条件的思考 252
24.6 小结 254
24.7 思维拓展:职业成长也需要战略取舍 254
24.8 思考题 255
第25章 提升独立思考的能力 256
25.1 独立思考 256
25.1.1 否定现有假设或者设立新的假设 256
25.1.2 寻找独特的视角 257
25.1.3 寻找独特的证据组合 257
25.1.4 尝试独特的思维方式 257
25.1.5 对独立思考过程的正确性保障 258
25.2 如何判断一个人的思考质量 258
25.3 如何判断一个尚未验证的思考案例的质量 259
25.4 发现身边的独立思考者 260
25.4.1 想提升自己的思考圈,先要做一个伯乐 260
25.4.2 要能容忍一个思考者的性格缺陷 261
25.4.3 往来无白丁 261
25.5 小结 261
25.6 思维拓展:建立思考者间的信任网络 262
25.7 思考题 262
第26章 关于中台的思考 264
26.1 为什么选择中台案例 264
26.1.1 什么是中台 265
26.1.2 中台的历史 266
26.1.3 业务中台被寄予的厚望 267
26.1.4 中台被诟病的地方 267
26.2 从不同维度继续剖析中台 269
26.2.1 从价值创造的角度看中台 269
26.2.2 从竞争角度看中台 270
26.2.3 从成本角度看中台 271
26.2.4 从构筑企业壁垒的角度看中台 272
26.3 中台失败的最大根因在于分封机制 273
26.3.1 中台在演进慢和通用性高的场景中的失败案例分析 274
26.3.2 国内中台各种弊端的根因 275
26.4 关于建设中台的正确路径的思考 276
26.4.1 中台的正确组织和运行机制 276
26.4.2 中台的启动时间和环境 277
26.4.3 中台的质量保障和交付要求 278
26.4.4 中台的退出机制 279
26.5 小结 281
26.6 思维拓展:从日常生活中寻找思考案例 281
26.7 思考题 282
· · · · · ·
发表回复
要发表评论,您必须先登录。