由于此商品库存有限,请在下单后15分钟之内支付完成,手慢无哦!
100%刮中券,最高50元无敌券,券有效期7天
活动自2017年6月2日上线,敬请关注云钻刮券活动规则更新。
如活动受政府机关指令需要停止举办的,或活动遭受严重网络攻击需暂停举办的,或者系统故障导致的其它意外问题,苏宁无需为此承担赔偿或者进行补偿。
诺森现代C++软件架构:方法与实践
¥ ×1
目 录Contents前 言部 软件架构的概念和组成部分章 软件架构的重要和良好的设计原则 21.1 技术要求 21.2 软件架构 21.3 适当架构的重要 31.3.1 软件腐朽 41.3.2 意外架构 41.4 架构的基本原理 41.4.1 架构上下文 41.4.2 相关方 41.4.3 业务和技术环境 51.5 使用敏捷原则开发架构 51.6 C++的哲学思想 71.7 SOL和DRY原则 91.7.1 单一责任原则 91.7.2 开放封闭原则 91.7.3 里氏替换原则 101.7.4 接口隔离原则 111.7.5 依赖倒置原则 121.7.6 DRY原则 151.8 耦合和内聚 161.8.1 耦合 161.8.2 内聚 171.9 总结 19问题 19进一步阅读 19第2章 架构风格 202.1 技术要求 202.2 有状态风格和无状态风格 20. 单体风格 2.4 服务和微服务 242.5 基于事件的架构 272.5.1 基于事件的常见拓扑结构 282.5.2 事件溯源 292.6 分层架构 302.7 基于模块的架构 322.8 总结 32问题 33进一步阅读 33第3章 功能和非功能需求 343.1 从源代码生成文档的技术要求 343.2 需求的类型 343.2.1 功能需求 353.2.2 非功能需求 353.3 架构级重要需求 363.3.1 指示信号 373.3.2 阻碍以及应对方法 373.4 从各种来源收集需求 383.4.1 了解上下文 383.4.2 了解现有文档 393.4.3 了解相关方 393.4.4 收集来自相关方的需求 393.5 文档化需求 403.5.1 文档化上下文 403.5.2 文档化范围 413.5.3 文档化功能需求 413.5.4 文档化非功能需求 4.5.5 管理文档的版本历史 4.5.6 文档化敏捷项目中的需求 433.5.7 部分 433.6 文档化系统架构 443.6.1 4+1模型 443.6.2 C4模型 483.6.3 文档化敏捷项目中的架构 513.7 选择文档的正确视图 513.7.1 功能视图 5..2 信息视图 5..3 并发视图 533.7.4 开发视图 533.7.5 部署和操作视图 543.8 生成文档 553.8.1 生成需求文档 553.8.2 从代码生成图 553.8.3 从代码生成API文档 553.9 总结 60问题 60进一步阅读 61第二部分 C++软件的设计和开发第4章 架构与系统设计 644.1 技术要求 644.2 分布式系统的特 644.2.1 不同的服务模型以及何时使用它们 654.2.2 避免分布式计算的错误设 674.. CAP定理和的一致 704.3 系统容错和可 724.3.1 计算系统的可用 724.3.2 构建容错系统 734.3.3 故障检测 754.3.4 减少故障的影响 764.4 系统集成 784.4.1 管道和过滤器模式 784.4.2 消费者竞争 784.4.3 从旧系统过渡 794.5 在规模化部署时保持能 804.5.1 CRS和事件溯源 804.5.2 缓存 824.6 系统部署 844.6.1 边车模式 844.6.2 零停机时间部署 874.6.3 外部配置存储 894.7 管理API 894.8 总结 90问题 90进一步阅读 91第5章 利用C++语言特 925.1 技术要求 925.2 设计的API 935.2.1 利用RAII 935.2.2 指定C++容器接口 935.. 在接口中使用指针 965.2.4 指定前置条件和后置条件 975.2.5 使用内联命名空间 975.2.6 使用std::optional 985.3 编写声明式代码 995.3.1 展示特色商品 1015.3.2 标准范围介绍 1055.4 在编译时移动计算 1075.5 利用安全类型的力量 1085.6 编写模块化的C++代码 1125.7 总结 114问题 114进一步阅读 115第6章 设计模式和C++ 1166.1 技术要求 1166.2 C++编程习语 1166.2.1 使用RAII保护自动执行作用域的退出操作 1176.2.2 管理可复制和可移动 1176.. 使用隐藏的友元 1196.2.4 使用复制和交换习语提供异常安全 1206.2.5 编写niebloid 1216.2.6 基于策略的设计习语 1. 奇异递归模板模式 1246.3.1 知道何时使用动态多态和静态多态 1246.3.2 实现静态多态 1256.3.3 插曲—使用类型擦除技术 1276.4 创建对象 1286.4.1 使用工厂 1286.4.2 使用构建器 1326.5 在C++中跟踪状态和访问对象 1356.6 有效地处理内存 1386.6.1 使用SSO/SOO减少动态分配 1386.6.2 通过COW来节省内存 1396.6.3 使用多态分配器 1396.7 总结 143问题 143进一步阅读 144第7章 构建和打包 1457.1 技术要求 1457.2 充分利用编译器 1457.2.1 使用多个编译器 1467.2.2 减少构建时间 1467.. 查找潜在的代码问题 1497.2.4 使用以编译器为中心的工具 1507.3 抽象构建过程 1517.3.1 认识CMake 1517.3.2 使用生成器表达式 1547.4 使用外部模块 1557.4.1 获取依赖项 1557.4.2 使用查找脚本 1567.4.3 编写查找脚本 1577.4.4 使用Conan软件包管理器 1597.4.5 添加测试 1617.5 重用高质量代码 1637.5.1 安装 1637.5.2 导出 1667.5.3 使用CPack 1667.6 使用Conan打包 1687.6.1 创建conanf?ile.py脚本 1687.6.2 测试Conan软件包 1707.6.3 将Conan打包代码添加到CMakeLists 1717.7 总结 172问题 172进一步阅读 173第三部分 架构的质量属第章 编写可测试代码 1768.1 技术要求 1768.2 为什么要测试代码 1778.2.1 测试金字塔 1778.2.2 非功能测试 1788.. 回归测试 1798.2.4 根因分析 1798.2.5 进一步改进的基础工作 1798.3 测试框架 1808.3.1 GTest示例 1818.3.2 Catch2示例 1818.3.3 CppUnit示例 1818.3.4 Doctest示例 1838.3.5 测试编译时代码 1838.4 模拟和伪装 1848.4.1 不同的测试替身 1848.4.2 测试替身的用途 1848.4.3 编写测试替身 1848.5 测试驱动的类设计 1878.5.1 测试和类设计时 1888.5.2 防御编程 1888.5.3 无聊的重复—先写测试 1898.6 自动化测试以实现持续集成和持续部署 1898.6.1 测试基础设施 1908.6.2 使用Serverspec进行测试 1918.6.3 使用Testinfra进行测试 1918.6.4 使用Goss进行测试 1928.7 总结 192问题 193进一步阅读 193第9章 持续集成和持续部署 1949.1 技术要求 1949.2 CI简介 1949.2.1 早发布,常发布 1959.2.2 CI的优点 1959.. 门控机制 1969.2.4 使用GitLab实现管道 1969.3 审查代码更改 1979.3.1 自动门控机制 1989.3.2 代码审查—手动门控机制 1989.3.3 代码审查的不同方法 1999.3.4 使用拉请求进行代码审查 1999.4 测试驱动的自动化 2009.4.1 行为驱动开发 2009.4.2 编写CI测试 2029.4.3 持续测试 2029.5 将部署作为代码管理 2039.5.1 使用Ansible 2049.5.2 Ansible如何与C/C管道相匹配 2049.5.3 使用组件创建部署代码 2049.6 构建部署代码 2059.7 构建CD管道 2059.7.1 持续部署和持续交付 2069.7.2 构建示例CD管道 2069.8 使用不可变基础设施 2089.8.1 什么是不可变基础设施 2089.8.2 不可变基础设施的好处 2099.8.3 使用Packer构建实例映像 2099.8.4 利用Terraform协调基础设施 2109.9 总结 212问题 212进一步阅读 2130章 代码安全和部署安全 21410.1 技术要求 21410.2 代码安全检查 21410.2.1 强调安全的设计 21510.2.2 安全编码、指南和GSL 21810.. 防御编程,验一切 21910.2.4 常见的漏洞 22010.3 检查依赖项安全 22110.3.1 通用漏洞披&nsp; 22110.3.2 自动扫描器 22110.3.3 自动化依赖项升级管理 22210.4 强化代码 22210.4.1 面向安全的内存分配器 22210.4.2 自动检查 210.4.3 进程隔离和沙箱 22610.5 强化环境 22610.5.1 静态链接与动态链接 22710.5.2 地址空间布局随机化 22710.5.3 DevSecOps 22710.6 总结 228问题 228进一步阅读 2281章 能 011.1 技术要求 011.2 能测量 011.2.1 执行准确且有意义的测量 111.2.2 利用不同类型的测量工具 111.. 使用微基准测试 211.2.4 能分析 11.2.5 跟踪 24011.3 帮编译器生成高能代码 24011.3.1 优化整个程序 24111.3.2 基于真实世界的使用模式进行优化 24111.3.3 编写缓存友好的代码 24111.3.4 在设计码时虑数据 24211.4&nb
本书结合现代C++特,详细介绍软件架构的实用方法及实践,探索了如何在单体应用程序中使用成熟的设计模式,如何使应用程序具有健壮、安全、能和可维护,以及如何使用面向服务的架构、微服务、容器和无服务器计算等架构模式构建连接多个单体应用程序的高级服务。全书共分为四部分:部包含~3章,介绍软件架构的概念及组件,包括软件架构的重要和良好的设计原则、架构风格、功能和非功能需求;第二部分包含第4~7章,介绍C++软件的开发和设计,包括架构与系统设计、C++语言特、设计模式,以及构建和打包;第三部分包含8~1章,介绍架构的质量属,包括测试、持续集成和持续部署、安全、能;第四部分包含2~15章,介绍云原生设计原则,包括面向服务的架构、微服务、容器、云原生设计。本书适合C++程序员、架构师等相关技术人员阅读。
软件架构是指复杂应用程序的高级设计。它像我们使用的编程语言一样不断进化。现代C++允许开发人员在不牺牲可读和可维护的情况下,用高级语言编写高能应程序。如果你正在使用现代C++,那么本书将帮你把相关知识应用到工作中,设计分布式大规模应用程序。本书首先快速介绍架构概念,包括已建立的模式和不断上升的趋势;然后,详细阐释软件架构的概念及其组件;接着,深入探索应用程序架构中涉及的设计概念和软件开发中涉及的模式,详细介绍构建、打包、集成和部署组件的方法,以及架构的不同质量属,例如可维护、可重用、可测试、能、可伸缩和安全;,概述分布式系统,例如面向服务的架构、微服务和云原生设计,并简单介绍如何在应用程序开发中应用它们。学完本书内容,你将能够使用现代C++和相关工具构建分布式服务,并根据客户的需求交付解决方案。
亲,大宗购物请点击企业用户渠道>小苏的服务会更贴心!
亲,很抱歉,您购买的宝贝销售异常火爆让小苏措手不及,请稍后再试~
非常抱歉,您前期未参加预订活动,
无法支付尾款哦!
抱歉,您暂无任性付资格