• hjr-如何在百度做好架构师


    总结一下在在百度做架构师的心得

    能力要求

    1. 要精通团队所有人的技术栈,至少做到熟悉
    2. 要起到催化剂的作用,赋能加速团队而不是拖累团队进度
    3. 能解决团队的各种难题,包含技术、管理、甚至人员情绪问题等
    4. 能够在项目有风险的时候,自己上也能追上目标进度
    5. 能够制定团队目标,做好技术选型,进行架构设计,掌控项目进度,review全员工作

    管理职责

    制定团队目标

    首先要根据自上而下的ORK,制定团队的季度目标

    这里需要我们熟悉团队每个人的技术栈,每个人所负责的业务,然后根据每个人的职级和能力,给每个人制定季度目标,通过开会讨论,完善和对齐每个人的目标。

    做好review

    在对齐目标后要每周通过周会的方式和大家做好review并对团队整体进度和每一条拆解的目标线的进度都做好管控和梳理

    在检查完大家的工作后更新团队每一项目标的的进度

    关于季度目标这里可以拆解为2周一个迭代的敏捷开发的模式,

    两周一个小目标,每个月一个里程碑

    两周中,第一周check进度,上报风险,第二周验收2周的目标的达成情况

    月底检查里程碑是否达成,季度结束后检查最初定的季度目标是否达成

    做好check

    由于架构师需要精通所有技术栈,因此可以每周通过检查每个人的提交代码和输出文档的质量的方式对团队人员工作进行评价
    不过核心评价标准还是要看任务是否按计划完成,以结果为导向

    技术职责

    技术架构设计

    由于架构师负责全部技术问题,因此要做好技术选型和各种方案的架构设计

    技术选型

    这里写一下我主要会考虑的几个点,在满足业务需求实现的基础上还要考虑如下这些。

    1. 可拓展性,要先看我们的项目打算做到什么程度,以后如果有新增的需求,选择的技术方案是否能满足
    2. 合规性,是否是开源项目,证书如何,是否能满足法律法规要求
    3. 安全性,加密算法,数据脱敏,数据安全等是否能保障
    4. 合理性,这个指的是技术选型不能天马行空,要符合团队多数人的技术栈,要考虑学习难度等因素。
    5. 稳定性,是否能保障项目运行稳定和以后不会频繁变更技术方案增加研发成本

    架构图

    关于架构图的绘制我总结了几个点

    1. 要全面,要包含项目整体的 技术架构图,业务架构图,数据流转图,功能模块责任图,还要有各个模块的细节架构图,比如微服务架构图,前端VUE架构图,大数据方案设计等等
    2. 要切合实际,要和当前的技术实现,当前的项目实际情况吻合,每个图要标明目前实现的进度
    3. 要分离,要清晰的描述出当前已经实现的,未来规划的用不同颜色标出,使看到的人能清晰的了解绘图人的计划

    架构师分类

    架构师一般分为 解决方案架构师,交付架构师,业务架构师,基础架构师

    解决方案架构师主要是,在项目初期阶段,对来的需求,做分析和架构设计,最后帮助团队一起去实现目标

    交付架构师主要是,在项目交付阶段,和客户沟通,达成客户提出的各种诉求和解决出现的各种问题

    业务架构师主要是指除了在技术上有深耕多年,有专业的架构能力外还对某行业的业务也十分清楚

    基础架构师主要指,对任何软件系统都有超强的架构设计能力,能够快速的实现软件架构

    架构师核心能力

    我个人而言,主要侧重几个能力的学习和应用

    编码能力

    首先至少要有百万级别的代码量锻炼,能够做到高质量快速编码和低BUG率,可以人脑模拟代码编译,一些简单的代码逻辑甚至可以不报错一次过,精通各种如 线程池 锁 反射 各种数据结构 和设计模式等 的应用。

    服务架构能力

    至少会一种架构层面的技术,我这里主要多年做的都是微服务架构,spring clould全家桶,这个架构层面的技术选择,主要是考虑要应用面广,使用人多,社区活跃,发展前景好,资料充足。

    大数据能力

    数据量增大后会引起一系列问题,如何处理数据量增大后的 存 查 改 算 等问题,如何做好ETL数据清洗,搭建数据湖,数据仓库,数据中台,保障服务的稳定性,处理好磁盘、内存、CPU 崩溃等问题变得尤为关键,针对每种大数据库的特性做好技术选型和数据结构,表,备份,分区等是保障百亿级数据后已经项目稳定运行的重要手段。

    算法能力

    这里的算法不是指的面试时候常问的排序算法等方法层面的算法,而是一些AI算法之类的应用层面的算法,熟悉一些如BP神经网络等算法的原理在一些大型项目开发中可以提升核心竞争力

    运维能力

    容器化,基于k8s的Kuboard开源运维管理系统的使用,服务的容错能力,微服务的服务网格,服务通信和服务稳定性保障,削峰限流,并发处理能力,分布式系统,分布式存储等的搭建,各种运维事故都要有相应的设计和解决方案

    优化能力

    1. kafka 、mqtt等消息队列的消费能力优化,稳定性优化,事务处理速度的优化
    2. 大数据要考虑 数据上报到 到落库数据湖 到修改 计算 的完整流程的优化
    3. 数据库要考虑连接池数,io读写能力,隔离级别,行/表锁、索引等的优化,
    4. 接口要考虑吞吐能力、 稳定性 、正确性、事务处理、信息处理成功率、处理及时性等的优化
    5. JAVA要考虑 JVM调优,内存等的优化
    6. 运维要考虑,内存,磁盘,CPU加限制,服务器稳定性等的优化,代码
    7. 代码要考虑设计模式,重构,开发规范,简洁美观等,注释覆盖率等的优化
  • 相关阅读:
    JavaScript中的 自动装箱 自动拆箱
    JMM模型与并发三大特性
    ESP32网络开发实例-BME280传感器数据保存到InfluxDB时序数据库
    前端-(5)
    ElementUI Message 消息提示,多个显示被覆盖的问题
    光电二极管放大应用方案
    Java新特性(1):Java 9和Java10
    Spire.PDF for .NET 9.8.5 Crack
    UITableView的学习笔记
    网络数据帧中的(Jumbo Frame)巨帧、超长帧
  • 原文地址:https://blog.csdn.net/hjrcrj/article/details/126037198