架构师成长之路:到底什么是架构设计?该如何理解架构设计?

作者&投稿:池支 (若有异议请与网页底部的电邮联系)
~

架构设计是一个大家耳熟能详的词,基本都烂大街了。

可是,到底什么是架构设计呢?估计很多人就回答不上来了。

下面就来详细聊聊什么是架构设计,以及对架构设计的一些基本认识。

软件架构设计指的是:对一个软件系统进行的架构定义、文档编写、维护和改进、并验证实现的一系列活动,架构设计的产物就是一个系统的架构。

架构设计实际上是一个过程,围绕着软件系统,对它的架构,进行定义、文档编写、维护和改进、并验证实现等,把这一系列活动组合起来,就是我们所说的架构设计。

架构设计的产物,也就是结果,就是架构,这也是架构和架构设计的关系。

架构设计是一门科学,这个已经是业界共识。但是作为一门科学来讲,它一定要有它自己的基础理论,基础方法,也会有一些实现的方法论。

架构设计作为一门科学来说,还很不成熟。目前架构设计的基础理论还不是很完善,方法论上,更是百花齐放,大家都还处于一个探索的阶段。

从科学上来讲,架构设计主要关注架构设计过程当中的:技术、流程、资源、方法;以及如何去完善并改进架构。

刚讲到架构设计这门科学还很不成熟,再加上技术领域更新很快,新技术、新思想、新方法 层出不穷。

我们总会面对很多新兴的、没有先例的系统,可能会应用新的框架、新的技术、新的解决方案来实现系统。

因此,做架构设计的时候,是需要一定的创造力的。当然,艺术细胞缺乏的人员也不用太担心,架构设计上还是有很多是有章可循的,多半是在已有的架构体系上去做一些微调,微创新,并不是完全从零开始。

架构设计不是一蹴而就的,通常也是由粗到精,刚开始,可能只有一个粗略的架构设计,然后不断迭代和演化,逐步推进,去完善和细化,这样的过程。

这个可能有些人不太理解,认为说,软功过程里面,不是有专门的概要设计、详细设计的时间吗?架构设计不就是在这些设计阶段去完成的吗?做完设计了,把文档发下去,不就没事了吗?

有些公司也是这么干的,实际上这是有问题的。

架构设计会跨越软工的完整流程,对于一些大型的或者是重要的项目,可能立项期间,架构师就要参与,做一些粗略的架构规划,有两个基本的原因:

1:能不能做得了这件事
2:按照粗略的架构规划做下去,大致的成本会有多大

立项的时候,就要去考虑你的成本,风险和投资收益。

也就是说,立项的时候,架构师可能就需要参与,那就更不用说需求阶段、设计阶段了,架构师是肯定要参与的,前面讲需求分析的时候已经讲过了,这里就不多啰嗦。

到了编码阶段,有些人可能认为架构师是不参与的,这是不对的。架构师需要参与,只是参与的少一些,主要是一些重点、难点的地方,或者是公共基础功能,由架构师来实现。

另外在编码阶段,架构师还有一个重要的任务,就是确保开发人员按照架构设计去实现,不要乱做。这就需要两个基本的方式,一个是架构师要把架构设计的成果,跟开发人员讲解清楚,并不断沟通;另外一个就是要不断检查,Review,以确保架构设计的落地实现不出大的偏差。

后面的测试、部署、运维等阶段,架构师要做一些技术咨询,或者是技术指导的工作。架构设计里面,本来就包含部署架构的设计,因此,架构师也会参与这些阶段,只是参与的少一些。

总之,架构设计需要关注所有利益相关者的要求,参与系统设计实现的所有人员,也都是系统的利益相关者,自然而然的,架构设计就需要贯穿软工的整个流程了。

一个系统,要关注的方方面面是很多的,利益相关者也很多,大家关注点各有不同。

这就意味着,在做架构设计的时候,需要不断去做决策,在众多关注点中去寻求平衡,所以有人说,做架构设计,就是一种玩平衡的艺术。

比如:从技术上讲,A+B的方式是性能最高的;但是从成本上来看,A+C是最合适的。可能最后综合权衡后,B+C是各方都能接受的方案。

这种需要考虑的平衡很多,比如:技术和成本的平衡;方案适用性年限的平衡,是满足1-3年就够了,还是要考虑8-10年;技术方案和当前开发人员技能的平衡;性能和成本的平衡等等,非常多。

架构设计是一个过程,需要在这个过程中,不断去考虑各利益相关者的要求,并不断折中平衡,因此架构设计的产物,也就是架构,自然就是各方利益相关者的共识了。

