一、架构的含义
许多人对什么是架构或者架构设计包含什么内容比较模糊。我就来说上几句。
‘什么是架构’涉及定义,需要精确性,难免会有争论。不过,以下几个理解估计共鸣者不少。

1、架构是一种设计
我们平时说‘张三,你做一下架构设计;李四,请将架构(设计)图给我看一下’,总是将架构与设计关联使用。事实上,英文表述是‘Architecture-Design’,也是这个意思。

那么,已经有了‘设计’
,为何还要‘架构’这个新名词呢?

之所以将‘架构’单列出来,其实是跟软件的规模越来越大有关。盖一个民房不大需要设计,那些5个人的小施工队就可以搞定;或者盖个6层楼的小高层,简单的设计完全足够了。

2、架构是高层设计
软件工程中有个基本方法叫‘自顶向下、分而治之’。架构设计就是高层设计,与以前的名词‘系统设计’是一致的。而我们平时说的设计(非架构),可以理解为‘详细设计(Detail Design)’。

二、架构的内容或分类
不少人以为架构就是指软件逻辑设计,事实上就象盖高楼一样,除了主体建筑设计,还有强电、弱电、供水、通风、装修设计。
软件架构通常包含以下内容(也可称为分类):

通常意义上的架构,较多是指某一应用的(软件)架构,但又绝非简单的数据架构或者逻辑架构。

1)业务架构(BA,Business Architectue)
最容易被大家忽略(甚至于许多技术人员不认可)的是‘业务架构’。–周爱民同学去支付宝,角色就是‘业务架构’。
但是千万别忽略的这个‘业务架构’,因为它是其它3个架构的引导。业务架构的核心是整理业务需求,列出功能,描述出业务蓝图。
为了实现这个业务蓝图,就需要转换成应用的软件架构,通常由二部分表述:逻辑架构、数据架构。

2)逻辑架构(LA,Logical Architectue)
通常用领域模型来表述。

3)数据架构(DA,Data Architectue)
数据架构设计就是决定数据的内存与存储形式,主要是指后者。以前我们称为数据存贮设计。
单机软件时,只需要设计数据结构;随着C/S系统的出现,主要是DBSchema设计;随着大型互联网的出现,数据变成海量,让系统更具备scalability就显得异常重要–这就是数据架构(DA)。–大辉同学之前就是支付宝的DA。

4)物理(总署)架构(PA,Physical Deployment Architectue)

三、一些误解
1)架构师是编程高手。
所有人都承认贝聿铭是伟大的建筑设计师,但没有人认为他是个

2)架构师是全才
贝聿铭最善长的是主体建筑设计,但不见得精通强电、弱电、供水、通风的设计;即使某些方面也懂,但没有人会认为他是那方面的大师。

这二条意见,对招聘有用。

转载于:https://www.cnblogs.com/qq419524837/articles/1593822.html

