技术架构是个很大的话题,提到未来的规划,很多程序员都把架构师当作自己终极目标。架构师是一个即要掌控整体又需要洞察局部瓶颈并依据具体的业务场景给出解决方案的团队领导型人物。架构师不是一个人,他需要建立高效的体系,带领团队去攻城略地,在规定的时间内完成项目。每个人每个团队对它的理解不一样。今天主要谈谈关于架构我们经常碰到的一些问题。
一、概念
架构师全称系统架构师(System Architect 简称SA),依据需求负责技术选型、设计系统的主体框架结构,并负责搭建实施人。(来自维基百科)
二、对架构师主要职责
根据所在公司这几年的经历和认识,梳理了以下关于架构师的一些任职资格要求,描述不见得正确。
确认需求
所有的技术都是为业务服务的。架构师必须也是业务经验丰富,熟悉业务需求,才能根据业务场景及技术要求去规划技术方案,否则脱离了业务场景,最终很有可能发现不是过渡设计,就是脱离实际。
技术分解
理解了用户需求后,接下来很重要的一个环节就是对架构的分层。是否前后端分离,读写分离,业务拆分,负载均衡,多层架构,数据缓存等等。关键的是要能根据客户场景设计对应的方案,而不是照搬照抄。
进行技术选型
vue 还是react,纯原生还是混合模式,接下来架构师的职责就是技术选型。技术选型是决定一个公司研发生产效率的基础工作,严格来说技术没有牛逼之分,只有适不适合。进行技术选型要要详细了解不同技术之间的差距,这里的差距包括适用场景、环境要求、上手成本、性能承受、开发者本身对技术的升级和维护能力以外,还要考虑公司现有人员技术栈以及未来中长期的技术发展定位等诸多因素。但更重要个人觉得还是要看团队中是否有人能驾驭得了才是最主要的,一旦有BUG或者需要重构时是否能响应得了。
制定开发规范
这个就不多说了。
三、架构师要掌握什么技能
精通某种技术
架构师需要能基于业务,对系统全流程进行设计、拆解和实施。常见的技术分为前端和后端,只是了解前端或者后端显然无法打通全流程,也就无法站在全盘的角度来考虑问题。因此,架构师往往是全栈工程师。而且后端的能力比前端更重要,毕竟现在前端有太多的框架可直接复用,而且主要也以展示为主,相对比较简单。复杂的往往在用户看不见的地方,谷歌搜索、淘宝对用户可见的就是一个搜索框为主,但后端却需要一系列服务和硬件来做支撑。
设计的能力
架构师必须有化繁为简的能力。能根据业务需求,梳理业务流程,并转为化技术设计成果的能力
虽然现在很多云服务资源也提供了后端无差异化的功能,比如API网关,服务治理,消息推送等,今后架构的门槛只会越来越低,直接使用现成的服务也会越来越流行。但即便如此,也只是减轻了开发层面工作,设计能力则是无法替代的,所以不能说有了现成的服务就不需要架构的能力跟思维了。
沟通协调与组织的能力
设计好的架构,还需要团队来实现。架构师必须要能统一技术团队开发规范与协作,沟通协调和组织的工作也约占了三分之一的比重。
领取专属 10元无门槛券
私享最新 技术干货