各位网友们好,相信很多人对架构设计都不是特别的了解,因此呢,今天就来为大家分享下关于架构设计以及架构设计六大原则的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
本文目录一览
1、架构师成长之路:到底什么是架构设计?该如何理解架构设计?
2、什么是系统架构设计?
架构师成长之路:到底什么是架构设计?该如何理解架构设计?
架构设计是一个大家耳熟能详的词,基本都烂大街了。
可是,到底什么是架构设计呢?估计很多人就回答不上来了。
下面就来详细聊聊什么是架构设计,以及对架构设计的一些基本认识。
软件架构设计指的是:对一个软件系统进行的架构定义、文档编写、维护和改进、并验证实现的一系列活动,架构设计的产物就是一个系统的架构。
架构设计实际上是一个过程,围绕着软件系统,对它的架构,进行定义、文档编写、维护和改进、并验证实现等,把这一系列活动组合起来,就是我们所说的架构设计。
架构设计的产物,也就是结果,就是架构,这也是架构和架构设计的关系。
架构设计是一门科学,这个已经是业界共识。但是作为一门科学来讲,它一定要有它自己的基础理论,基础方法,也会有一些实现的方 。
架构设计作为一门科学来说,还很不成熟。目前架构设计的基础理论还不是很完善,方 上,更是百花齐放,大家都还处于一个探索的阶段。
从科学上来讲,架构设计主要关注架构设计过程当中的:技术、流程、资源、方法;以及如何去完善并改进架构。
刚讲到架构设计这门科学还很不成熟,再加上技术领域更新很快,新技术、新思想、新方法 层出不穷。
我们总会面对很多新兴的、没有先例的系统,可能会应用新的框架、新的技术、新的解决方案来实现系统。
因此,做架构设计的时候,是需要一定的创造力的。当然,艺术细胞缺乏的人员也不用太担心,架构设计上还是有很多是有章可循的,多半是在已有的架构体系上去做一些微调,微创新,并不是完全从零开始。
架构设计不是一蹴而就的,通常也是由粗到精,刚开始,可能只有一个粗略的架构设计,然后不断迭代和演化,逐步推进,去完善和细化,这样的过程。
这个可能有些人不太理解,认为说,软功过程里面,不是有专门的概要设计、详细设计的时间吗?架构设计不就是在这些设计阶段去完成的吗?做完设计了,把文档发下去,不就没事了吗?
有些公司也是这么干的,实际上这是有问题的。
架构设计会跨越软工的完整流程,对于一些大型的或者是重要的项目,可能立项期间,架构师就要参与,做一些粗略的架构规划,有两个基本的原因:
1:能不能做得了这件事 2:按照粗略的架构规划做下去,大致的成本会有多大
立项的时候,就要去考虑你的成本,风险和投资收益。
也就是说,立项的时候,架构师可能就需要参与,那就更不用说需求阶段、设计阶段了,架构师是肯定要参与的,前面讲需求分析的时候已经讲过了,这里就不多啰嗦。
到了编码阶段,有些人可能认为架构师是不参与的,这是不对的。架构师需要参与,只是参与的少一些,主要是一些重点、难点的地方,或者是公共基础功能,由架构师来实现。
另外在编码阶段,架构师还有一个重要的任务,就是确保开发人员按照架构设计去实现,不要乱做。这就需要两个基本的方式,一个是架构师要把架构设计的成果,跟开发人员讲解清楚,并不断沟通;另外一个就是要不断检查,Review,以确保架构设计的落地实现不出大的偏差。
后面的测试、部署、运维等阶段,架构师要做一些技术咨询,或者是技术指导的工作。架构设计里面,本来就包含部署架构的设计,因此,架构师也会参与这些阶段,只是参与的少一些。
总之,架构设计需要关注所有利益相关者的要求,参与系统设计实现的所有人员,也都是系统的利益相关者,自然而然的,架构设计就需要贯穿软工的整个流程了。
一个系统,要关注的方方面面是很多的,利益相关者也很多,大家关注点各有不同。
这就意味着,在做架构设计的时候,需要不断去做决策,在众多关注点中去寻求平衡,所以有人说,做架构设计,就是一种玩平衡的艺术。
比如:从技术上讲,A+B的方式是性能最高的;但是从成本上来看,A+C是最合适的。可能最后综合权衡后,B+C是各方都能接受的方案。
这种需要考虑的平衡很多,比如:技术和成本的平衡;方案适用性年限的平衡,是满足1-3年就够了,还是要考虑8-10年;技术方案和当前开发人员技能的平衡;性能和成本的平衡等等,非常多。
架构设计是一个过程,需要在这个过程中,不断去考虑各利益相关者的要求,并不断折中平衡,因此架构设计的产物,也就是架构,自然就是各方利益相关者的共识了。
要做出好的架构设计,经验是不可或缺的,不会每次都是从零开始。
比如以前做过类似的系统;或者是学习到的一些好的架构模式,设计模式,一些现成的组件;或者是一些开源的框架等等的,这些我们都可以看成是可重用的资源。
我们做架构设计的时候,需要不断去积累这样子的可重用资源,形成自己的工具箱。这样当我们在做一个系统的架构设计的时候,就有了很多备用的工具或手段。
有了这些经验和资源的积累,会使得新系统的架构设计变得更容易。
什么是系统架构设计?
定义:
一个软件随着功能越来越多,整个软件系统逐渐碎片化,如果不采取有效措施,软件系统就会越来越无序,最终无法维护和扩展。
所以说软件在一段时间的生长后,就需要及时干预,避免越来越无序,架构的本质就是对软件系统进行有序化重构,使软件系统不断进化。
扩展资料:
系统构架是对已确定的需求的技术实现构架、作好规划,运用成套、完整的工具,在规划的步骤下去完成任务。
抽象来说,它是计算机系统结构,或称计算机体系结构,是一个系统在其所处环境中最高层次的概念;它确定一台计算机硬件和软件之间的衔接。
具体地说计算机体系结构指的是计算机系统设计的观念与架构,描述计算机在实做的设计原则。
它确定一个计算机设计的部件功能 ,部件间接口 并且计算机体系结构着重于“负责了计算机架构的中心功能:计算”的中央处理器内部的运行动作与存储器的访问。
参考资料:百度百科:系统构架