软件架构师如何工作
Posted yeshenfeng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件架构师如何工作相关的知识,希望对你有一定的参考价值。
由百度百科上可以看到软件架构师的定义:所谓架构师,通俗的说就是设计师或结构设计者,这些定义如果用在建筑学上,则是很容易理解的。在软件工程领域中,软件架构师实际上就是软件项目的总体设计师,是软件组织新产品的开发与集成、新技术体系的构建者。
要理解软件架构师如何工作,在阅读了架构漫谈九篇博客后,不妨先来看看架构是什么。
内容如下:
1.根据要解决的问题,对目标系统的边界进行界定。
2.并对目标系统按某个原则的进行切分。切分的原则,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间。
3.并对这些切分出来的部分,设立沟通机制。
4.根据 3,使得这些部分之间能够进行有机的联系,合并组装成为一个整体,完成目标系统的所有工作。
简单的来说,就是把一个系统高度按照专一性来划分,并且划分出的个体在有效的沟通机制下,能更有效率的完成原先整体的工作。
理解了架构是什么之后,架构师的定位也就比较清楚了,架构漫谈的作者是这样认为的:
一、
软件架构师必须是一个组织的领导人。软件架构师的主要任务并不是从事具体程序的编写,而是从事更高层次的开发架构工作,因此软件架构师需要有良好的组织管理能力以及一定的实权。
二、
要想成为一名合格的软件架构师,首先要明白架构师是去帮助别人解决问题,而不是自己完成工作,并且工作完成与否是别人说的,不是自己,所以身为一名架构师要把完成别人工作当成自己的最大利益,要努力地越来越多的人依赖你 认同你。
三、
架构师要学会发现问题,把别人的问题当成自己问题来思考并且解决问题。同时架构师是一个领导人,他所考虑的不光是解决问题,他更要考虑如何用最小的成本获取最大的利益。架构师是在不断的平衡与调整别人的利益过程中让组织成员都能够积极地为服务。所谓架构师,不光技术要好,还要有良好的管理能力。
定位清楚了,再来总结一下架构师的具体工作:以上帝视角,将目标系统划分成具有专一性的部分个体同时满足利益最大化。
现在可以谈谈软件架构师如何工作的问题了。
作为软件架构师,必须要有高屋建瓴的眼光,行业中有一种很普遍的现象:技术人普遍看不起业务,认为技术更高端,而业务太低端,并且业务往往喜欢给技术挖坑。业务则觉得技术眼光高,但是实际解决不了问题,总是理解有偏差,但是又无可奈何,因为自己不会。
要理解软件架构师如何工作,就必须明白怎么处理业务、技术还有架构的关系。
作者讲到,技术是为了解决业务的问题而产生的,没有了业务,技术就没有了存在的前提;有了更好的技术,那效率更差的技术,就会慢慢的被淘汰,消失,一切都遵从人类的利益诉求--也就是业务。
所以做为软件架构师,其主要角色应该是解决业务问题,至于技术问题应该交给技术人员,自己专注于软件本身的架构,当然在解决业务问题的过程中,软件架构师还要准确识别要采用什么技术来解决问题更加高效方便,这比单纯的解决问题需要的技术水平更高,所以每一位好的软件架构师还一位受到尊敬的资深技术人员。
好的软件架构师也是策略制定和组织协调的高手,称职的顾问与领导者。他们以宏观的角度切入系统架构,一般所谓的设计则是以微观的角度切入。软件工程师和程序员所考虑的是单个构件的功能,而软件架构师必须从全局的角度理解软件项目的业务目的和期望结果,能够定义不同的构件是如何组装在一起的。软件架构师规划系统的角度主要是从自上而下的方式着手,而软件设计师则多半从自下而上的方式着手。这种从宏观/微观的角度进行划分,在其他学科也常看见,如宏观经济学与微观经济学等。这种宏观角度的本质,就是软件架构师专业领域工作与其他软件开发人员最根本的区别。
所以,软件架构师通过规划与系统架构层次相关的事务,评估可能的风险与成本,并有效运用有限的人力、物力资源满足系统层次的需求,在必要的情况下,还可就特定领域或课题,为开发人员提供定制指导。
以上是关于软件架构师如何工作的主要内容,如果未能解决你的问题,请参考以下文章