Skip to content

Commit

Permalink
修改文档
Browse files Browse the repository at this point in the history
  • Loading branch information
xwjie committed Dec 22, 2017
1 parent 006eaa1 commit fd76568
Showing 1 changed file with 10 additions and 4 deletions.
14 changes: 10 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,9 @@ if (opType == CREATE) {

如果没有打印optype的值,出了问题你只能从前找到后,看optype是什么了,很浪费时间。

> 重要建议:养成把不合法参数抛出异常的好习惯,抛异常的时候把对应的非法值抛出来。如上面例子里面的非法值opType。
> 重要建议:养成增加else语句,把不合法参数抛出异常的好习惯。、
> 抛异常的时候把对应的非法值抛出来。
## 修改操作需要打印操作的对象

Expand Down Expand Up @@ -105,7 +107,7 @@ logger.info("query docment done, size:" + docList.size())

有时候,业务量大的系统要找到某一个用户的操作日志定位问题非常痛苦,每一个日志上加用户名又低效也容易漏掉,所以我们要在更高层级上解决这些共性问题。

我们使用log4j的 `MDC` 功能达成这个目的。在用户登录后,设置用户信息的时候,把用户标志放到 `MDC` 中。
我们使用log4j的 `MDC` 功能达成这个目的。在用户登录后,把用户标志放到 `MDC` 中。

```Java
private final static ThreadLocal<String> tlUser = new ThreadLocal<>();
Expand Down Expand Up @@ -134,10 +136,12 @@ public static void setUser(String userid) {
![日志](/pictures/log1.png)

> 没有用户信息的时候并不会报错,而是空串。
> 不要一开始就关注日志级别和日志性能,规则越多越难落地。
> 必须记得清空。
## 集群环境,在静态服务器增加配置,返回处理机器的信息到响应头
## 集群环境下需要在静态服务器增加配置,返回处理机器的信息到响应头

配置后可以直接找到代码在那个机器上运行,快速定位。举例,`Nginx` 集群最简配置(主要使用 `$upstream_addr`) :

Expand Down Expand Up @@ -166,12 +170,13 @@ server{
![nginx](/pictures/nginx.png)



# 优雅编码 - 参数校验和国际化规范

请阅读 [我的编码习惯 - 参数校验和国际化规范](https://zhuanlan.zhihu.com/p/29129469)

1. 调用自己的校验函数
2. 业务代码任何地方,参数上都不要出现local,messagesource
2. 业务代码任何地方参数上都不要出现local,messagesource
3. 异常信息里面,不正确的参数值要提示出来,减少定位时间
4. 国际化参数不要放到每一个url上

Expand All @@ -196,3 +201,4 @@ server{
1. 不要养成面对debug编程,用日志代替debug
2. 不要一上来就做整个功能测试,要一行一行代码一个一个函数测试
3. 谨慎捕获异常和加空判断,加了空判断就要测试为空和不为空二种情况
4. 日志也是代码的一部分,提交代码前先运行看一遍操作日志。

0 comments on commit fd76568

Please sign in to comment.