Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >架构到底是什么?

架构到底是什么?

作者头像
架构精进之路
发布于 2020-08-17 07:52:26
发布于 2020-08-17 07:52:26
1.7K0
举报
文章被收录于专栏:架构精进之路架构精进之路

1、架构与框架的区别

提到架构,大家常常会将架构(Architecture)和框架(Framework)混为一谈。

例如:

1)开源系统(MySQL、Nginx)架构

2)大公司架构实现(支付宝、微信)

那两者的区别是什么呢?

架构:架构本身不是软件,而是关于软件如何设计的策略。是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。

框架:面向特定领域的、可复用的“半成品”软件,它实现了该领域的共性基础部分,并提供了一些定义良好的可变点以保证灵活性和可扩展性。是领域内、特定语言和技术的架构应用解决方案。

总结:架构关注的是“结构”,框架关注的是“规范”

框架是软件,目的是抽象通用化高效解决问题;架构是软件的抽象解决方案,目的是便于进行大局拆解与局部细化。

架构与框架

2、架构是什么?

软件架构(Software Architecture)

有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。 --来自维基百科

系统是由一群关联个体的组成的,系统中的个体需要“根据某种规则”协作,架构需要明确这种协作规则。

架构=骨架、结构,来源于建筑学。前者揭示架构中内在的支撑物,后者则表明架构关心支撑物相互结合的某种构造方式。

为什么会出现架构设计?

主要可归纳为以下几个原因:

1)业务需求多,而且易变

2)软件系统越来越复杂

3)参与的人越来越多

4)跨项目共性/特殊性的问题越来越多

5)技术发展日异月新

基于以上多种因素,导致系统维护成本越来越高:

1)系统规模庞大、内部耦合严重,开发效率低;

2)系统耦合严重,牵一发动全身,后续修改和扩展困难;

3)系统逻辑复杂,容易出问题,出问题后很难排查和修复。

3、架构的目的是什么?

架构设计的目的是什么?

为了解决软件系统复杂度带来的问题。

其终极目标是:用最小的人力成本来满足构建和维护系统的需求

架构设计的好处有哪些?

1)做到心中有数,而不是一头雾水(“新手”架构师)

2)有的放矢,而不是贪大求全(“老鸟”架构师)

一些Case:

“我们的系统一定要能够支撑到QPS 10w+...”

“微信朋友圈的架构就是这么做的,我们也这样来吧...”

“Docker现在很热,我们的架构应该将Docker引入进来...”

总结

随着业务的发展,跨系统架构设计必将成为我们重要的解决难题,届时可能需要重新优化设计。我们期望一张很大的架构图,囊括所有的业务相关的设计,事实上如果不深入了解业务,架构图就是纸上谈兵。

架构的本质在于合理,合理表现为两个方面:

1)提高效率:用更少的人力承接更多的工作

2)降低预算:用更少的机器承接更多的任务

