什么样的代码是臃肿的
业务代码与技术代码耦合
主业务代码与增值业务代码耦合
多余依赖关系
何为耦合,其实就是两者有依赖关系
先看一段代码:
其实 真正的业务代码只有一行: 就是 mapper.selectByPrimaryKey(id)
1 先从缓存中获取数据,没有再进行查询数据库 这其实是一种技术代码
2 ls.errorlog 操作成功 ,打印日志,是一种增值业务
3 业务代码其实就有 mapper 是业务代码,其他的 缓存 依赖 其实都是多余依赖
缓存 咖啡因子 ehcache (监控)
元级依赖 数据库依赖 操作系统依赖
消除依赖目的
可读性差
可复用差
可维护性差
易变性差
运行期依赖(比如依赖缓存,服务器启动的时候,缓存挂了,主业务代码就会挂掉)
解决方法: 注解(annotation), 注解其实就是标签
1 携带数据附属品
2 特定场景下由外部解析产生作用
retention source 是 java 代码中,编译成 class 之后就会消失,比如 @Override
class 打包变成 class 之后 基本上没有
runtime 基本上 都是这个注解