主页 > 新闻中心 > 课程咨询 >

成为一名架构师,要学习哪些知识

来源:南京北大青鸟 作者:南京北大青鸟 发布时间:2019-12-24 10:45

在一个团队里,架构师充当了技术 Leader 的角色,不仅要完成项目的整体设计和规划,还要带领技术团队一起解决实际问题

  架构师英文 architect,这个词源于建筑学。软件工程当中的架构师和建筑工程当中建筑师有许多相通之处,都是负责「产品」宏观的架构设计。

  在一个团队里,架构师充当了技术 Leader 的角色,不仅要完成项目的整体设计和规划,还要带领技术团队一起解决实际问题,攻克技术难点,使得软件的设计、开发、测试、发布流程得以顺利完成。

怎样才能成为架构师?

  1. 良好的沟通能力

  架构师不只是低头做技术,更需要协调指挥团队内的成员,也需要跨部门和产品、运营、项目经理等人员做及时有效的沟通,所以沟通能力是必不可少的。

  2. 业务的理解

  抛开业务谈架构就是不正经。这一点对应用架构师来说尤其重要。只有对业务有了充分的理解,才能对项目的设计和扩展做出合理的规划。

  3. 技术的深度和广度

  有一句话说得好,将军就是更好的士兵。架构师作为程序员中的将军,首先需要有足够的技术深度,同时需要广泛了解行业内的主流技术,以便更好地设计架构和技术选型。

成为一名架构师,要学习哪些知识

架构师都做些什么?

  1. 架构设计

  架构师,顾名思义,职责就是在软件设计阶段,做好软件「骨架」的设计。架构师需要把产品的需求翻译成软件工程的设计文档,确定各个系统与模块的边界,评估系统的量级。

  2. 技术选型

  从前端到后端,从缓存到数据库,面对为数众多的第三方组件,架构师需要作出合理的选择。

  前端页面选择模板引擎还是动静分离?服务端选择 Java 还是 Go?

  服务治理选择 Dubbo 还是 Spring Cloud?

  消息队列选择 ActiveMQ 还是 Kafka?

  分布式缓存选择 Redis Cluster 还是 Codis?

  数据库选择 MySQL 还是 Oracle?

  全文检索选择 Solr 还是 ES?

  技术没有好坏之分,关键看是否适用于公司的业务场景。

  3. 攻克技术难题

  架构师不只需要关注宏观的设计,也需要具有攻克技术细节的能力。在团队开发过程中遇到难以实现和优化的技术问题时,架构师需要发挥技术优势,解决系统的疑难杂症。

  4. 技术人员的管理和指导

  架构师不只是一个技术大牛,也应该是一个好的管理者,在工作中需要把较大的项目和需求拆分一个个 Story,依照每个人的情况分配给研发团队的成员,并且在必要的时候进行技术上的培训指导。

  5. 制定技术规格说明

  架构师在项目开发过程中,是技术权威。他需要协调所有的开发人员,与开发人员一直保持沟通,始终保证能够依照它的架构意图去实现各项功能。

  6. 管理非功能性需求

  满足需求是项目开发和架构设计的根本,而管理非功能性需求则是项目的升华。

  在公司从 0 到 1 的创业阶段,开发人更关注的是功能性需求,往往一个简单粗暴的 MVC 项目就可以搞定一切。当业务量级逐渐增大,用户需求逐渐多样化,非功能性需求的重要性就逐渐显现。

  非功能性需求有很多,比如:性能、可扩展性、可用性、可监控、灵活性、可维护等方面。

  架构师与开发人沟通的重要的形式是技术规格说明书,它可以是UML视图、Word文档,Visio文件等各种表现形式。通过架构师提供的技术规格说明书,保证开发人可以从不同角度去观察、理解各自承担的子系统或者模块。(相关推荐:学网页设计需要注意什么

  看完这些,对于架构师还有什么疑问吗?对于这样一个薪资前景都非常可观的职业,还等什么呢?有兴趣就行动起来去学习吧!

(责任编辑:南京北大青鸟中博学院)