首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >成为一名架构师得学习哪些知识?

成为一名架构师得学习哪些知识?

作者头像
慕容千语
发布于 2019-06-11 15:09:48
发布于 2019-06-11 15:09:48
6430
举报

于是,小灰去向大黄请教

这是有关未来的故事:

从前,有一个赶路的人路过一片工地,看到三个年轻人在工地上搬砖。

于是,他问其中一个人:

于是,他又问了第二个人:

于是,他又问了第三个人:

十年之后~

曾经说自己在建造城市的年轻人,成为了市长。

曾经说自己在搬砖的年轻人,成为了砖厂老板。

曾经说自己在搭建教堂的年轻人,最没出息,成为了架构师。

什么是架构师?

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

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

下面这张图,表达了一个应用架构师(技术 Leader)在团队当中的角色:

需要注意的是,这张图中的架构师只是应用架构师,所以运维和 DBA 人员没有归入到他的管辖范围。同时,每个公司的具体组织结构也不尽相同。

架构师都做些什么?

1. 架构设计

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

2. 技术选型

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

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

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

消息队列选择 RocketMQ 还是 Kafka

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

数据库选择 Mysql 还是 Oracle?

全文检索选择 Solr 还是 ES?

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

3. 管理非功能性需求

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

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

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

性能(响应时间)

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

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

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

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

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

