软件工程师基础能力
2022-06-04 19:20:03 0 举报
AI智能生成
软件工程师的技能,5-10年成长方向积累感悟
作者其他创作
大纲/内容
jvm调优
数据库参数调优
慢sql
压测
衡量系统性能
性能优化能力
自带命令工具
工具
Jvm在线调试
如何实现热部署,回退,线上版本控制
在线运维能力
敏捷开发
博客资料
《领域驱动模型》
公共二方包设计
DDD领域驱动模型
软件工程
关于业务的承诺
关于技术的承诺
与其他组确认
不要过度设计,不要定义不用的方法
最小暴露
接口定义
流程编排引擎
技术方案
流程图
时序图
【书】UML用户指南
UML
原型图
bpm流程编排
架构图
设计图
idea analyze
idea Diagrams
文档+架构图
问题单与bug修复
迅速入手项目
Visual Paradigm 15.2
processOn online
工程技能
逆向工具
服务化
架构理解
滑动窗口的最大值
漏桶子
桶令牌
Redis分布式限流
先硫酸法
限流
常见指标
项目经验
修改线上代码
开发自测
代码开发安全意识
漏洞
安全
业务架构能力
进度控制
需求拆分
需求梳理
需求
规范需求出入口
产品
会前通知
开会
PPT
甘特图
项目文档能力
项目管理能力
定位
对内
对外
目标
团队定位及业务目标
招人
mvc最小试错
带人能力
【书】成为技术领导者:掌握全面解决问题的方法
沟通能力
【书】系统化思维导论
工程师的本质
高效管理时间
参考别人的思考
团队管理能力
线程等待的意义
线程等待
【书】java并发编程
juc
【书】深入理解Java虚拟机
字节码文件
编译优化
双亲委派加载
OSGI
自定义类加载器
类隔离问题
在做Java类型转换时,只有两个类型都是由同一个加载器所加载,才能进行类型转换,否则转换时会发生异常
JIT
类加载
OOM
堆
元数据
例如System.currentTimeMillis()
本地方法栈
程序计数器
局部变量
操作栈
动态链接
返回方法地址
虚拟机栈JVM Stack
内存布局
共享
私有
并发
1、.
对象实例化
标记清除算法
Serial
GMS
G1
垃圾回收器
垃圾回收
内存与锁
自带工具
JVM
【书】effective java
Lambda 表达式掌握
collect(toList())
子主题
Stream 掌握
optional类 掌握
方法引用
函数式接口
java8新特性
回调函数
创建对象的几种方法
重试接口设计
SPI与OGNI的区别
SPI的实现例子,dubbo-spi,sl4j,jdbc驱动,idea插件,spring的ioc容器在fatory.properties中扫描加载其他框架实例https://juejin.cn/post/6950266942875779108看dubbo,jkd,sping三总实现的优劣
源码导读—ServiceLoader类的静态方法load
SPI机制
java编程设计和思想
Java底层
JMI(实现)
RPC(抽象)
JNDI
netty技术
【书】重构既有代码第二版
重构
JavaEE
SpringBoot
控制反转
注入问题,尤其注意抽象类中使用bean使用注入对象的时候一定注意当前类也必须被spring托管
抽象类中如何使用bean对象
xml注入组合对象
依赖注入
分清楚注册注入和hsf服务版本
静态类需要使用bean方法
常用case基础
常用case进阶
Spring
数据库
notebook插件记录笔记
ctrl+h查看类的继承
代码折叠region endregion
mac cmd+option+方向键
win Ctrl + Alt + B
查看实现类
idea
基本用法
笔记
git
apipost
swagger
http://www.mytju.com/classcode/tools/messycoderecover.asp
乱码工具
sublime——调试,捞单
查看隐藏文件夹
Alfred
效率工具
Mac
wox
win
谨小慎微,越是微小的改动,在push的时候越要review避免浪费部署调试时间
精准定位
计算机任何你觉得奇怪的地方一定有原因。数据不会无缘无故的出现。
确认值的影响范围,如果是个静态一开始为空后面赋值,别人拿去用很容易踩坑
用大Boolean一定要谨慎,考虑为空的情况
包装类型有可能返回null,要对每一种情况说明,调用方才不会有疑惑
包装类型与基础类型
依赖实体而不是接口
端面查询
防腐设计
查询参数DO
wrapper层
service层
方法命名
命名
返回值
工具类
查询要考虑到业务场景全覆盖,还要考虑如果模型改变的情景
错误码和日志不要有误导性,不要篡改别人的结果,吃异常
日志
业务设计
Map
定义
不面向异常编程
业务场景定制代码最好通过。业务 场景code做区分比较好,不然只能写一大段if else和约定状况不一样的报错,不要走默认链路
避免代码重复率实际上是因为改的时候容易改了上段忘了下段。优雅只是其次
每次发布和修复,都写清楚要增加修改的代码 具体的方案 以及涉及到的业务影响 改动哪个接口的服务啥的
明确作用范围,切勿过度承诺
对于默认兜底逻辑一定心中有数,有时候-1 0会有下游业务场景用,及时抛出场景异常
迅速定位问题的能力,根据
编码开发习惯
缓存设计
语言
概要:平时积累
深入浅出+sql练习
Innodb
maxwell
mycat
行锁
列锁
MySQL间隙锁
锁
死锁问题
logBin
MySQL
【书】redis设计与实现
集群搭建
redis
Sharding-Sphere
tddl
分库分表
dataX
dataX离线数据库同步工具
【附加项】深度学习
测试用例
自动化测试
DDD模式的测试用例
JDK9自带JHM
测试
【未完成】幂等接口的设计
分布式
测试先行
需求开发
dubbo SPI
dubbo etcd
dubbo
RPC框架
编程能力
远程debug
单机容器部署
dump文件分析
集群部署
捞单
异常单据处理
处理线上问题
鹰眼+关键字查询
日志查询
提测文档
自测
调试能力
2.集成部署一定要检查文件编码约束
DevOps
prometheues
grafana
dockerfile
网络编排
基本命令
docker
容器技术
网络
pod
k8s
云原生
nexus搭建
使用自定义类加载器
编译顺序与冲突解决
启动依赖第三方接口
启动依赖外部接口
更新jar包
中间件的jar包引入不安全的jar包
只依赖自己引用的包
使用更高版本的jar
build
更新无效
更新依赖版本
《maven实战第二版》
使用快照包
团队协同开发常用技巧
bom设计
拉取不到文件unknow
查看依赖树 mvn dependency:tree >> ./mvnTree2.log
maven
编译文件编写
gradle
编译
Linux
二方包一定要带源码编译
发布依赖包都需要是正式版本
打包规范
各自独立线程池
容器内部隔离
set时深拷贝
同JVM
应用部署
多分支同时发布
应用发布
编译部署能力
博客
公众号
简书
视频教程
开源项目贡献者
看《涂鸦笔记》并做笔记输出简书+微信+博客
辅助视频教程
视觉笔记
技术影响力
1.积极主动 高效能的一个小总结吧
破除技术迷信
接受新事物能力
砍价
吵架
送礼
厚脸皮
演讲
新认识朋友
克服自己缺陷
软实力
方法论
中心主题
收藏
0 条评论
回复 删除
下一页