Skip to content

什么是架构师

什么是架构?

在我看来软件架构就是将人员、技术等资源组织起来以解决业务问题,支撑业务 增长的一种活动。可能比较抽象,我想我们可以从架构师的一些具体工作任务来理解 这句话含义:

组织业务:架构师通过探索和研究业务领域的知识,构建自身看待业务的”世界 观”。他会基于这种认识拆分业务生命周期,确立业务边界,构建出了一套解决特定 业务问题的领域模型,并且确认模型之间、领域之间的关系与协作方式,完成了对业 务领域内的要素的组织工作。

组织技术:为了能在计算机世界中运作人类社会的业务模型,架构师需要选用计 算机世界中合适的框架、中间件、编程语言、网络协议等技术工具依据之前设计方 案组织起来形成一套软件系统方案,在我看来软件系统就像是一种技术组织,即技 术组件、技术手段依据某种逻辑被组织起来了,这些技术工具被确定了职责,有了明 确分工,并以实现业务功能为目标集合在了一起。比如 RPC 框架或消息队列被用 于内部系统之间的通信服务就如同信使一般,而数据库则负责记录结果,它更像是 一名书记员。

组织人员:为了能够实现利用软件系统解决业务问题的目标,架构师还需要关注 软件系统的构建过程,他以实现软件系统为号召,从公司组织中聚集一批软件工程 师,并将这些人员按不同工种、不同职责、不同系统进行组织,确定这些人员之间的 协作方式,并关注这个组织系统是否运作良好比如沟通是否顺畅、产出是否达到要 求、能否按时间完成等。

组织全局,对外输出:架构师的首要目标是解决业务问题,推动业务增长。所以 他非常关心软件的运行状况。因为只有在软件系统运行起来后,才能对外提供服务, 才能在用户访问的过程中,解决业务问题。架构师需要关注运行过程中产生的数据比 如业务成功率,系统运行资源占用数据、用户反馈信息、业务增长情况等,这些信息 将会帮助架构师制定下一步架构目标和方向。
  所以软件架构不仅仅只是选用什么框架、选用什么技术组件这么简单。它贯穿了 对人的组织、对技术的组织、对业务的组织,并将这三种组织以解决业务问题这一目 标有机的结合在了一起。
  很多面试的候选人在被问及他所开发的系统采用什么架构的问题时,只会罗列出 一些技术组件、技术框架等技术要素,这样看来其根本没有理清架构的深层含义。也 有一些架构师只专注对底层技术的研究,以为打造一个卓越的系统是非常牛逼的事 情,可是他忽略了软件系统的价值是以解决业务问题的能力、支撑业务增长的能力为 衡量标准,所以最后生产出了很多对组织,对业务没有帮助的系统。

前端架构师的核心工作是降低需求增长带来的技术实现的复杂性 简称 降本增效

因为运营页面需求的增长, 我们打造运营页面搭建系统来降低技术实现的复杂性

因为我们要在不同端实现相同的需求的增长, 我们开发各种通过 DSL 实现一次编写多端生成的系统来降低实现需求的复杂性

因为内部系统重构的需求的增长, 我们基于 Next.js 这样方案去打造中后台搭建系统, 降低实现这一类需求的复杂性

能够将业务转换成技术

必须具备超强的落地能力,能够将用户的业务需求落地到技术方案,帮助研发团队开发出用户愿意使用的产品和功能。通过对业务的理解,梳理业务流程,发掘用户痛点,然后落地到技术上,有针对性的指定技术方案。

能合理利用技术支撑业务

具备前瞻思维和战略思维

所谓架构,我理解是综合考虑目标、业界和团队,作为合理的方案选择,既能支撑业务的发展,又能令团队满意。

Welcome to the site