ITPub博客

首页 > IT职业 > > 架构师|程序员的发展之一,架构师与程序员的不同之处是思维

架构师|程序员的发展之一,架构师与程序员的不同之处是思维

作者:u_509a2a8fdb46 时间:2019-11-04 15:54:07 0 删除 编辑

全球领域



什么是架构师?

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

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

架构师都做些什么?

1. 架构设计

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

2. 技术选型

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

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

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

消息队列选择 RocketMQ 还是 Kafka?

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

数据库选择 Mysql 还是 Oracle?

全文检索选择 Solr 还是 ES?

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

3. 管理非功能性需求

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

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

非功能性需求都包含哪些内容呢?

1、性能(响应时间)

2、可扩展性(适应需求的快速变化)

3、可用性(四个 9,五个 9,必要时的限流和降级)

4、安全性(防范各种恶意攻击,实现风控)

5、可监控(完善的监控和报警机制)

6、灵活性(便于非开发人员进行配置)

7、可维护(持续集成,持续部署)

8、国际化(冲出国门)

4. 攻克技术难题

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

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

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

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69927062/viewspace-3168012/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-08

  • 博文量
    210
  • 访问量
    38