要做出好的架构设计,经验是不可或缺的,不会每次都是从零开始。

比如以前做过类似的系统;或者是学习到的一些好的架构模式,设计模式,一些现成的组件;或者是一些开源的框架等等的,这些我们都可以看成是可重用的资源。

我们做架构设计的时候,需要不断去积累这样子的可重用资源,形成自己的工具箱。这样当我们在做一个系统的架构设计的时候,就有了很多备用的工具或手段。

有了这些经验和资源的积累,会使得新系统的架构设计变得更容易。




架构师成长之路:到底什么是架构设计?该如何理解架构设计?
软件架构设计指的是:对一个软件系统进行的架构定义、文档编写、维护和改进、并验证实现的一系列活动,架构设计的产物就是一个系统的架构。架构设计实际上是一个过程,围绕着软件系统,对它的架构,进行定义、文档编写、维护和改进、并验证实现等,把这一系列活动组合起来,就是我们所说的架构设计。架构设...

开课吧-百万架构师成长之路怎么样 值得学吗?
我学了,课程很不错!而且花了不到一折的价格!我是在共众号< 阿宁宝库> 领取的,真的是白菜价,省了不少!,你也可以关注共众号< 阿宁宝库>会给你惊喜的...还有不明白去问百度。

架构师成长之路:如何做资源评估?
所谓资源估算是指:对软件系统上线运行时,为了完成预定的目标,而需要的服务器资源、存储资源、CPU、内存、网络带宽等资源进行预估。一般要预估正常使用情况、高峰使用情况、未来发展使用的情况等。通常需要估算1-3年的情况,要求高一些的会预估到5年的情况。资源估算本身就是部署架构设计过程中重要的一环...

大师的结构人生
傅学怡,深圳大学建筑设计院总工程师,CCDI悉地国际董事总工程师,其从清华大学毕业后,经历了从技术员到高级工程师的成长之路,参与设计了包括万科总部大楼、济南奥林匹克中心、平安大厦、北京水立方在内的多个标志性建筑,展现了其在结构设计领域的远见和创新精神。这四位大师的结构设计生涯和作品,不仅体现...

有哪些针对特定编程语言或技术栈的架构师经典书籍?
针对特定编程语言或技术栈的架构师经典书籍有很多,以下是一些值得推荐的书籍:1. 《Java架构师成长之路》:这本书主要介绍了Java技术栈的架构设计、性能优化、微服务架构等方面的知识,适合有一定Java开发经验的程序员。2. 《Python高性能编程》:这本书主要介绍了Python的性能优化技巧和最佳实践,包括多...

浅谈教师的专业化成长之路
2020年12月13日,我有幸参加了由教师发展中心牵头,育才小学组织的省市名师进校园活动。本次活动分两部分,上午是育才小学张海云老师的课例《平移的图形》和邢台市逸夫小学杨志宇老师的课例《可能性》。杨老师对课例进行点评,并分享了他的成长历程。下午是杨老师的专题讲座《 教师的专业成长之路》。杨...

成长之路作文
成长之路作文1 按妈妈的话说,我是一个摔跤摔大的孩子,起初我听了还白妈妈一眼,认为妈妈说的有些过了,后来越长大,我越觉得妈妈说的在理,我不就是摔跤摔大的孩子吗?至今还好好活着,全因为我坚强! 石头给我的考验,我都当做了给我的机会,牢牢抓紧。摔跤摔大的孩子,成长路上多的是石头,小石子、大砖块,也有...

结构工程师具体是做什么的?
结构工程师是指土木工程专业毕业从事设计、施工、工程管理类的专业人才。通俗的来讲,一个楼要盖起来需要有人验算柱子和梁里面需要配多少钢筋,需要做多大的截面,需要抵挡多大的地震力而不会破坏是结构工程师需要考虑的。而施工单位的结构工程师要求能看懂图纸,知道如何能将图纸里面的楼盖起来,如何实施。...

做剪辑师到底有多坑?
做剪辑师的艰辛与成长之路许多人羡慕剪辑师的工作,但背后的辛酸可能鲜为人知。我原本的目标是金融领域,却因机缘巧合成为了一名剪辑师。起初,我对剪辑一无所知,全凭书籍自学,每个学期只在期中和期末全力以赴。工具上,虽然专业但仅限于Pr和FCPX,建议避免使用过于简化工具,以免养成依赖。剪辑的核心...

