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(☆)
- 性能测试(☆☆☆)
- 数据迁移(☆)
- 应用场景 & 架构设计(☆☆☆☆☆)
消息队列
特别关注:
技术选型如何做, 优缺点?
消息队列的概念, 目的, 应用场景
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(☆☆☆☆☆)
- 面向对象语言概念
- 语法基础
- 面向对象的特性:继承、封装、多态
- 集合
- 异常处理
- IO
- 多线程
- 网络
- 泛型
- 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(☆)
自动化测试
- WEB/H5:Selenium、WebDriver、Xpath
- app : appium
- api: postman、httpclient、json
- TestNG
测试理论知识
测试策略(☆☆☆☆☆)
- 需求分析
- 风险评估
- 测试范围评估
- 测试方法敲定
- 测试准入、准出标准
用例设计(☆☆☆☆☆)
- 常用用例设计方法
- 高质量用例设计方法和原则
性能测试
基础知识
- 性能测试理论
- 性能测试分类
- 性能测试常用指标
- 性能测试流程
工具/平台
- Jmeter(☆☆☆☆☆)
- LoadRunner(☆)
- Locust(☆)
- Gatling(☆)
- nGrinder(☆)
项目实战(☆☆☆☆☆)
- 性能测试需求分析
- 性能测试计划
- 性能测试方案
- 性能测试场景数据建模
- 脚本开发
性能监控(☆☆☆☆☆)
性能分析(☆☆☆☆☆)
性能优化(☆☆☆)
Java 虚拟机(☆☆☆☆☆)
安全测试(☆)
- 基础知识
- Web 安全
- 嵌入式安全
- 工控安全
- 移动安全
- 系统安全
- 反病毒
- 云安全
开发设计模式/原则
开发设计原则(☆☆☆)
- 开闭原则
- 依赖倒置原则
- 单一职责原则
- 迪米特法则(最少知道原则)
- 接口隔离原则
- 里氏替换原则
- 合成复用原则
开发设计模式
创建型模式
- 工厂方法模式(☆☆☆)
- 抽象工厂模式(☆☆☆)
- 建造者模式(☆)
- 原型模式(☆)
- 单例模式(☆☆☆)
结构性模式
- 适配器模式(☆☆☆)
- 桥接模式(☆)
- 组合模式(☆)
- 装饰器模式(☆☆☆)
- 门面模式(☆)
- 亨元模式(☆)
- 代理模式(☆☆☆)
行为型模式
- 解释器模式(☆)
- 模板方法模式(☆)
- 责任链模式(☆)
- 命令模式(☆)
- 迭代器模式(☆)
- 调节者模式(☆)
- 备忘录模式(☆)
- 观察者模式(☆)
- 状态模式(☆)
- 策略模式(☆)
- 访问者模式(☆☆☆)
前沿技术
- 云原生(☆☆☆)
- DevOps(☆☆☆)
- 人工智能(☆)
- 敏捷开发模式(☆☆☆)
- 持续集成/交付(☆☆☆)
- 容器化(☆☆☆)
- K8S
- Docker
TSE-软实力
- TRIZ 创新思维(☆☆☆)
- 模型思维(☆)