[CTO札记]杂论架构

简介:
一、架构的含义
许多人对什么是架构或者架构设计包含什么内容比较模糊。我就来说上几句。
‘什么是架构’涉及定义,需要精确性,难免会有争论。不过,以下几个理解估计共鸣者不少。
1、架构是一种设计
我们平时说‘张三,你做一下架构设计;李四,请将架构(设计)图给我看一下’,总是将架构与设计关联使用。事实上,英文表述是‘Architecture Design’,也是这个意思。
那么,已经有了‘设计’,为何还要‘架构’这个新名词呢?之所以将‘架构’单列出来,其实是跟软件的规模越来越大有关。
盖一个民房不大需要设计,那些5个人的小施工队就可以搞定;或者盖个6层楼的小高层,简单的设计完全足够了;但是,建个金茂大厦、东方明珠什么的,恐怕没有精心的设计是不行的。
类似地,软件设计领域也早已经从单机应用,走向C/S应用,互联网应用,海量系统。随着复杂性的增强,通常意义上的设计已经不能应付了,需要总体设计、系统设计,所以专业化地提出了‘架构设计’这个词。
 
 
2、架构是高层设计
软件工程中有个基本方法叫‘自顶向下、分而治之’。架构设计就是高层设计,与以前的名词‘系统设计’是一致的。而我们平时说的设计(非架构),可以理解为‘详细设计(Detail Design)’。
 
所以,千万别把某个类的设计、某个API的设计叫作‘架构’。
 
二、架构的内容或分类
不少人以为架构就是指软件逻辑设计,事实上就象盖高楼一样,除了主体建筑设计,还有强电、弱电、供水、通风、装修设计。
软件架构通常包含以下内容(也可称为分类):
 
通常意义上的架构,较多是指某一应用的(软件)架构,但又绝非简单的数据架构或者逻辑架构。
1)业务架构(BA,Business Architecture)
最容易被大家忽略(甚至于许多技术人员不认可)的是‘业务架构’。--周爱民同学去支付宝,角色就是‘业务架构’。
但是千万别忽略的这个‘业务架构’,因为它是其它3个架构的引导。业务架构的核心是整理业务需求,列出功能,描述出业务蓝图。
为了实现这个业务蓝图,就需要转换成应用的软件架构,通常由二部分表述:逻辑架构、数据架构。
2)逻辑架构(LA,Logical Architecture)
通常用领域模型来表述。
3)数据架构(DA,Data Architecture)
数据架构设计就是决定数据的内存与存储形式,主要是指后者。以前我们称为数据存贮设计。
单机软件时,只需要设计数据结构;随着C/S系统的出现,主要是DBSchema设计;随着大型互联网的出现,数据变成海量,让系统更具备scalability就显得异常重要--这就是数据架构(DA)。--大辉同学之前就是支付宝的DA。
4)物理(总署)架构(PA,Physical Deployment Architecture)
三、一些误解
1)架构师是编程高手
所有人都承认贝聿铭是伟大的建筑设计师,但没有人认为他是个施工高手,也没有人认为他有这个必要。
2)架构师是全才
贝聿铭最善长的是主体建筑设计,但不见得精通强电、弱电、供水、通风的设计;即使某些方面也懂,但没有人会认为他是那方面的大师。
 
这2条意见,可以让你的招聘更有效。



















本文转自DavyYew 51CTO博客,原文链接:http://blog.51cto.com/davyyew/241247  ,如需转载请自行联系原作者

相关文章
|
弹性计算 运维 Kubernetes
带你读《云原生架构白皮书2022新版》——南瓜电影 CTO 庄徐麟分享如何在 7 天内全面实现业务 Serverless 化(2)
带你读《云原生架构白皮书2022新版》——南瓜电影 CTO 庄徐麟分享如何在 7 天内全面实现业务 Serverless 化(2)
273 13
|
运维 监控 Cloud Native
带你读《云原生架构白皮书2022新版》——南瓜电影 CTO 庄徐麟分享如何在 7 天内全面实现业务 Serverless 化(4)
带你读《云原生架构白皮书2022新版》——南瓜电影 CTO 庄徐麟分享如何在 7 天内全面实现业务 Serverless 化(4)
282 5
|
弹性计算 人工智能 编解码
带你读《云原生架构白皮书2022新版》——南瓜电影 CTO 庄徐麟分享如何在 7 天内全面实现业务 Serverless 化(1)
带你读《云原生架构白皮书2022新版》——南瓜电影 CTO 庄徐麟分享如何在 7 天内全面实现业务 Serverless 化(1)
276 7
|
SQL 弹性计算 运维
带你读《云原生架构白皮书2022新版》——南瓜电影 CTO 庄徐麟分享如何在 7 天内全面实现业务 Serverless 化(3)
带你读《云原生架构白皮书2022新版》——南瓜电影 CTO 庄徐麟分享如何在 7 天内全面实现业务 Serverless 化(3)
217 3
|
JavaScript 前端开发 搜索推荐
「前端架构」React和Vue -CTO的选择正确框架的指南
「前端架构」React和Vue -CTO的选择正确框架的指南
|
存储 Kubernetes 监控
「微服务架构」面向CTO的微服务简介:微服务对企业的利弊
「微服务架构」面向CTO的微服务简介:微服务对企业的利弊
|
设计模式 负载均衡 监控
「微服务架构」面向CTO的微服务设计模式:API网关、前端的后端等
「微服务架构」面向CTO的微服务设计模式:API网关、前端的后端等
|
19天前
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。
|
28天前
|
Cloud Native Devops 云计算
云计算的未来:云原生架构与微服务的革命####
【10月更文挑战第21天】 随着企业数字化转型的加速,云原生技术正迅速成为IT行业的新宠。本文深入探讨了云原生架构的核心理念、关键技术如容器化和微服务的优势,以及如何通过这些技术实现高效、灵活且可扩展的现代应用开发。我们将揭示云原生如何重塑软件开发流程,提升业务敏捷性,并探索其对企业IT架构的深远影响。 ####
42 3
|
1月前
|
Cloud Native 安全 数据安全/隐私保护
云原生架构下的微服务治理与挑战####
随着云计算技术的飞速发展,云原生架构以其高效、灵活、可扩展的特性成为现代企业IT架构的首选。本文聚焦于云原生环境下的微服务治理问题,探讨其在促进业务敏捷性的同时所面临的挑战及应对策略。通过分析微服务拆分、服务间通信、故障隔离与恢复等关键环节,本文旨在为读者提供一个关于如何在云原生环境中有效实施微服务治理的全面视角,助力企业在数字化转型的道路上稳健前行。 ####