DTS(待了解) vs trasaction事务
脏数据 && 脏数据的清理
永远返回非空对象(忌:返回空值)
异常:
invoker(trackTrace:debug、release是不同的)
CallerMemberName:获取谁来调用此方法
异常返回:
【错误码】:分类、断定;
客户端调用,容易判断
【错误说明】:错误详细信息
参数提前检查
UI上显示的异常、错误,要全面
不要吃掉异常,
要不catch中自己处理(且自己处理的过程中,异常做了处理),
要不抛异常
返回值的定义:
固定数字、字符:尽量可配置
分布式锁:
zookeeper锁:
应用:
不可重复执行(影响比较严重)。ps:一般在页面做预防操作;
web api 限流
举例:银行存、取
cost较低
双检查:加锁之前查一次数据;获取锁之后也必须查一次数据double check(拿锁过程中,数据可能有变化)
数据库锁:
repeatable read,可重复读
cost 最高
加事务
多线程锁,只在单线程中有用,在分布式环境中不能使用;
日志:
跨服务,调用第三方接口(假设完全不可信),加日志
异常,必须添加日志
删除、权限变更……重要节点(关键环节),加日志。
记录核心数据,便于查询
中英文的翻译:
显示时的转换;
谨慎使用参数;
数据库循环调用
符号优先级,加括号:
&& 、||
+、-、*、/
hello world调侃:
接口、工厂、配置、