阿里p8架构师谈:到底什么是架构师


阿里p8架构师谈:到底什么是架构师

文章插图
 
  • 哲学家常思考的问题:" 我是谁?"" 我从哪里来?"" 要到哪里去?不只是哲学家,我想每个人都有自己对这三个问题的认知 。
  • 如果我们要成为架构师,我们自己要面临的三大问题:
  • 找准自己定位:我是谁?在哪里?
  • 怎样做好架构师:我要做什么?
  • 如何搭建架构师知识体系:我该怎么做?
  • 这里面就是做事方法论:目标(我要做什么),方法(计划)(我该怎么做), 执行/行动
  • 找准自己定位:我是谁?在哪里?
  • 怎样做好架构师:我要做什么?
  • 如何搭建架构师知识体系:我该怎么做?
  • 这里面就是做事方法论:目标(我要做什么),方法(计划)(我该怎么做), 执行/行动
一、架构师定义什么是架构师,这个聊架构话题时永恒的问题 。每个公司对架构师的定位也有所不同,因为不同公司所处的阶段,业务模式,应用场景也都不一样 。对架构的要求也不一样 。
在初创公司的野蛮生长阶段:业务场景和需求边界很难把握,有时候根本不需要架构师,产品需要快速迭代和变现,需求频繁更新,这个时候需要的是快速实现 。当然如果公司成长以后,这个阶段就是欠下很多技术债,埋下很多坑,如果人员流动很频繁,后期系统维护成本是非常巨大的 。
在公司成长稳定阶段:业务模式和应用场景边界都已经比较清晰,这个时候最需要架构师需要架构师能对线上业务进行模块划分,系统拆分重构,并做好相关高可用的措施,以保证系统的稳定,安全、高效地运行 。
不同的行业,对架构师的要求也不同,比如电商业务和AI领域,从架构到业务场景,完全是两个物种 。
在百度百科里面这么定义: 系统架构师是一个既需要掌控整体又需要洞悉局部瓶颈并依据具体的业务场景给出解决方案的团队领导任务 。具体来说是一个确认和评估系统需求,给出开发规范,搭建系统实现的核心构架,并澄清技术细节、扫清主要难点的技术人员 。主要着眼于系统的“技术实现” 。因此架构师应该是特定的开发平台、语言、工具的大师,对常见应用场景能马上给出最恰当的解决方案,同时要对所属的开发团队有足够的了解,能够评估自己的团队实现特定的功能需求需要的代价 。系统架构师负责设计系统整体架构,从需求到设计的每个细节都要考虑到,把握整个项目,使设计的项目尽量效率高,开发容易,维护方便,升级简单等 。
架构师实际上就是软件的总体设计师 。打个通俗的比方比如某个工程总设计师,类似三峡工程的总设计师 。
架构师的形成一定是在实践中积累起来的,而并非上了几次培训班,读了几本书就可以成功的,架构师是在工程实践中培养出来的!
二、架构师作用/职责架构师在整个软件系统开发过程中都起着重要的作用,并随着开发进程的推进而其职责或关注点不断地变化 。
1、按软件开发过程维度来说:
需求阶段:软件架构师主要负责理解和管理非功能性系统需求,比如软件的可维护性、性能、复用性、可靠性、有效性和 可测试性等等,此外,架构师还要经常审查和客户及市场人员所提出的需求,确认开发 团队所提出的设计;
架构设计阶段:架构师负责对整个系统架构设计,制定开发规范、开发计划,指导整个开发团队完成这个计划 。
开发阶段:架构师则成为详细设计者和代码编写者的顾问,并且经常性地要举行一些技术研讨会、技术培训班等;
测试和交付阶段:协调做好相关测试和部署 。
维护阶段:软件架构师就开始为下一版本的产品是否应该增加新的功能模块进行决策 。
2、按职能维度:
1)确认需求
架构师要懂得用户需求,理解用户真正想要什么,这使得架构师必须要和分析人员不断沟通,反复确认需求规格说明书,以此来保证他精准清楚用户需求 。
项目经理刘先生在受访时说:「架构师会与很多人沟通,例如开发人员,例如我们项目经理,有时甚至是用户本身 。架构设计的目的很明确,目的是什么呢?挖掘用户需求 。」
2) 系统分解
在架构师认可需求规格说明书后,架构师已明确用户需求是是什么,这时候便看架构师的分解能力了 。
系统分解包括纵向分解和横向分解:
横向分解是对系统分解成不同的逻辑层,确定层与层之间的关系 。是指基于技术架构层次进行的人员角色分工和任务分解 。常见的分层:


推荐阅读