热门搜索: 中考 高考 考试 开卷17
服务电话 024-23945002/96192
 

软件架构决策之道:软件架构决策的原则和方法

编号:
wx1203627436
销售价:
¥78.32
(市场价: ¥89.00)
赠送积分:
78
数量:
   
商品介绍

技术为骨、领导为魂、产品为心
驾驭软件架构不确定性的破局之道;
软件架构决策的完整指南
帮助领导者管理不确定性并做出正确的判断;
为所有软件架构师、技术决策者
提供一套系统的软件架构原则和方法。

本书阐述了在构建软件系统时不可或缺的技术与非技术原则和方法,并详尽展示了如何运用这些原则和方法有效管理项目中的不确定性,从而构建稳固的决策框架。同时,它深刻探讨了领导力与软件架构设计洞察力之间的微妙联系,细致阐述了用户体验设计、宏观架构规划及服务架构部署等关键领域的核心理念与实用技术。通过引用莱特兄弟与凯利·约翰逊等杰出技术领导者的生动案例,来帮助读者理解制订强大决策的重要性。对于软件行业的技术领导者和软件架构决策者来说,本书是一本优秀的参考书。

译者序<br />序<br />前言<br />第1章 软件系统、设计和架构  1<br />1.1 软件架构简介  1<br />1.2 软件系统设计  3<br />1.3 五个问题  5<br />1.3.1 问题1:何时是最佳的发布时机  5<br />1.3.2 问题2:团队的技能水平如何  5<br />1.3.3 问题3:系统的性能敏感度如何  6<br />1.3.4 问题4:何时可以重写系统  7<br />1.3.5 问题5:有哪些难点  8<br />1.4 七项原则:总体概念  9<br />1.4.1 原则1:一切从用户的旅程出发  9<br />1.4.2 原则2:使用迭代薄切片策略  10<br />1.4.3 原则3:在每次迭代中,以最小的投入获得最大的价值,以支持更多用户  12<br />1.4.4 原则4:做出决策并承担风险  14<br />1.4.5 原则5:深入设计难以改变的事物,但要慢慢地实施  15<br />1.4.6 原则6:尽早并行处理棘手的难题,消除未知因素,并从实证中学习  16<br />1.4.7 原则7:理解软件架构中内聚性和灵活性之间的权衡  17<br />1.5 为在线书店进行设计  19<br />1.6 为云计算进行设计  22<br />1.7 总结  24<br />第2章 系统性能的思维模型  26<br />2.1 计算机系统  28<br />2.2 性能模型  28<br />2.2.1 模型1:从用户模式切换到内核模式的成本  29<br />2.2.2 模型2:操作层级  29<br />2.2.3 模型3:上下文切换开销  30<br />2.2.4 模型4:阿姆达尔定律  31<br />2.2.5 模型5:通用可扩展性定律  32<br />2.2.6 模型6:延迟和利用率的权衡  33<br />2.2.7 模型7:以最大有效利用率模型设计吞吐量  33<br />2.2.8 模型8:添加延迟限制  34<br />2.3 优化技术  37<br />2.3.1 CPU优化技术  38<br />2.3.2 I/O优化技术  39<br />2.3.3 内存优化技术  41<br />2.3.4 延迟优化技术  42<br />2.4 对性能的直观感受  43<br />2.5 领导力的考量  43<br />2.6 总结  44<br />第3章 用户体验  46<br />3.1 架构师所需的用户体验概念  46<br />3.1.1 原则1:了解用户  47<br />3.1.2 原则2:必要功能  48<br />3.1.3 原则3:好产品不需要说明书,其用途不言自明  48<br />3.1.4 原则4:从信息交换的角度思考  49<br />3.1.5 原则5:保持简单  49<br />3.1.6 原则6:在实施前设计用户体验  50<br />3.2 配置的用户体验设计  50<br />3.3 API的用户体验设计  52<br />3.4 扩展性的用户体验设计  54<br />3.5 领导力的考量  55<br />3.6 总结  56<br />第4章 宏观架构:简介  57<br />4.1 宏观架构的历史  58<br />4.2 现代架构  61<br />4.3 宏观架构下的构建模块  62<br />4.4 领导力的考量  65<br />4.5 总结  67<br />第5章 宏观架构:协调  68<br />5.1 方法1:从客户端驱动流程  68<br />5.2 方法2:使用另一个服务  69<br />5.3 方法3:使用集中式中间件  70<br />5.4 方法4:实施编排  71<br />5.5 领导力的考量  72<br />5.6 总结  72<br />第6章 宏观架构:保持状态的一致性  74<br />6.1 使用事务  74<br />6.2 超越事务  75<br />6.2.1 方法1:重新定义问题以减少保证要求  77<br />6.2.2 方法2:使用补偿  78<br />6.3 最佳实践  80<br />6.4 领导力的考量  81<br />6.5 总结  83<br />第7章 宏观架构:安全问题  85<br />7.1 用户管理  86<br />7.2 交互安全  89<br />7.2.1 认证技术  90<br />7.2.2 授权技术  92<br />7.2.3 应用程序的常见安全交互场景  94<br />7.3 存储、GDPR和其他法规  98<br />7.4 安全策略和建议  100<br />7.4.1 性能和延迟  101<br />7.4.2 零信任方法  102<br />7.4.3 运行用户提供的代码时要小心  103<br />7.4.4 区块链  103<br />7.4.5 其他话题  103<br />7.5 领导力的考量  104<br />7.6 总结  106<br />第8章 宏观架构:处理高可用性和扩展  107<br />8.1 加入高可用性  107<br />8.1.1 复制  107<br />8.1.2 快速恢复  110<br />8.2 理解可扩展性  112<br />8.3 现代架构的扩展:基本解决方案  113<br />8.4 扩展:领域中的工具  114<br />8.4.1 扩展策略1:无共享  116<br />8.4.2 扩展策略2:分布  116<br />8.4.3 扩展策略3:缓存  116<br />8.4.4 扩展策略4:异步处理  116<br />8.5 构建可扩展的系统  117<br />8.5.1 方法1:连续消除瓶颈  117<br />8.5.2 方法2:无共享设计  119<br />8.6 领导力的考量  121<br />8.7 总结  122<br />第9章 宏观架构:微服务的注意事项  123<br />9.1 决策1:处理共享数据库  124<br />9.1.1 解决方案1:使用一个微服务更新数据库  125<br />9.1.2 解决方案2:使用两个微服务更新数据库  126<br />9.2 决策2:确保微服务的安全  126<br />9.3 决策3:微服务的协调  126<br />9.4 决策4:避免依赖地狱  127<br />9.4.1 向后兼容  127<br />9.4.2 向前兼容  127<br />9.4.3 依赖关系图  129<br />9.5 微服务的替代方案:松耦合的基于代码库的团队  129<br />9.6 领导力的考量  131<br />9.7 总结  132<br />第10章 服务架构  133<br />10.1 编写服务  133<br />10.2 理解编写服务的最佳实践  134<br />10.3 微服务中的高级技术  136<br />10.3.1 使用替代的I/O和线程模型  136<br />10.3.2 理解协调开销  142<br />10.3.3 高效保存本地状态  143<br />10.3.4 选择传输系统  145<br />10.3.5 处理延迟  146<br />10.3.6 读写操作分离  146<br />10.3.7 在应用程序中使用锁  147<br />10.3.8 使用队列和池  148<br />10.3.9 处理服务调用  149<br />10.4 在实践中使用这些技术  149<br />10.4.1 CPU密集型应用(CPU使用远大于内存且无I/O)  149<br />10.4.2 内存密集型应用(CPU + 内存密集且无I/O)  150<br />10.4.3 平衡型应用(CPU + 内存 +I/O)  150<br />10.4.4 I/O密集型应用(I/O + 内存 > CPU)  151<br />10.4.5 其他应用分类  151<br />10.5 领导力的考量  153<br />10.6 总结  154<br />第11章 构建稳定的系统  155<br />11.1 系统失效的原因及应对方法  155<br />11.2 处理已知错误  157<br />11.2.1 处理意外负载  157<br />11.2.2 处理资源故障  161<br />11.2.3 处理依赖关系  165<br />11.2.4 处理人为变更  166<br />11.3 常见故障  167<br />11.3.1 资源泄漏  167<br />11.3.2 死锁和慢操作  168<br />11.4 处理未知错误  169<br />11.4.1 可观测性  169<br />11.4.2 错误和测试  170<br />11.5 优雅地降级  172<br />11.6 领导力的考量  172<br />11.7 总结  173<br />第12章 系统的构建和发展  174<br />12.1 亲自动手  174<br />12.1.1 打好基础  174<br />12.1.2 了解设计过程  177<br />12.1.3 做出决策并承担风险  180<br />12.1.4 追求卓越  181<br />12.2 沟通设计  183<br />12.3 系统的发展:向用户学习并改进系统  184<br />12.4 领导力的考量  187<br />12.5 总结  189

商品参数
基本信息
出版社 机械工业出版社
ISBN 9787111774181
条码 9787111774181
编者 [美]斯里纳特·佩雷拉(Srinath Perera) 著
译者 费良宏
出版年月 2025-05-01 00:00:00.0
开本 16开
装帧 平装
页数 190
字数 199
版次 1
印次 1
纸张 一般胶版纸
商品评论

暂无商品评论信息 [发表商品评论]

商品咨询

暂无商品咨询信息 [发表商品咨询]