杂论架构—架构是一种设计 转。。。相关推荐

  1. 多核片上系统(SoC)架构的嵌入式DSP软件设计

    多核片上系统(SoC)架构的嵌入式DSP软件设计 Multicore a System-on-a-Chip (SoC) Architecture SoCs的软件开发涉及到基于最强大的计算模型在各种处理 ...

  2. 朱晔的互联网架构实践心得S1E9:架构评审一百问和设计文档五要素

    朱晔的互联网架构实践心得S1E9:架构评审一百问和设计文档五要素 [下载文本PDF进行阅读] 本文我会来说说我认为架构评审中应该看的一些点,以及我写设计文档的一些心得.助你在架构评审中过五关斩六将,助 ...

  3. 存储架构|Bitcask 引擎的设计,秒!

    坚持思考,就会很酷 Bitcask 是什么? Bitcask 是一种很有趣的存储模型的设计,这是一种底层格式为日志模样的 kv 存储.Bitcask 起源于 Riak 分布式数据库,Bitcask 论 ...

  4. 概要设计实例_多核片上系统(SoC)架构的嵌入式DSP软件设计

    多核片上系统(SoC)架构的嵌入式DSP软件设计 Multicore a System-on-a-Chip (SoC) Architecture SoCs的软件开发涉及到基于最强大的计算模型在各种处理 ...

  5. bs架构 mysql_基于BS架构OA办公系统的设计(PHP,MySQL)(三人组)(含录像)

    基于BS架构OA办公系统的设计(,MySQL)(三人组)(含录像)(毕业论文13000字,程序代码,MySQL数据库,答辩PPT) 系统模块划分 企业部门管理系统(以管理员部分为核心)从功能上划分为5 ...

  6. 给 COLA 做减法:应用架构中的“弯弯绕设计”

    简介:COLA 的主要目的是为应用架构提供一套简单的可以复制.可以理解.可以落地.可以控制复杂性的"指导和约束".在实践中作者发现 COLA 在简洁性上仍有不足,因此给 COLA ...

  7. Cortex-A7 MPCore 架构详细介绍(九种运行模式、内核寄存器组R0~R15,有特定的名字和功能)

    目录 0.ARM架构的历史简介 1.Cortex-A7 MPCore(即多核) 简介 2.Cortex-A 处理器九种运行模式 3.Cortex-A 寄存器组(内核寄存器) 3.1通用寄存器 3.1. ...

  8. 微服务架构设计基础之领域驱动设计

    背景 微服务现在可以说是软件研发领域无人不提的话题,然而业界流行的对比多数都是所谓的Monolithic(单体应用),而大量的系统在十几年前都已经是以SOA(面向服务架构)为基础的分布式系统了,那么微 ...

  9. 聊聊微服务架构中的多级缓存设计

    大家好,我是不才陈某~ 今天我们来聊聊缓存这个话题,看看在微服务环境下如何设计有效的多级缓存架构.主要涉及三方面内容: Web 应用的客户端缓存: 应用层静态资源缓存: 服务层多级缓存. 首先,咱们先 ...

最新文章

  1. iOS开发-照片选择
  2. 谈谈 Mifare Classic 破解
  3. 用jar命令将Web应用打包成war文件的简单方法
  4. [crypto]-05-转载:PKCS #1 RSA Encryption Version 1.5介绍
  5. FAQ接口自动化_转载参考
  6. oralce10g中约束与列属性NULLABLE的关系
  7. 2020年大厂职级薪资一览表
  8. 类型转换异常处理java.lang.RuntimeException
  9. P2626 斐波那契数列(升级版)
  10. SAP UI5 数据绑定中的工厂函数
  11. 作者:姚阳(1979-),女,广州市社会科学院经济学副研究员。
  12. 聪明女人的七个致富之道,学会它你也能成为人人羡慕的小富婆
  13. gulp教程之gulp-uglify(压缩javascript文件,减小文件大小)
  14. SQL Server 触发器
  15. python 循环语句 教学设计_pythonwhile循环教案
  16. Kesci:Tensorflow 实现 LSTM——时间序列预测(超详细)
  17. app推广运营大神干货9问答::iOS渠道不知道去哪里挖掘等
  18. Kafka消费者订阅方式
  19. 使用Feign实现Form表单提交
  20. 移动文件后图标变白解决方法

热门文章

  1. mysql 判断等于空字符串_mysql 判断null 和 空字符串
  2. html 实现格子效果,div+css实现九宫格效果
  3. 初识java中数组、数组在内存中、越界异常、空指针异常
  4. linux下搭建nagios监控
  5. CDH 和ambari之间的比较
  6. 互联网晚报 | 4月15日 星期五 | 360推出元宇宙产品“N世界”;四川多地下调房贷利率;知情人士:上汽或推动复工复产...
  7. 2021十大金融科技趋势
  8. conceptd什么时候上市_阳山水蜜桃多少钱一斤?什么时候成熟上市?
  9. 如何用PPT编制方案 (4)PPT中的图形设计
  10. 作者:Gopakumar Gopalakrishnan,男,印度科技大学管理学博士,印孚瑟斯技术有限公司高级研究科学家。...