TSE-业务知识

技术架构

前端技术架构(☆)

  • html , css javascript
  • vue 全家桶: vue, vue-router, vuex, vue-resource
  • 环境搭建: node.js, npm
  • 开发工具: vs-code

服务端架构

  • 架构模式(☆☆☆): 分布式, 集群, 冗余, 缓存等
  • 架构要素(☆☆☆): 性能, 可用性, 伸缩性, 扩展性, 安全性等
  • 高性能架构(☆☆☆): 特点, 应用场景, 当前产品存在问题, 优化方案等
  • 高可用架构(☆☆☆): 特点, 应用场景, 当前产品存在问题, 优化方案等
  • 伸缩性架构(☆☆☆): 特点, 应用场景, 当前产品存在问题, 优化方案等
  • 可扩展架构(☆☆☆): 特点, 应用场景, 当前产品存在问题, 优化方案等
  • 安全架构(☆): 特点, 应用场景, 当前产品存在问题, 优化方案等
  • 主流分布式架构
  • Spring Cloud(☆☆☆)
  • Dubbo(☆)

中间件

数据库

MySQL
  • 索引: (☆☆☆☆☆) 索引介绍, 原理, 组合索引, 索引分析
  • 架构: (☆☆☆) 逻辑架构, 物理架构, 执行流程
  • 锁: (☆☆☆)表的介绍和分类, 表锁, 行锁, 数据锁
  • 事务: (☆☆☆☆☆)事务的介绍, ACID 特性及原理, 事务并发, 事务隔离, 行锁和死锁原理分析
  • SQL 语句:(☆☆☆☆☆)常用增删改查,关键字和内置函数
  • 集群: (☆☆☆)主从复制, 读写分离的原理和实现
  • 分库分表(☆☆☆☆☆)分库分表概念, 数据切分概念, 分库分表问题, 分库分表实现方案
  • 性能分析 & 性能优化(☆☆☆☆☆)
  • 性能分析: 慢查询日志, profile 分析
  • 性能优化: 连接池 & 连接数,表设计, SQL 语句优化
Elasticsearch
  • 基础认知(☆☆☆☆☆)
  • 集群部署(☆☆☆)
  • 查询(☆☆☆☆☆)
  • 聚集(☆☆☆)
  • 分析(☆☆☆)
  • 数据同步(☆)
  • JAVA API(☆)
  • 性能测试(☆☆☆)
  • 数据迁移(☆)
  • 应用场景 & 架构设计(☆☆☆☆☆)

消息队列

特别关注:

  1. 技术选型如何做, 优缺点?

  2. 消息队列的概念, 目的, 应用场景

RabbitMQ
  • 基础知识(☆☆☆☆☆)生产者,消费者, 队列, 交换器, 运转流程
  • Exchange 类型(☆☆☆☆☆)direct, topic, headers, fanout, alternate
  • 6 种工作模式(☆☆☆) work queues, publish / subscribe, route, rpc, topic, publish confirms
  • 高级特性(☆☆☆)
  • 生产者: confirms
  • 消费者: ack, prefetch, concurrency, retry
  • 队列:死信队列、延迟队列、优先级队列、队列过期 TTL、Length Limit
  • 集群(☆☆☆)
  • 队列分片(☆)
  • 插件运用(☆)
  • RabbitMQ-management
  • RabbitMQ-tracing
  • RabbitMQ-federation
  • RabbitMQ-sharding
  • 思考(☆☆☆☆☆)
  • 怎么提高吞吐量?
  • 怎么保证消息顺序性?
  • 怎么防止消息丢失?
  • 怎么防止重复消费?
RocketMQ
  • 阿里开源的, 参考 RabbitMQ 大纲
ActiveMQ
  • 参考 RabbitMQ 大纲, 关注差异点
Kafka
  • 基础知识(☆☆☆☆☆)基本术语、消息引擎基础、角色定位 、版本选择
  • 生产者(☆☆☆☆☆)分区机制 、压缩算法、无消息丢失配置 、高级功能 、TCP 连接管理、幂等性
  • 消费者(☆☆☆☆☆)消费者组 、位移主题 、Rebalance 、位移提交、异常处理 、group 监控
  • 原理(☆☆☆)备份机制、请求处理 、Rebalance 全流程解析 、controller 、高水位

反向代理/负载均衡

Nginx
  • 代理(☆☆☆☆☆)代理, 正向代理, 反向代理的概念和区别?
  • nginx 是什么?(☆☆☆☆☆)
  • 为什么用 nginx ?(☆☆☆☆☆)
  • nginx 性能为什么高(☆☆☆☆☆)
  • nginx 环境搭建(☆☆☆☆☆)nginx 搭建, 热加载, 启动, 停止, 重启等
  • nginx 主配置文件(☆☆☆☆☆)
  • 事件模型(☆)select, poll, epoll, kqueue 等
  • nginx 进程(☆☆☆)master 进程, worker 进程
  • 常见优化(☆☆☆)