可维护(持续集成持续部署

国际化(冲出国门)

4. 攻克技术难题

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

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

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

架构师都有哪些种类?

1. 应用架构师

应用架构师是行业中数量最多的架构师,主要负责公司产品的技术架构。产品架构师需要对业务有足够的理解,根据产品需求设计架构,在运营团队的协助下评估量级,并管理项目的整个生命周期。

2. 中间件架构师

中间件架构师主要负责基础框架、公共组件,通用服务的搭建。比如分布式服务框架诸如 Dubbo,HSF;比如消息队列诸如 RocketMQ,Kafka。在大型互联网公司中,往往不是把开源框架简单「拿来」,而是研发出符合自身业务的企业中间件。

3. 基础设施架构师

基础设施架构师负责服务器资源、网络资源、数据库等基础设施的建设;以及持续集成工具、持续部署工具的搭建。

以上所说的三种,只是架构师最基本的分类。一些特殊领域也有着专门的架构师,比如网络安全架构师、大数据架构师等等。

怎样才能成为架构师?

1. 技术的深度和广度

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

2. 业务的理解

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

3. 良好的沟通能力

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

程序员进阶成为架构师必然是一段艰辛且曲折的过程,你不仅需要在工作中不断实战来积累经验,还要利用一切可以利用的时间来继续深入学习,为了节省大家学习探索时间,我这收集整理了一套适合1~5年Java程序员进阶学习的线路规划脑图。现分享给大家。

1、开源框架解析专题: 站在巨人肩膀,收获不一样的视野。

开源框架解析

2、架构筑基专题: 深入内核、直击故障、拒绝懵圈。

架构师筑基

3、微服务架构专题:你还不知道微服务,怎么涨薪。

微服务架构

4、高性能架构专题: 成为互联网架构师,你要的都在这里。

高性能架构

5、团队协作开发专题: 让你团队开发效率提高十倍。

团队协作开发

6、B2C商城项目实战: 撸起袖子干实事,项目经验那点事。

商城实战项目

7、设计模式

设计模式
设计模式
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.03.13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
SpringBoot 配置 HTTPS 安全证书的两种方案
来源:https://blog.csdn.net/lhc_makefunny 文章目录 使用JDK自带的工具生成证书 使用FreeSSL提供的证书 使用JDK自带的工具生成证书 1.确保安装了JDK并正确配置了环境变量; 2.进入你的JAVA_HOME目录中的bin目录; 3.在这个目录下执行 //  keytool -genkey -alias (别名) -dname "CN=(姓名),OU=(组织单位名称),O=(组织名称),L=(城市名称),ST=(省),C=(国家)" -storetype (密钥仓
程序猿DD
2022/09/22
1.2K0
SpringBoot 配置 HTTPS 安全证书的两种方案
springboot(22)同时支持http和https访问
关于spring boot同时支持http和https访问,在spring boot官网73.9已经有说明文档了,同样在github上也有官网的例子。 在这里,我向大家讲述一下,我是怎么实现的。 keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650 1.-storetype 指定密钥仓库类型 2.-keyalg 生证书的算法名称,RS
IT架构圈
2018/06/01
4K0
在Spring Boot中使用HTTPS
在本文中,我们将学习在Spring Boot中使用自签名证书配置SSL(HTTPS),并且要在嵌入式Tomcat上启用Spring Boot应用程序的SSL,我们需要学习以下步骤: 1.创建SSL证书:生成自签名证书,或者使用由受信任的证书颁发机构(CA)颁发的证书。 2.在Spring Boot中启用HTTPS:这可以通过Spring Boot 项目中的一些简单配置来完成。 3. 将HTTP重定向到HTTPS :在某些情况下,最好也能从HTTP访问你的应用,将所有HTTP流量重定向到HTTPS端
lyb-geek
2018/08/16
2.9K0
SpringBoot两种方式配置 HTTPS 安全证书
1:确保安装了JDK并正确配置了环境变量; 2:进入你的JAVA_HOME目录中的bin目录; 3:在这个目录下执行
高大北
2022/06/14
1.5K0
Springboot模拟https安全访问(使用Java提供的keytool命令生成证书)
1、SpringBoot启动时默认采用http进行通信协议定义,但是为了访问安全性,我们有时候会选择使用https进行访问。正常来讲,https的访问是需要证书的,并且为了保证这个证书的安全,一定要在项目中使用CA进行认证,需要收费的哦,证书真是一个挣钱的生意。这里只是利用Java提供的keytool命令实现证书的生成。
别先生
2020/11/24
8790
Springboot模拟https安全访问(使用Java提供的keytool命令生成证书)
为我们的Web添加HTTPS支持
按:最近公众号文章主要是整理一些老文章,以个人CSDN上的博客为主,也会穿插一些新的技术点。 ---- 上篇博客使用Spring Boot开发Web项目我们简单介绍了使用如何使用Spring Boot创建一个使用了Thymeleaf模板引擎的Web项目,当然这还远远不够。今天我们再来看看如何给我们的Web项目添加https支持。在阅读本篇博客之前,强烈建议先读使用Spring Boot开发Web项目这篇博客,否则可能会有对Spring Boot不太了解的小伙伴看的云里雾里。 什么是https 要说https
江南一点雨
2018/04/02
2.1K0
为我们的Web添加HTTPS支持
Springboot 系列(十四)迅速启用 HTTPS 加密你的网站
正常情况下 HTTPS 证书需要从证书授权中心获得,这样获得的证书才具有公信力,也会被各种浏览器客户端所认可。常见的证书品牌如 Symantec,GeoTrustm,TrustAsia,Symantec 等。不过在 Springboot 的 HTTPS 实验中就没有必要去申请了,我们可以使用 Java 自带的 keytool 生成 HTTPS 证书。
未读代码
2019/11/04
8821
Spring Boot第七章-Spring Boot Web配置-Tomcat配置
直接在application配置文件中配置即可,servlet容器配置以server为前缀,而tomcat的特有配置以server.tomcat为前缀,至于有哪些参数可以在实际工作中需要了再找。配置例子:
全栈程序员站长
2021/05/19
1.1K0
SpringBoot项目安装SSL协议
概述 这个需求是我目前做的项目被网安评测的时候,一个漏洞的解决方案。使用SpringBoot内置Tomcat启动应用程序为http协议访问,应网安需求修改为https://协议访问项目,网络搜索出了两种解决方案,一种为使用JDK本地程序生成SSL证书,部署到SpringBoot项目上,一种使用云服务商提供的SSL证书,但是云服务器商提供证书需要域名校验,无法应用在localhost项目上面,故而选择第一种使用JDK本地生成SSL证书,如果浏览器弹框显示不安全就将证书部署在浏览器上面 开发环境 IDEA:I
框架师
2021/08/05
1.4K0
springboot监控&springboot配置https
springboot自带actuator监控,开启配置后,访问相关链接就可以返回服务运行相关信息,使用方法如下: 1、pom.xml:
贪挽懒月
2020/08/13
1.3K0
springboot监控&springboot配置https
重学SpringBoot系列之嵌入式容器的配置与应用
在Spring Boot项目中,可以支持Tomcat、Jetty、Undertow的Web应用服务容器。当我们添加了spring-boot-starter-web依赖后,默认会使用Tomcat作为嵌入式Web容器,不需要我们单独部署,将web应用打成jar包即可运行。
大忽悠爱学习
2021/12/07
1.8K0
重学SpringBoot系列之嵌入式容器的配置与应用
秒懂HTTPS接口(实现篇)
创建一个接口PersonRepository,后续的控制器直接调用该接口继承自JpaRepository的方法,来实现和数据库交互
高楼Zee
2019/07/17
2.1K0
秒懂HTTPS接口(实现篇)
SpringBoot配置HTTPS及开发调试
在实际开发过程中,如果后端需要启用https访问,通常项目启动后配置nginx代理再配置https,前端调用时高版本的chrome还会因为证书未信任导致调用失败,通过摸索整理一套开发调试下的https方案,特此分享
code2roc
2024/04/30
1670
SpringBoot配置HTTPS及开发调试
Spring Boot配置ssl证书启用HTTPS协议
SSL协议分为两层:SSL记录协议,它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。SSL握手协议,它建立在SSL记录协议之上。用于在实际数据传输开始前,通信双方进行身份认证、协商加密算法、交换加密密钥等。
故久
2019/09/29
5.4K0
Spring Boot配置ssl证书启用HTTPS协议
SpringBoot之Https
前言:Springboot因为是内置一个tomcat,在需要安全性的情况下需要配置ssl访问。
王念博客
2019/07/25
1K0
Spring Boot-4.servlet容器配置
Spring Boot默认Tomcat为Servlet容器,以Tomcat为例进行说明,Tomcat,Jetty,Undertow都是通用的。
悠扬前奏
2019/05/30
8100
spring boot支持https请求(建议收藏)
众所周知,http是不安全的协议,那么要使服务器支持https,该如何在spring项目中配置呢?
VIBE
2023/02/02
3.4K0
spring boot支持https请求(建议收藏)
springboot(21)容器整合
SpringBoot可以嵌入容器从而更好实现微服务,默认支持Tomcat和Jetty的嵌入,只需要在POM文件中导入相应的依赖即可。在有些场景下,我们需要将服务发布到项目早已搭建好的WEB容器中。常见
IT架构圈
2018/06/01
8210
SpringBoot配置Https
可以直接通过域名申请; 也可以使用自签证书(自签证书创建可以看我的另一篇文章:[使用KeyStore生成证书]) ​
十玖八柒
2022/08/01
1.3K0
SpringBoot配置Https
Spring Boot启用HTTPS
默认情况下,Spring Boot应用程序在应用程序启动时使用HTTP的8080端口。可按照以下步骤,在Spring Boot应用程序中配置HTTPS和端口443 -
黑洞代码
2021/09/03
9740
相关推荐
SpringBoot 配置 HTTPS 安全证书的两种方案
更多 >
LV.0
这个人很懒,什么都没有留下~
目录
  • 什么是架构师?
  • 架构师都做些什么?
    • 1. 架构设计
    • 2. 技术选型
    • 3. 管理非功能性需求
    • 非功能性需求都包含哪些内容呢?
    • 4. 攻克技术难题
    • 5. 技术人员的管理和指导
  • 架构师都有哪些种类?
    • 1. 应用架构师
    • 2. 中间件架构师
    • 3. 基础设施架构师
  • 怎样才能成为架构师?
    • 1. 技术的深度和广度
    • 2. 业务的理解
    • 3. 良好的沟通能力
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档