什么是软件架构,什么样的架构才是好架构?

小微 科技什么是软件架构,什么样的架构才是好架构?已关闭评论88字数 2201阅读模式
摘要什么是架构?我们可能经常会听到有人说架构一词,但是到底什么是架构,却很少有人说的清楚。网络上有人解释软件架构是一个系统的草图,软件架构是构建计算机软件实践的基础,是一系列相关的抽象...

什么是架构?

咱们可能时常会听到有人说架构一词,然而到底什么是架构,却很少有人说的清楚。文章源自微观生活(93wg.com)微观生活-https://93wg.com/2216.html

网络上有人解释软件架构是一个系统的草图,软件架构是构建计算机软件实践的基础,是一系列相干的抽象模式。文章源自微观生活(93wg.com)微观生活-https://93wg.com/2216.html

这些说法不能说不对,然而解释的还不够清楚,由于不懂的人还是不懂,懂的人一眼就能看懂。文章源自微观生活(93wg.com)微观生活-https://93wg.com/2216.html

不少人以为计算机里面的架构,就是几台服务器放这里用不同的软件连接起来,用各种的框架开发扩大等等。文章源自微观生活(93wg.com)微观生活-https://93wg.com/2216.html

其实架构无处不在,它不只在计算机中存在,它在咱们生活之中也很常见,比如咱们着手解决一些问题,首先要规划一套方案,一套流程,这些方案以及流程其实就是一种架构。文章源自微观生活(93wg.com)微观生活-https://93wg.com/2216.html

在软件系统中,架构是无比重要的一部份,它统领各个模块的开发以及合作,项目从研发到上线运营,咱们要在不同的方案当选择适合的架构,比如,咱们服务器使用什么操作系统?使用什么语言开发?数据怎么获取以及存储?客户端使用什么框架开发?文章源自微观生活(93wg.com)微观生活-https://93wg.com/2216.html

这些问题的方案组合在一块儿就是一种软件开发架构,项目组的每一个子系统都要有自己的方向,把子系统的决策方向合起来再加入它们之间的关联调用就形成了一个完全的架构,每一个系统、组件、模块都是软件系统架构的一部份。文章源自微观生活(93wg.com)微观生活-https://93wg.com/2216.html

一个好的架构师,不但需要对每一个功能模块的方案进行深思熟虑,还要结合其他系统和总体系统的需求方向进行设计。文章源自微观生活(93wg.com)微观生活-https://93wg.com/2216.html

可以把软件架构理解成一栋房子的框架,与现实生活中的房子有异曲同工的地方,这个框架有不少个大大小小的房间,每一个房间可以放各种类型的东西。框架可以做的很大,也能够做的很小,关键看你的需求。文章源自微观生活(93wg.com)微观生活-https://93wg.com/2216.html

框架的大小通常为依据客户的需求由设计师设计的,比如,需要放置的空间大,且需要承载的东西多,那就需要设计大的房间,让它容纳更多的东西。文章源自微观生活(93wg.com)微观生活-https://93wg.com/2216.html

框架设计好后,拿出去给其别人使用,如果呈现异样情况就倒塌了,那它就不算一个好的架子,架子的好坏可以依据下列几方面判断:

一、承载力

比如一栋房子,能承载多少人能做多少个房间,是客户比较关注的问题。从软件架构方面来讲,一个架构能承载多少个业务系统或功能系统,能承载多少代码行数,在到达规定的代码量时是不是能有效正常的运行,是程序员以及客户都关注的问题。

对于服务器来讲,服务器的架构能承载多少人同时走访,能承载的日均走访量是多少,这就是它承载力的体现。

对于客户端来讲,它能显示多少个UI功能,可以同时渲染多少个模型,分辨率可以到达多少,则是它的承载力体现。

承载力是重要因素,然而也不是独一的因素,综合的评定一个架构的好坏是关键,就以及木桶效应那样,抉择产品好坏的关键是那根最短的木板。

二、扩大性

如果一栋房子只能住人,不能放其他的东西,那么这个房子的设计用处就太单一了,大的家具不能放、长的家电不能放、特殊的水电不能装,那这个房子确定没人买。

架构就是要适应不同类型的需求,可添加不同类型的系统、不同功能的子系统,是无比有必要的。

软件架构也是这样,要具备更多的功能就要具备更高的扩大性。

可扩大性的关键就在于,在添加新系统新功能的时候,会不会影响其他系统,添加这个新系统的代价大不大,会不会致使系统总体机能问题。

如果添加一个新系统,致使其他系统使用有问题,那么这个架构的可扩大性就很差。

三、易用性

易用性其实很简单,就是你这个产品设计的好不好用,是否利便使用,这个多是不少架构师会疏忽的一点,由于大部份架构师只是一个程序员。

程序员很少会从客户的角度去想问题,所以就会致使设计出来的东西不相符客户的使用习惯。

易用性也抉择了软件的总体开发效力,由于一个好的架构,会让团队成员容易上手,子系统容易对接,开发效力高,各模块以及各系统的编写只需要关注系统的设计以及编码工作,其他模块通讯方面的事情,架构可以提供很好的兼容。

四、伸缩性

什么是伸缩性?其实就是你设计的这个方案或系统是不是可以依据需求适配不同数量的功能或子系统,比如一栋房子因为住的人比较多,它的框架是不是可以分割成多个房间,当人数变少的时候,能不能依据依据需求把多个房间合并成一个大单间?

这就是可伸缩性,在咱们设计的软件系统中,架构的可伸缩性抉择了架构的可适配性,比如,当这个系统使用人数较少的时候,是不是支撑减少一些服务器来支持服务真个运行,当系统使用的人数较多时,走访量较大时是不是支撑添加服务器来增强系统的支撑。

五、容错性

房子也会有破坏的时候,一样也会呈现某个处所做工不好,致使使用的时候呈现各种破损,咱们保证不了完整没有问题,然而需要保证它不会由于一点小问题,呈现倒塌的情况。

软件架构也是这样,如果软件中某个系统呈现了一点小BUG致使整个系统使用不了,那这个架构容错性就很差,软件中的一些BUG很常见,咱们没法防止,然而咱们应尽可能保证这个BUG的影响规模最小。

同时,若呈现系统没法使用的情况,应当有备份方案,比如自动启动或者自动保留数据等功能,也应当能够闪开发人员及时知道问题的产生,和问题所在的位置并记录过错信息。

在架构设计中,以上五项基本能力缺一不可,某项能力的凸起其实不能带动其他项,也不能抉择整个系统的好坏。

然而如果某一项能力比较弱,跟着时间的推移,问题会愈来愈大,乃至系统崩溃。就像木桶原理那样,一个木桶的容量不是取决于最长的那根木板,而是取决于最短的那根。

咱们需要一个牢靠的、多样化的、好用的、可伸缩的、容错性强的房子,这也是咱们设计架构所寻求的目标。

以上就是微观生活(93wg.com)关于“什么是软件架构,什么样的架构才是好架构?”的详细内容,希望对大家有所帮助!

继续阅读
 
小微
  • 版权声明: 本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们(管理员邮箱:81118366@qq.com),情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!
  • 转载请务必保留本文链接:https://93wg.com/2216.html