END

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-04-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 架构精进之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
架构设计之一——基础架构
•典型表现有软件质量低下、项目无法如期完成、项目严重超支等,因为软件而导致的重大事故时有发生。
aneutron
2022/08/10
7530
【云+社区年度征文】带领团队学习成长,干货总结
在2020年这个非同寻常的年份里面,自己与团队小伙伴一起利用周例会时间,分享学习了《架构整洁之道》系列内容,同团队一起学习成长。在这个岁末年终的日子里,恰逢云+社区【云+社区年度征文】活动,来对自己本年度带领团队学习成长做个总结,分享给大家参考。
架构精进之路
2020/12/20
5330
【云+社区年度征文】带领团队学习成长,干货总结
系统架构设计师|关于系统架构(上)
系统架构是系统的一种整体的高层次的结构表示,是系统的骨架和根基,其决定了系统的健壮性和生命周期的长短。
六月暴雪飞梨花
2024/08/19
7020
系统架构设计师|关于系统架构(上)
浅谈软件架构
每一个程序员都有一个架构师的梦,可理想很丰满,现实很骨感---大部程序员工作中都做着简单的 CRUD,我也不例外。如果就这样还常把“架构”两个字挂在嘴边,估计程序员们都会脸红。但就因为暂时还不能成为架构师,我们就要放弃成为架构师的梦想了吗?显然不能,掌握架构设计的相关理论是成为架构师的前提,有了方法论可以更好地指导我们干活。机会总是留给有准备的人的,万一哪天梦想实现了呢?
政采云前端团队
2023/11/16
4810
浅谈软件架构
学习分享(第3期):你所理解的架构是什么?
说到架构,这个概念没有很清晰的范围划分,也没有一个标准的定义,每个人的理解可能都不一样。
杨同学technotes
2023/03/14
6210
学习分享(第3期):你所理解的架构是什么?
白话架构设计为你阐述什么是架构设计,架构设计的三大原则是什么
前面两篇文章给大家介绍了我们实战的CMS系统的数据库设计,源码也已经上传到服务器上了。今天我们就好聊聊架构设计,在开始之前先给大家分享一下这几天我一直在听的《从零开始学架构》里面关于架构设计的定义以及架构设计的三大原则,希望能对大家有所启发。有着这些基础之后,我们再基于此搭建我们的项目框架吧!如果你在阅读的过程中有任何的问题,欢迎大家在留言区进行留言
依乐祝
2018/12/14
2.2K0
架构如何为业务和技术“服务”(1)
前言 为提升架构对于项目,产品的贡献度,更好的服务于业务和技术,本文将探讨架构的现状和规划未来架构的目标。 在讨论架构、业务、技术的问题前,请耐心的阅读完本文有关架构、企业架构、软件架构、架构师的概念性定义,很多时候我们阅读文章都是“秒杀”风格的,只看自己感兴趣的部分,不看长篇大论,只有明确了这些概念定义,才能明白我们现在讨论的主旨。 1,架构定义 1.1,架构 架构是针对某种特定目标系统的具有体系性的、普遍性的问题而提供的通用的解决方案,架构往往是对复杂形态的一种共性的体系抽象。 一个架构是系统的基本
用户1177503
2018/02/26
1.3K0
架构名词分析 | 系统与子系统,模块与组件,框架与架构,这些概念的含义和关系是怎样的?
技术朋友应该看过公司架构师画的各种架构图,五花八门,各种框框,还涉及很多概念,比如系统,子系统,模块,组件,框架等等。他们都有出现在架构师的架构图里,那这些名词都是什么含义呢?它们之间又存在什么样的关系呢?架构的本质又是什么呢?
蜗牛互联网
2021/07/21
7.1K0
技术角 | 架构学习书摘总结(一)概念和基础部分
最近阅读了一本架构方面的入门图书叫《从零开始学架构:照着做,你也能成为架构师》,部分内容比较不错,先做书摘总结,以便加深印象与未来回顾学习。
ZNing
2020/05/13
8110
架构设计方法初探
最近学习了阿里资深技术专家李运华的架构设计教程,颇有收获,总结一下。 1 基本概念和目的 架构设计的目的是为了解决系统复杂度带来的问题,并不是要面面俱到,不需要每个架构都具备高性能、高可用、高扩展等特
Java高级架构
2018/07/20
2770
架构设计方法初探
架构设计的目的是为了解决系统复杂度带来的问题,并不是要面面俱到,不需要每个架构都具备高性能、高可用、高扩展等特点,而是要识别出实际业务实际情况的复杂点,然后有有针对性地解决问题,即:有的放矢,而不是贪大求全。 在实际情况中,不一定每个系统都要做架构设计,需要结合实际情况。有时候最简单的设计开发效率反而是最高的,架构设计毕竟要投入时间和人力,这部分投入如果用来尽早编码,项目也许会更快。
lyb-geek
2018/07/26
2530
架构设计方法初探
架构设计方法初探
1. 基本概念和目的2. 架构设计复杂度来源2.1 高性能2.2 高可用2.3 可扩展性2.4 低成本、安全、规模3. 架构设计三原则3.1 合适原则3.2 简单原则3.3 演化原则4. 架构设计的流程
芋道源码
2018/12/24
3960
架构设计方法初探
程序员架构修炼之道:软件架构基本概念和思维
互联网发展到今天,软件系统早就不是一个万行代码加上一台服务器这样的作坊玩具。BAT的服务器规模已经达到甚至超过百万级。传统企业向互联网的靠拢,势不可挡。
一个会写诗的程序员
2022/09/19
6350
程序员架构修炼之道:软件架构基本概念和思维
架构概念简析及初识架构师
在软件设计中,人们对很多概念存在误解,或者模糊不清,其中一个最为普遍的误解就是:将架构和框架混为一谈。还有对类库和框架的区别是什么很疑惑。本文就这些概念性的问题做一个总结性区分以方便大家理解其中的内涵,也算是架构设计的一篇入门级文章。
進无尽
2018/09/12
5050
架构概念简析及初识架构师
干货:软件架构发展历程
计算机科学和程序设计的飞速发展,使得软件设计应用到从航空航天到日常生活的方方面面。单个人开发一段小程序的做法早就过时,大范围协作的工程化时代随即到来。
技术zhai
2019/02/15
3.9K1
要想做好架构可视化,你必须弄懂这十个关系
在企业数字化转型过程中,做好企业级架构的治理至关重要。而架构的可视化是其中关键的一环。围绕可视化的架构,干系人能够更好地理解和沟通企业中不同组织、系统和技术组件的结构和关系。以便不断对企业的系统架构进行优化。 在 ArcSummit 全球架构师峰会(上海站)2023 上,InfoQ 邀请了 Thoughtworks 首席咨询师钟敬,他以《企业级架构可视化实践》为主题展开了分享,本文为分享整理~期待对您在企业中开展架构治理工作有所启发。
深度学习与Python
2023/08/09
5770
要想做好架构可视化,你必须弄懂这十个关系
关于架构的理解
维基百科的定义是:软件架构是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。
fieldli
2023/03/01
7850
《从零开始学架构》笔记——第一部分:概念和基础
2000名程序员历时一年,花费原子弹1/4的投入,生产100w行代码。最终以失败告终。
Noneplus
2019/09/24
5750
如何设计一个架构
架构不是像平常写代码一样,对就是对,错就是错,它并无对错之分,是一个取舍的过程。当我们从0开始做架构的时候,的确是比较困难。虽然万事开头难,但是一个好的开始相当于成功了一半,会给我们接下去的工作打下结实的基础。
哲洛不闹
2019/06/12
6810
真正的架构设计长啥样?
在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。此君说的架构和彼君理解的架构未必是一回事。因此我们在讨论架构之前,我们先讨论架构的概念定义,概念是人认识这个世界的基础,并用来沟通的手段,如果对架构概念理解不一样,那沟通起来自然不顺畅。
二哥聊运营工具
2022/07/11
3120
真正的架构设计长啥样?
相关推荐
架构设计之一——基础架构
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档