什么是架构?
什么是架构?
在我看来软件架构就是将人员、技术等资源组织起来以解决业务问题,支撑业务增长的一种活动。可能比较抽象,我想我们可以从架构师的一些具体工作任务来理解这句话含义:
组织业务:架构师通过探索和研究业务领域的知识,构建自身看待业务的"世界观"。他会基于这种认识拆分业务生命周期,确立业务边界,构建出了一套解决特定业务问题的领域模型,并且确认模型之间、领域之间的关系与协作方式,完成了对业务领域内的要素的组织工作。
组织技术:为了能在计算机世界中运作人类社会的业务模型,架构师需要选用计算机世界中合适的框架、中间件、编程语言、网络协议等技术工具依据之前设计方案组织起来形成一套软件系统方案,在我看来软件系统就像是一种技术组织,即技术组件、技术手段依据某种逻辑被组织起来了,这些技术工具被确定了职责,有了明确分工,并以实现业务功能为目标集合在了一起。比如RPC框架或消息队列被用于内部系统之间的通信服务就如同信使一般,而数据库则负责记录结果,它更像是一名书记员。
组织人员:为了能够实现利用软件系统解决业务问题的目标,架构师还需要关注软件系统的构建过程,他以实现软件系统为号召,从公司组织中聚集一批软件工程师,并将这些人员按不同工种、不同职责、不同系统进行组织,确定这些人员之间的协作方式,并关注这个组织系统是否运作良好比如沟通是否顺畅、产出是否达到要求、能否按时间完成等。
组织全局,对外输出:架构师的首要目标是解决业务问题,推动业务增长。所以他非常关心软件的运行状况。因为只有在软件系统运行起来后,才能对外提供服务,才能在用户访问的过程中,解决业务问题。架构师需要关注运行过程中产生的数据比如业务成功率,系统运行资源占用数据、用户反馈信息、业务增长情况等,这些信息将会帮助架构师制定下一步架构目标和方向。
所以软件架构不仅仅只是选用什么框架、选用什么技术组件这么简单。它贯穿了对人的组织、对技术的组织、对业务的组织,并将这三种组织以解决业务问题这一目标有机的结合在了一起。
很多面试的候选人在被问及他所开发的系统采用什么架构的问题时,只会罗列出一些技术组件、技术框架等技术要素,这样看来其根本没有理清架构的深层含义。也有一些架构师只专注对底层技术的研究,以为打造一个卓越的系统是非常牛逼的事情,可是他忽略了软件系统的价值是以解决业务问题的能力、支撑业务增长的能力为衡量标准,所以较后生产出了很多对组织,对业务没有帮助的系统。
更多培训课程,学习资讯,课程优惠等学校信息,请进入 乌鲁木齐水磨沟区IT培训乌鲁木齐头屯河区php培训乌鲁木齐米东区java培训 网站详细了解,免费咨询电话:400-998-6158