《Microsoft.NET企业级应用架构设计(第2版)》——导读

简介: 软件架构有一些前置条件(设计原则)和一个后置条件(实现一个产生预期结果的系统)。本书的第1部分是“基础”,为软件架构打下基础,关注架构师的角色、软件项目的固有机制以及提升软件品质方面,如可测试性和可读性。





前言

我们写这本书的主要目的是为你带来一个关于软件架构的坚实、可重用以及易于访问的知识库。在过去,我们使用Microsoft Windows DNA、分布式COM、多层CRUD、SOA、DDD、CQRS和事件溯源等技术完成了很多项目。我们用过Microsoft Visual Basic 6、C#、C++、Java和JavaScript。我们目睹了技术解决方案不断改变,对于这些方案的看法也进化了。

最终,我们和Fred Brooks得出的结论相同。我们不穿白袍,我们不是医生,我们不写处方。我们在这里的目的是汇聚各方观点,加入我们对这些观点的见解和评论,如实地总结这些事实和看法。

当开发者和架构师被要求立刻采取正确的方案时,我们提供一个知识快照——现成的软件架构师心得,可以用作进一步研究的起点,也可以用来形成你自己的判断。如果软件架构是一个定理,(我们希望)这本书将会提供一些必要的引理。
软件架构有一些前置条件(设计原则)和一个后置条件(实现一个产生预期结果的系统)。本书的第1部分是“基础”,为软件架构打下基础,关注架构师的角色、软件项目的固有机制以及提升软件品质方面,如可测试性和可读性。

第2部分是“设计架构”,关注构成典型企业系统的最上面两层:表现层和业务层。我们把标准的第3层放在后面:数据访问层。我们推行一个比较新的系统设计方案,叫作用户体验优先。它是一个基于任务的方法学,从达成共识的模型和屏幕引出命令和领域事件。就基于任务的设计理念而言,领域模型的角色不再是中心,数据访问层也只是基础设施的一部分了,而且不一定基于标准的关系型表。第2部分最给力的一章是第5章“发现领域架构”,我们推荐所有人阅读。简而言之,这章的观点是只有深刻理解领域才能发现合适架构。更重要的是,结果架构不一定是适用于整个应用程序的单个顶层架构。当识别出子领域时,你可以把它们建模成子应用程序,给予每个最有效的架构。听起来可能有点奇怪,但这就是领域驱动设计(DDD)的要旨。

第3部分是“支撑架构”,涵盖3个可以用来构建各种子领域的支撑架构。每个架构都有两章——介绍和实现。我们考虑的第一个支撑架构是领域模型。接着,我们会讲命令/查询责任分离(CQRS)和事件溯源。

最后,第4部分“基础设施”,只包含一章,它处理基础设施和持久层。有趣的是,这章不仅仅讲到SQL、Entity Framework和关系型数据库,还着重讲了多样化和持久化、NoSQL数据存储和用来隐藏存储细节的服务。

那么,这本书到底是关于什么的?

这是关于在.NET平台上更好地满足你的客户需要知道和做到什么的一本书。我们给出的模式、原则和技术一般来说都是有效的,并非针对复杂的行业系统。一个好的软件架构可以帮助控制项目的复杂性。控制复杂性和支持可维护性是我们应对技术领域的墨菲定理的最好策略:“没有什么能按时、按预算构建出来。”为了做到这点,只有一件事情是不允许失败的:(深刻)理解业务领域。

目录