我的Scrum教学和教练成长之路
他们伴随着我的Scrum教学和教练成长之路。渴望, 自律,身心投入(dedication) 是我们手里的三件法宝。有了刻意的专注和训练,就有可能进入“心流”体验的能力(mastery),目标可能就会浮现,并渐渐清晰和具体化,使命(purpose)会驱动你努力。目标是可以度量的,我们越专注就会越专精。 我认为:这三个内因适合包括我在内的...

盘山县19389529266: 什么是系统架构设计? -
蒲乳依苏: 架构师的职责主要有如下4条: 1、确认需求 在项目开发过程中,架构师是在需求规格说明书完成后介入的,需求规格说明书必须得到架构师的认可.架构师需要和分析人员反复交流,以保证自己完整并准确地理解用户需求. 2、系统分解 依据...

盘山县19389529266: 软件开发的架构设计指的是什么? -
蒲乳依苏: 软件架构(software architecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计. 软件架构是一个系统的草图.软件架构描述的对象是直接构成系 统的抽象组件.各个组件之间的连接则明确和相对细致地描述组件之间的通...

盘山县19389529266: 架构师必看:谈软件架构师如何做好架构设计( -
蒲乳依苏: 此文转载至:帐前卒 1 前言 软件架构设计是软件设计的一部分,相当于总体设计,是软件设计过程中一个决定性的环节,架构确定了,软件基本也就定型了.而软件架构师则是软件项目的领军人物,是软件设计过程中最具挑战性的角色,从技...

盘山县19389529266: 谁能准确的告诉我架构师是什么? -
蒲乳依苏: 系统架构师是一个既需要掌控整体又需要洞悉局部瓶颈并依据具体的业务场景给出解决方案的团队领导型人物.一个架构师得需要足够的想像力,能把各种目标需求进行不同维度的扩展,为目标客户提供更为全面的需求清单. 架构师的分类: ...

盘山县19389529266: 架构师是主要做什么工作的,需要有哪些方面的知识 -
蒲乳依苏: 架构师首先必须具有丰富的开发经验,是个技术主管.因为他必须清楚什么是可以实现的,实现的方式有哪些,相应的难度怎么样,实现出来的系统面对需求变化的适应性等一系列指标.另外,需要对面向过程、面向对象、面向服务等设计理念...

盘山县19389529266: 如何成为一个系统架构设计师?
蒲乳依苏: 首先架构师应该有个深厚的编码基础,然后应该熟悉设计模式,用最有效的代码和软件结构实现软件需求.有经验的程序员才会成为优秀的架构师.同时还要掌握把需求分块的能力,培养抽像事物的能力,掌握数据库设计的能力.你也可以通过参加希赛系统架构设计师考试,来具体了解系统架构设计师.

盘山县19389529266: 系统架构师的工作职责 -
蒲乳依苏: 系统架构师的职责就是设计一个公司的基础架构,并提供关于怎样建立 和维护系统的指导方针.具体来讲,系统架构师的职责主要体现在以 下几方面:1 负责公司系统的架构设计、研发工作;2 承担从业务向技术转换的桥梁作用;3 协助项目经...

盘山县19389529266: 如何成为架构师 -
蒲乳依苏: 【原创回答】我本人是一名软件架构师,这个问题非常大,不太好回答.我总结一下,软件架构师的能力大概分为三个方面:1.技术,这个应该没悬念,如果没有过硬的开发技术,就不要期望做架构师了;设计模式,系统模式,架构模型,系统理论,甚至编程语言,算法,操作系统,网络,数据库,都需要有扎实的掌握. 2.是业务知识,也即领域知识.软件架构师实际上是把业务需求落实成开发蓝图的总设计师,如果你对业务一窍不通,空有一身技术也只能望业务兴叹.3.就是沟通表达的能力,架构师需要推进自己的架构设计理念给开发团队,所以也需要这方面的能力,当然最重要的还是前两部分的能力.

盘山县19389529266: 架构师的职责都有哪些 -
蒲乳依苏: 架构师就是设计架构 一个优秀的架构师 会想到未来2年内变化和需求 把未来的基础打好 便于迭代 甚至连每一个重要字段的名字 方法名字都会帮你规范化

盘山县19389529266: 如何成长为一名合格的架构师 -
蒲乳依苏: 成为一个软件架构师,是每个上进的程序员的理想,可是程序员日常工作中所用到的知识技能,是无法顺利成长为软件架构师的.因为一个设计者和一个建造者,他们的知识体系和思维方式,是截然不同的. 不过有相应的培训机构,像青鸟、领宏教育等,青鸟的课程比较基础,领宏的课程比较高端,看个人基础再做选择吧

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网