缓存

Redis
  • 基础知识(☆☆☆☆☆)Redis 介绍 、优缺点 、数据结构 、Java 客户端 、管道 、事务
  • 失效机制(☆☆☆☆☆)
  • 应用场景
  • 缓存(☆☆☆☆☆)
  • 分布式锁(☆)
  • 发布 / 订阅(☆)
  • 队列(☆)
  • 排行榜计算(☆)
  • 持久化(☆)RDB 机制 、AOF 机制 、RDB + AOF 混用机制
  • 集群 / 分布式(☆☆☆)全量复制, 部分复制、主从复制 、哨兵 、集群

TSE-通用知识

编码能力

开发语言 JAVA(☆☆☆☆☆)

  1. 面向对象语言概念
  2. 语法基础
  3. 面向对象的特性:继承、封装、多态
  4. 集合
  5. 异常处理
  6. IO
  7. 多线程
  8. 网络
  9. 泛型
  10. JDK 常用类、接口、注解

开发框架(☆☆☆)

GitHub 项目练手

Spring Boot
  • Spring Boot 介绍
  • Spring Boot 、Spring MVC、Spring 的区别
  • 自动装配
  • Spring Boot Starter
  • Spring Data
  • 关键注解
  • 启动原理分析
  • 事务原理
Mybatis
  • ORM 框架是什么
  • 跟 JDBC 的区别
  • 配置文件
  • 核心 API
  • 缓存机制
  • 插件开发
  • 逆向工程
Maven
  • Maven 是什么
  • Maven 的作用是什么
  • 构建过程: 清理、编译、测试、报告、打包、安装、部署
  • POM
  • Maven 工程目录结构
  • 坐标管理
  • 依赖管理
  • 仓库管理
  • 生命周期
  • 插件和目标
  • 继承
  • 聚合

开发集成工具

IntelliJ IDEA(☆☆☆☆☆)
  • 常用快捷键
  • 创建工程
  • 导入工程
  • 常用配置
Eclipse(☆)

自动化测试

  1. WEB/H5:Selenium、WebDriver、Xpath
  2. app : appium
  3. api: postman、httpclient、json
  4. TestNG

测试理论知识

测试策略(☆☆☆☆☆)

  1. 需求分析
  2. 风险评估
  3. 测试范围评估
  4. 测试方法敲定
  5. 测试准入、准出标准

用例设计(☆☆☆☆☆)

  1. 常用用例设计方法
  2. 高质量用例设计方法和原则

性能测试

基础知识

  • 性能测试理论
  • 性能测试分类
  • 性能测试常用指标
  • 性能测试流程

工具/平台

  • Jmeter(☆☆☆☆☆)
  • LoadRunner(☆)
  • Locust(☆)
  • Gatling(☆)
  • nGrinder(☆)

项目实战(☆☆☆☆☆)

  • 性能测试需求分析
  • 性能测试计划
  • 性能测试方案
  • 性能测试场景数据建模
  • 脚本开发

性能监控(☆☆☆☆☆)

性能分析(☆☆☆☆☆)

性能优化(☆☆☆)

Java 虚拟机(☆☆☆☆☆)

安全测试(☆)

  1. 基础知识
  2. Web 安全
  3. 嵌入式安全
  4. 工控安全
  5. 移动安全
  6. 系统安全
  7. 反病毒
  8. 云安全

开发设计模式/原则

开发设计原则(☆☆☆)

  1. 开闭原则
  2. 依赖倒置原则
  3. 单一职责原则
  4. 迪米特法则(最少知道原则)
  5. 接口隔离原则
  6. 里氏替换原则
  7. 合成复用原则

开发设计模式

创建型模式
  • 工厂方法模式(☆☆☆)
  • 抽象工厂模式(☆☆☆)
  • 建造者模式(☆)
  • 原型模式(☆)
  • 单例模式(☆☆☆)
结构性模式
  • 适配器模式(☆☆☆)
  • 桥接模式(☆)
  • 组合模式(☆)
  • 装饰器模式(☆☆☆)
  • 门面模式(☆)
  • 亨元模式(☆)
  • 代理模式(☆☆☆)
行为型模式
  • 解释器模式(☆)
  • 模板方法模式(☆)
  • 责任链模式(☆)
  • 命令模式(☆)
  • 迭代器模式(☆)
  • 调节者模式(☆)
  • 备忘录模式(☆)
  • 观察者模式(☆)
  • 状态模式(☆)
  • 策略模式(☆)
  • 访问者模式(☆☆☆)

前沿技术

  1. 云原生(☆☆☆)
  2. DevOps(☆☆☆)
  3. 人工智能(☆)
  4. 敏捷开发模式(☆☆☆)
  5. 持续集成/交付(☆☆☆)
  6. 容器化(☆☆☆)
  7. K8S
  8. Docker

TSE-软实力

  1. TRIZ 创新思维(☆☆☆)
  2. 模型思维(☆)