我的编码习惯 - 参数校验和国际化规范

精简代码与提高可读性
本文探讨了如何通过减少参数校验和国际化的冗余代码来提升业务代码的可读性和维护性。介绍了利用ThreadLocal去除重复的本地化参数,并通过封装校验函数减少代码量的方法。

原文出处:晓风轻

 

导读:程序员你为什么这么累?

今天我们说说参数校验和国际化,这些代码没有什么技术含量,却大量充斥在业务代码上,很可能业务代码只有几行,参数校验代码却有十几行,非常影响代码阅读,所以很有必要把这块的代码量减下去。

今天的目的主要是把之前例子里面的和业务无关的国际化参数隐藏掉,以及如何封装好校验函数。

先看对比图,修改前:

v2-ef9a23b88f7e8719cc6af0bcb97d9759_b.png

service中:

v2-29721ad68bad6ed07d7ec721d81c97a1_b.png

修改后:

v2-c0a1ceed353e3ff99dd7248d71c3dc88_b.png

service中:

v2-52f8dfaa5133aa7a025425ce797a8b36_b.png

Controll的非业务代码如何去掉参考我的编码习惯 - Controller规范,下面说说去掉Local参数。

强调一下:业务代码里面不要出现和业务无关的东西,如local,MessageSource 。

去掉国际化参数还是使用的技术还是ThreadLocal。国际化信息可以放好几个地方,但建议不要放在每一个url上,除了比较low还容易出很多其他问题。这里演示的是放在cookie上面的例子:

v2-572b1aeb7bbbb204b7c5fad5cde41cba_b.png

UserUtil

CheckUtil,这里需要得到用户的语言

这里有几个小技术点:

工具类里面使用spring的bean,使用了MethodInvokingFactoryBean的静态方法注入:

server里面调用的使用没有出现类名

v2-31da44f975ab2abee94a2bfc9a60d770_b.png

这里使用的jdk的import static 特性,可以在IDE上配置,请自行google。

还有一小点注意,我建议参数非法的时候,把值打印出来,否则你又要浪费时间看是没有传呢还是传错了,时间就是这样一点点浪费的。

另外有些项目用valid来校验,从我实际接触来看,用的不多,可能是有短木板吧。如果你的项目valid就能满足,那就更加好了,不需要看了。但是大部分场景,校验比例子复杂N多,提示也千变万化,所以我们还是自己调用函数校验。

做了这几步之后,代码会漂亮很多,记住,代码最主要的不是性能,而是可读性,有了可读性才有可维护性。而去掉无关的代码后的代码,和之前的代码对比一下,自己看吧。

还有人说代码要注释率到多少(我们公司有段时间工具扫描要求注释率到30%以上),依我看来,大部分业务代码这么简单,你把代码写成我例子那样,还需要什么注释?注释是画蛇添足。

转载于:https://www.cnblogs.com/huangwenjie/p/7501986.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值