《.NET应用架构设计:原则、模式与实践》新书博客--试读-1.3 架构设计中的重要概念

简介:


1.3  架构设计中的重要概念

 

接下来的这一节主要提及与架构有关的一些概念。
 
 
1.3.1  TierLayer
 
    有些做开发的朋友容易把TierLayer混淆,或者认为两者是一样的。其实这两个概念并不相同,最简单的解释就是:Layer往往是指系统的逻辑结构,而Tier是指系统的物理部署结构,不同的Layer可以在同一Tier上;不同的Tier上面可以有相同的Layer。这两个概念一般在分层的系统中提及最多。
 
    下面以一个分层的ASP.NET SNS项目为例来说明,此项目的系统可能会分为界面层、界面控制层、服务层、业务层、数据访问层、数据存储访问层。这些就是逻辑层,也就是所谓的“Layer”。
在项目初期可能考虑到经济等某些因素,把除了界面层之外的其他逻辑层都部署在一台服务器上面,界面层就是用户在浏览器中看到的HTML页面。现在系统就是由6个逻辑层Layer)组成,也是由2个物理层Tier)组成(如图1-8所示),不同的Layer可以在同一Tier上。
 
 
    随着系统的使用和用户的增长,系统逻辑部分还是和之前一样,但是物理部署的层次就变化了,它采用了服务器群集的方法来达到负载均衡。那么就出现了不同的Tier上面可以有相同的Layer的情况,如图1-9所示。
 
1.3.2  架构与框架
 
    到现在为止所有的讨论都集中在架构和设计上面尽管这些都非常重要但是并非每次创建软件项目都要经历这个过程。我们可能会把这架构和设计固化在可重用的代码中从而能够在创建其他新的项目时重复使用。那么我们此时需要的就是一个“框架”:它以编码的方式实现了架构和设计,以便于提高重用性和生产效率。
 
    一般的开发过程会从收集和分析需求开始,然后是架构讨论和决策,接下来就是设计。首先是用低级别的概念设计支持架构,然后是真正对最终用户有用的业务概念设计。设计完成之后,开发者通常会花费相当长的时间来实现低级别的代码以支持稍后的业务代码的编写。
 
    所有对架构的讨论、决策、设计,以及编码都是非常重要的。但是不幸的是,这对于编写业务逻辑,提供业务功能的最终目标没有直接的意义。低级别的支持技术只能为创建实际的业务应用提供帮助,很多时候,我们只要实现一次,然后就可以在多个项目中重用它。
 
    在软件世界中,将架构和设计写到框架里面是最容易降低开销、提高重用性的方法。所以可以把框架看成是架构和设计的一种积累,经过多个项目的开发,不断地修改和完善框架,最后使得整个框架能够在性能、伸缩性、安全性等方面满足需求。
 
1.3.3  架构与模式
 
    每次谈及架构,所冒出的第一反应就是:架构就是设计模式,架构就是企业架构模式等诸如之类。相信通过上面章节的讲述,大家已经清楚了架构和模式的关系(基本没有很明确的关系,更加不存在等同的效应)。模式是经验的重用,模式对软件开发中出现的一些问题给出了比较好的解决方案。模式的决定和使用,常常是设计阶段考虑的问题,当然在架构创建的时候它是可以给一些问题以指导的,在这些指导中可能就包含了可以采用什么模式达到什么目的等。在架构和设计中,有时候采用了合适的模式,便可以快速地解决某些问题,但是两者绝对不是等同的关系,也不是多多益善的关系。
 
更多的话题,将在后续章节中讲述!
 

1.4  本章小结

这一章定义并解释了本书中使用的核心概念:架构、架构师和架构设计。这一章也讨论了软件开发流程采用以架构为中心的方式所带来的好处。然而,关于架构设计仍然有许多问题没有解决。例如,实际上架构师在软件开发项目中做什么、架构师产出什么、架构师角色如何与项目的其他角色发生联系等,这些问题将在后续章节中介绍。
 
 






















本文转自yanyangtian51CTO博客,原文链接: http://blog.51cto.com/yanyangtian/751125 ,如需转载请自行联系原作者


相关文章
|
资源调度 监控 调度
基于SCA的软件无线电系统的概念与架构
软件通信体系架构(SCA)是基于软件定义无线电(SDR)思想构建的开放式、标准化和模块化平台,旨在通过软件实现通信功能的灵活配置。SCA起源于美军为解决“信息烟囱”问题而推出的联合战术无线电系统(JTRS),其核心目标是提升多军种联合作战通信能力。 上海介方信息公司的OpenSCA操作环境严格遵循SCA4.1/SRTF标准,支持高集成、嵌入式等场景,适用于军用通信、雷达等领域。 SCA体系包括目标平台资源层(TRL)、环境抽象层(EAL)、SRTF操作环境(OE)及应用层(AL)。其中,SRTF操作环境包含操作系统、运行时环境(RTE)和核心框架(CF),提供波形管理、资源调度等功能。
|
7月前
|
人工智能 API 数据库
Semantic Kernel .NET 架构学习指南
本指南系统解析微软Semantic Kernel .NET架构,涵盖核心组件、设计模式与源码结构,结合实战路径与调试技巧,助你从入门到贡献开源,掌握AI编排开发全栈技能。
698 2
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
838 6
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
434 1
|
10月前
|
存储 Java 数据库连接
简单学Spring Boot | 博客项目的三层架构重构
本案例通过采用三层架构(数据访问层、业务逻辑层、表现层)重构项目,解决了集中式开发导致的代码臃肿问题。各层职责清晰,结合依赖注入实现解耦,提升了系统的可维护性、可测试性和可扩展性,为后续接入真实数据库奠定基础。
737 0
|
11月前
|
存储 缓存
.NET 6中Startup.cs文件注入本地缓存策略与服务生命周期管理实践:AddTransient, AddScoped, AddSingleton。
记住,选择正确的服务生命周期并妥善管理它们是至关重要的,因为它们直接影响你的应用程序的性能和行为。就像一个成功的建筑工地,工具箱如果整理得当,工具选择和使用得当,工地的整体效率将会大大提高。
359 0
|
供应链 监控 安全
网络安全中的零信任架构:从概念到部署
网络安全中的零信任架构:从概念到部署
1284 75
|
消息中间件 人工智能 数据可视化
文生图架构设计原来如此简单之用户界面架构
节点式界面是文生图工具中一种强大而灵活的设计范式,以 ComfyUI 为代表。这种设计将复杂的图像生成过程分解为可视化的模块化组件,使用户能够精确控制生成流程的每个环节。
554 2