摘要:1. 接口过时必须加@Deprecated注解,并清晰的说明采用新接口或者新服务是什么。 2. Object的equals方法容易抛出NPE,应使用常量或确定有值的对象来调用equals。 推荐使用java.util.Objects.equals(Object, Object)。 3. 集合初始化, 阅读全文
posted @ 2019-08-16 09:40 wudiffs 阅读 (12) 评论 (0) 编辑
摘要:首先在介绍类的规范的时候,必须介绍下SOLID设计原则。在我们实际开发过程中,需要把SOLID作为一个整体,而不是单独看单个原则。 单一职责是所有设计原则的基础。 开闭原则是设计的终极目标。 里氏替换原则强调的是之类替换父类后程序运行的正确性,它用来帮助实现开闭原则。 接口隔离原则用来帮助实现里氏替 阅读全文
posted @ 2019-08-16 09:31 wudiffs 阅读 (23) 评论 (0) 编辑
摘要:一. 起因 系统压测,罐了一部分数据,但是始终不处理,查询日志也没有异常日志,很不正常。 二. 问题排查 首先就是加各种日志去线上定位是哪里问题,代码模型如下: 问题分析:第一处日志打了,第二处日志没打,第三处日志没打。但是问题定位应该是序列化抛了异常,可是为啥第三处日志没打了? 怀疑是不是log4 阅读全文
posted @ 2019-08-16 09:22 wudiffs 阅读 (11) 评论 (0) 编辑
摘要:一次正常的上线,发了几台docker后,却发现有的机器打了info.log里面有日志,有的没有。排查问题开始: 第一:确认这台docker是否有流量进来,确认有流量进来。 第二:确认这台docker磁盘是否慢了,磁盘没有满。 第三:确认这台docker日志级别,确认和其他docker一样配置文件。 阅读全文
posted @ 2019-07-19 09:26 wudiffs 阅读 (60) 评论 (0) 编辑
摘要:一、java的三种注释类型 单行注释:// ...... 块注释:/ ...... / 文档注释:/ ...... / 二、指导原则 注释不能美化糟糕的代码,碰到糟糕的代码就重新写吧。 用代码来阐述你的意图,好的代码就是最好的注释。 错误的注释比不注释更可怕。 大括号后不要加注释,建议另起一行。 注 阅读全文
posted @ 2019-07-18 20:00 wudiffs 阅读 (87) 评论 (0) 编辑
摘要:1. 短小 2. 只做一件事 3. 使用描述性的名称 4. 无副作用 说明:函数承若只做一件事,但是隐藏做了另外一些事,让人迷惑,导致古怪的时序性耦合及顺序依赖。 5. 每个函数一个抽象层级 6. 函数参数 说明:尽量避免三个参数以上,参数越多测试覆盖所有可能的值的组合就越多, 如果参数过多就该将参 阅读全文
posted @ 2019-06-18 18:51 wudiffs 阅读 (55) 评论 (2) 编辑
摘要:一. if else表达式过于复杂 问题解决:分解条件表达式,分解成多个独立的函数,为分解的新函进行良好的命名,从而更清楚表达自己意图。 二. if else 嵌套过深 解决办法:通过卫语句,有时候条件式可能出现在嵌套n次才能真正执行,其他分支只是简单报错返回的情况,对于这种情况,应该单独检查报错返 阅读全文
posted @ 2019-06-18 15:37 wudiffs 阅读 (130) 评论 (0) 编辑
摘要:各位同学知道自己负责系统各个接口能抗多大量吗?TP99多少?需不需要扩容?面对大促的流量会不会系统会不会挂掉? 压测的作用 压测分类 压测需要关注的数据 压测环境准备 压测一般分为读接口和写接口压测 针对读接口,首先保证压测的实例线上没有流量打进来。 针对写接口,最好完全隔离一套环境,从主机,red 阅读全文
posted @ 2018-06-28 15:21 wudiffs 阅读 (315) 评论 (0) 编辑
摘要:以前,没养成好好写东西的好习惯,先决定通过博客园记录自己工作成长过程点点滴滴。加油! 阅读全文
posted @ 2018-05-22 21:50 wudiffs 阅读 (147) 评论 (0) 编辑