第1部分 基础
[第1章 今天的架构师和架构
1.1 软件架构到底是什么

1.1.1 把架构原则应用到软件中
1.1.2 确认需求
1.1.3 什么是架构,什么不是
1.1.4 架构流程
1.2 谁是架构师
1.2.1 架构师的职责
1.2.2 架构师的角色
1.2.3 关于架构师的常见误解
1.3 总结
1.4 笑到最后
[第2章 为成功而设计
2.1 “大泥球”

2.1.1 “大泥球”的成因
2.1.2 “大泥球”的征兆
2.1.3 使用指标检测BBM
2.2 软件项目的机制
2.2.1 组织文化
2.2.2 帮助团队更好地写代码
2.3 走出混乱
2.3.1 有一种奇怪的东西叫作“遗留代码”
2.3.2 在3招之内将杀(checkmate)
2.3.3 决定是否添加人手
2.4 总结
2.5 笑到最后

相关文章
|
8月前
|
监控 安全 数据安全/隐私保护
教你如何修复硬盘坏道,一文看懂实用方法
电脑变卡、文件打不开、系统崩溃?可能是硬盘坏道所致!本文教你如何判断硬盘是否存在坏道,并提供多种修复方法,包括DiskGenius、CHKDSK及厂商工具等,助你轻松应对逻辑坏道与物理坏道问题。修复前请备份数据、保持供电稳定,若坏道频发,建议及时更换硬盘。了解硬盘保养技巧,延长使用寿命,保障数据安全。
|
SQL 程序员 Linux
推荐几个不错的数据库设计工具
推荐几个不错的数据库设计工具
1576 11
|
6月前
|
存储 人工智能 安全
企业级 AI Agent 开发指南:基于函数计算 FC Sandbox 方案实现类 Chat Coding AI Agent
通过 Sandbox 与 Serverless 的深度融合,AI Agent 不再是“黑盒”实验,而是可被企业精准掌控的生产力工具。这种架构不仅适配当前 AI Agent 的动态交互特性,更为未来多模态 Agent、跨系统协作等复杂场景提供了可复用的技术底座。若您的企业正面临 AI Agent 规模化落地的挑战,不妨从 Sandbox 架构入手,结合函数计算 FC 的能力,快速验证并构建安全、高效、可扩展的 AI 应用系统。
|
9月前
|
人工智能 自然语言处理 监控
2025年如何通过SOP工具实现流程标准化?详解6大构建步骤及7款软件选型指南
标准作业程序(SOP)是企业核心知识资产与效率引擎,其科学构建和高效落地成为2025年数字化转型的关键。本文解析SOP全生命周期流程,探讨可视化技术对流程管理的赋能,并推荐7款智能工具。从概念到实施,SOP助力企业实现技术储备、效率提升与风险防控。通过动态协同、富媒体化及AI增强,企业可在高效与创新间取得平衡,构建可持续竞争优势。
2769 2
|
存储 前端开发 数据库
一文搞懂SaaS应用架构:应用服务、应用结构、应用交互设计
【10月更文挑战第21天】本文介绍了 SaaS 应用服务的多租户服务、安全服务和更新与维护服务,以及 SaaS 应用的前后端结构和交互设计。多租户服务涉及数据隔离和资源分配;安全服务包括身份认证与授权及数据安全;更新与维护服务涵盖版本管理和技术支持。前端结构关注用户界面设计和前端技术选型;后端结构则涉及微服务架构和数据库管理。交互设计强调租户与应用的交互和应用内部模块间的交互。
1438 0
|
缓存 Rust 安全
Rust中的RESTful API构建:实践与探索
本文详细阐述了在Rust编程语言中如何构建RESTful API的过程。我们将通过实际示例,介绍Rust的生态系统中用于构建API的流行库和框架,包括Actix-Web、Rocket和Gotham。此外,我们还将讨论RESTful设计原则、API安全性、性能优化等方面的内容,帮助读者在Rust中高效、安全地构建RESTful API。
|
存储 Unix Linux
分布式文件系统协议:NFS(Network File System)网络文件系统
NFS(Network File System)网络文件系统是一种分布式文件系统协议,最初由Sun Microsystems开发,并在1984年首次发布。 NFS允许不同计算机通过网络共享资源,特别是文件和目录,就像它们是本地存储的一部分一样。使用NFS的客户端可以挂载远程服务器上的文件系统,使得用户能够以透明的方式访问远程数据,实现跨多个系统的文件共享。
5935 1
|
SQL 前端开发 数据安全/隐私保护
若依框架---权限管理设计
若依框架---权限管理设计
1519 0
|
SQL 关系型数据库 MySQL
Web Terminal环境使用指南
本教程主要介绍如何使用Web Terminal环境,在云服务器ECS上安装并配置MySQL、数据导出与导入和使用简单的SQL语句。

热门文章

最新文章