![]()
内容推荐 《软件架构师手册》作为一本综合性指南,能够推进开发人员、架构师和高级程序员在软件架构领域的职业发展。本书将带你了解所有重要的概念,从设计原则到软件架构职业生涯各个阶段的不同考量。 本书首先介绍了软件架构的基础、优势和目标。然后,你将了解软件架构和组织的关系,以及如何识别架构中重要的质量属性。一旦掌握了这些基础知识,你将进一步探索高效软件开发的设计模式、最佳实践和范式。 本书探讨了哪些因素能够提升性能和安全性。你将学习为架构撰写文档,并在DevOps框架下做出适当的决策。此外,你将学习如何设计遗留应用程序,以及如何创建随市场、业务需求、框架、工具和最佳实践的变化而演进的软件架构。 读完本书,你不仅能了解软件架构的概念,而且能掌握在本领域成长所必需的软技能。 作者简介 约瑟·因格纳,Joseph Ingeno是一名软件架构师,曾负责监督多个企业级软件的开发。在他的职业生涯中,曾为不同行业设计并开发软件。他熟悉多种技术和框架,在开发web、移动和桌面应用程序方面有着丰富的经验。Joseph 毕业于迈阿密大学(University of Miami),获得计算机信息系统的理学硕士学位和工商管理学士学位,之后又在布兰迪斯大学(Brandeis University)获得软件工程硕士学位。他拥有多项认证,包括微软认证解决方案开发专家(Microsoft Certified Solutions Develop-er)和IEEE 计算机协会的专业软件工程专家认证(Professional Software EngineeringMaster Certification)。 目录 1 软件架构的含义 什么是软件架构? 为什么软件架构很重要? 软件架构的受众是谁? 软件架构师的角色是怎样的? 总结 2 组织中的软件架构 软件架构师的类型 软件开发方法 项目管理 职场关系 软件风险管理 配置管理 软件产品线 总结 3 理解领域 培养商业智慧 领域驱动设计 需求工程 需求抽取 总结 4 软件质量属性 质量属性 可维护性 易用性 可用性 可移植性 互用性 可测试性 总结 5 设计软件架构 软件架构设计 软件架构设计的重要性 自顶向下方法和自底向上方法 绿地软件系统和棕地软件系统 架构驱动 利用设计原则和现有的解决方案 记录软件架构设计 使用系统化方法进行软件架构设计 属性驱动设计(ADD) 微软的架构和设计技术 以架构为中心的设计方法(ACDM) 架构开发方法(ADM) 跟踪软件架构设计的进度 总结 6 软件开发原则与实践 设计正交的软件系统 最小化复杂性 遵循SOLID的设计原则 帮助你的团队走向成功 总结 7 软件架构模式 软件架构模式 分层架构 事件驱动架构 Model-View-Controller模式 Model-View-Presenter模式 Model-View-ViewModel模式 命令查询职责分离 面向服务架构 面向服务的设计 服务注册中心 服务描述 组织命名空间 编排和协同 总结 8 现代应用程序架构设计 单体架构 微服务架构 无服务器架构 云原生应用程序 总结 9 横切关注点 横切关注点 横切关注点的通用指南 实现横切关注点 面向切面编程 横切关注点的类型 微服务的横切关注点 总结 10 性能注意事项 性能的重要性 定义性能术语 采取系统性方法改善性能 服务端缓存 改善Web应用程序性能 数据库性能 总结 11 安全性注意事项 确保软件系统的安全 威胁建模 设计安全 密码学 身份和访问管理(IAM) 最常见的Web应用程序安全性风险 总结 12 软件架构的文档化和评审 软件架构文档的使用 创建架构描述(ADs) 统一建模语言(UML)概述 软件架构评审 总结 13 DevOps和软件架构 DevOps定义 DevOps实践 DevOps的架构 部署到云端 总结 14 遗留应用架构设计 遗留应用程序 重构遗留应用程序 迁移到云 现代化构建和部署流程 与遗留应用程序集成 总结 15 软件架构师的软技能 软技能 沟通 领导 协商 与远程资源协同工作 总结 16 演进架构 变化不可避免 Lehman的软件演进法则 法则 设计演进架构 总结 17 成为更好的软件架构师 持续学习 参与开源项目 撰写自己的博客 花时间教学 尝试新技术 继续编写代码 参加用户小组和会议 对你的工作负责 关注你的健康 总结 |