前言 1
客户需求重于个人简历&尼廷·博万卡(Nitin Borwankar) 2
简化根本复杂性,消除偶发复杂性&尼尔·福特(Neal Ford) 4
关键问题可能不是出在技术上&马克·兰姆(Mark Ramm) 6
以沟通为中心,坚持简明清晰的表达方式和开明的领导风格&马克·理查兹(Mark Richards) 8
架构决定性能&兰迪·斯塔福德(Randy Stafford) 10
分析客户需求背后的意义&埃纳尔·兰德雷(Einar Landre) 12
起立发言&乌迪·大汉(Udi Dahan) 14
故障终究会发生&迈克尔·尼加德(Michael Nygard) 16
我们常常忽略了自己在谈判&迈克尔·尼加德(Michael Nygard) 18
量化需求&基思·布雷思韦特(Keith Braithwaite) 20
一行代码比五百行架构说明更有价值&艾利森·兰德尔(Allison Randal) 22
不存在放之四海皆准的解决方案&兰迪·斯塔福德(Randy Stafford) 24
提前关注性能问题&丽贝卡·帕森斯(Rebecca Parsons) 26
架构设计要平衡兼顾多方需求&兰迪·斯塔福德(Randy Stafford) 28
草率提交任务是不负责任的行为&尼克拉斯·尼尔森(Niclas Nilsson) 30
不要在一棵树上吊死&基思·布雷思韦特(Keith Braithwaite) 32
业务目标至上&戴夫·缪尔黑德(Dave Muirhead) 34
先确保解决方案简单可用,再考虑通用性和复用性&凯佛林·亨尼(Kevlin Henney) 36
架构师应该亲力亲为&约翰·戴维斯(John Davies) 38
持续集成&大卫·巴特利(David Bartlett) 40
避免进度调整失误&诺曼·卡诺瓦利(Norman Carnovale) 42
取舍的艺术&马克·理查兹(Mark Richards) 44
打造数据库堡垒&丹·恰克(Dan Chak) 46
重视不确定性&凯佛林·亨尼(Kevlin Henney) 48
不要轻易放过不起眼的问题&戴夫·奎克(Dave Quick) 50
让大家学会复用&杰里米·迈耶(Jeremy Meyer) 52
架构里没有大写的“I”&戴夫·奎克(Dave Quick) 54
使用“一千英尺高”的视图&埃里克·多伦伯格(Erik Doernenburg) 56
先尝试后决策&埃里克·多伦伯格(Erik Doernenburg) 58
掌握业务领域知识&马克·理查兹(Mark Richards) 60
程序设计是一种设计&埃纳尔·兰德雷(Einar Landre) 62
让开发人员自己做主&菲利普·尼尔森(Philip Nelson) 64
时间改变一切&菲利普·尼尔森(Philip Nelson) 66
设立软件架构专业为时尚早&巴里·霍金斯(Barry Hawkins) 68
控制项目规模&大卫·奎克(Dave Quick) 70
架构师不是演员,是管家&巴里·霍金斯(Barry Hawkins) 72
软件架构的道德责任&迈克尔·尼加德(Michael Nygard) 74
摩天大厦不可伸缩&迈克尔·尼加德(Michael Nygard) 76
混合开发的时代已经来临&爱德华·加森(Edward Garson) 78
性能至上&克雷格·罗素(Craig Russell) 80
留意架构图里的空白区域&迈克尔·尼加德(Michael Nygard) 82
学习软件专业的行话&马克·理查兹(Mark Richards) 84
具体情境决定一切&爱德华·加森(Edward Garson) 86
侏儒、精灵、巫师和国王&埃文·考夫斯基(Evan Cofsky) 88
向建筑师学习&基思·布雷思韦特(Keith Braithwaite) 90
避免重复&尼克拉斯·尼尔森(Niclas Nilsson) 92
欢迎来到现实世界&格雷戈尔·侯珀(Gregor Hohpe) 94
仔细观察,别试图控制一切&格雷戈尔·侯珀(Gregor Hohpe) 96
架构师好比两面神&大卫·巴特利(David Bartlett) 98
架构师当聚焦于边界和接口&埃纳尔·兰德雷(Einar Landre) 100
助力开发团队&蒂莫西·海伊(Timothy High) 102
记录决策理由&蒂莫西·海伊(Timothy High) 104
挑战假设,尤其是你自己的&蒂莫西·海伊(Timothy High) 106
分享知识和经验&保罗·W·霍默(Paul W.Homer) 108
模式病&查德·拉·瓦因(Chad La Vigne) 110
不要滥用架构隐喻&戴维·英格(David Ing) 112
关注应用程序的支持和维护&门西蒂西·卡斯珀(Mncedisi Kasper) 114
有舍才有得&比尔·德·霍拉(Bill de h?ra) 116
先考虑原则、公理和类比,再考虑个人意见和口味&迈克尔·哈默(Michael Harmer) 118
从“可行走骨架”开始开发应用&克林特·尚克(Clint Shank) 120
数据是核心&保罗·W·霍默(Paul W.Homer) 122
确保简单问题有简单的解&查德·拉·瓦因(Chad La Vigne) 124
架构师首先是开发人员&迈克·布朗(Mike Brown) 126
根据投资回报率(ROI)进行决策&乔治·马拉米迪斯(George Malamidis) 128
一切软件系统都是遗留系统&戴夫·安德森(Dave Anderson) 130
起码要有两个可选的解决方案&蒂莫西·海伊(Timothy High) 132
理解变化的影响&道格·克劳福德(Doug Crawford) 134
你不能不了解硬件&卡迈尔·威克拉玛纳亚克(Kamal Wickramanayake) 136
现在走捷径,将来付利息&斯科特·麦克菲(Scot Mcphee) 138
不要追求“完美”,“足够好”就行&格雷格·纽伯格(Greg Nyberg) 140
小心“好主意”&格雷格·纽伯格(Greg Nyberg) 142
内容为王&朱宾·沃迪亚(Zubin Wadia) 144
对商业方,架构师要避免愤世嫉俗&查德·拉·瓦因(Chad La Vigne) 146
拉伸关键维度,发现设计中的不足&斯蒂芬·琼斯(Stephen Jones) 148
架构师要以自己的编程能力为依托&迈克·布朗(Mike Brown) 150
命名要恰如其分&萨姆·加德纳(Sam Gardiner) 152
稳定的问题才能产生高质量的解决方案&萨姆·加德纳(Sam Gardiner) 154
天道酬勤&布赖恩·哈特(Brian Hart) 156
对决策负责&周异(Yi Zhou) 158
弃聪明,求质朴&埃本·休伊特(Eben Hewitt) 160
精心选择有效技术,绝不轻易抛弃&查德·拉·瓦因(Chad La Vigne) 162
客户的客户才是你的客户!&埃本·休伊特(Eben Hewitt) 164
事物发展总会出人意料&彼得·吉拉德莫斯(Peter Gillard-Moss) 166
选择彼此间可协调工作的框架&埃里克·霍索恩(Eric Hawthorne) 168
着重强调项目的商业价值&周异(Yi Zhou) 170
不仅仅只控制代码,也要控制数据&查德·拉·瓦因(Chad La Vigne) 172
偿还技术债务&伯克哈特·赫夫纳盖尔(Burkhardt Hufnagel) 174
不要急于求解&埃本·休伊特(Eben Hewitt) 176
打造上手(Zuhanden)的系统&基思·布雷思韦特(Keith Braithwaite) 178
找到并留住富有激情的问题解决者&查德·拉·瓦因(Chad La Vigne) 180
软件并非真实的存在&查德·拉·瓦因(Chad La Vigne) 182
学习新语言&伯克哈特·赫夫纳盖尔(Burkhardt Hufnagel) 184
没有永不过时的解决方案&理查德·蒙森-哈费尔(Richard Monson-Haefel) 186
用户接受度问题&诺曼·卡诺瓦利(Norman Carnovale) 188
清汤的重要启示&埃本·休伊特(Eben Hewitt) 190
对最终用户而言,界面就是系统&维纳亚克·赫格德(Vinayak Hegde) 192
优秀软件不是构建出来的,而是培育起来的&比尔·德·霍拉(Bill deh?ra) 194
索引 196