前言
很早之前就想写这么一篇文章,苦于准备不足和时间有限吧,进度一拖再拖。
来到新公司差不多3个多月了,让我感到或者说受益比较大的可以说就是公司的代码风格吧。
估计也是由于有架构师的缘故,大家的代码质量感觉都比较高。
扯远了……
今天结合实际聊一下关于如何让代码变得规范、优雅吧。
正文
遵守规范
这一点或许可以说很笼统,目前大家除了遵守公司制定的一些规范,针对于Java我还比较建议的是阅读下阿里的《阿里巴巴Java开发手册》,H5前端的可以看看Github 上的这个规范http://alloyteam.github.io/CodeGuide/ ,也是蛮不错的。
必要的封装
当有一些重复,或者有共性的代码时,我们可以对它们进行包装。小到一些特殊的判断,大到常用的设计模式。
如下面的代码,实现相同的功能,明显第二种要好些。
这些必要的封装不仅可以减少一些额外的工作量,还能提高代码可阅读性。
一些工具包,如apache.commons 已经封装了一些通用校验,我们是可以直接拿来使用的。
学会占位符的使用
这一点打印日志比较常见到。如下:
可以看到两者的输出是一样的,但是第一种是方便我们进行程序源码阅读的。
除了String.format里的%s占位符,log4j里的{}占位符也可以实现这种作用。
枚举和常量的使用
正确使用一些枚举和常量可以提高代码的阅读性。
比如我们创建一个水果枚举。
进行某些方法,这些方法更容易被阅读和维护。
异常的正确使用
或许你对异常不感冒,觉得有异常还要try catch是一件很费劲的事情,也影响代码美观,怎么会使代码优雅呢?
我们可以举个例子看一下异常的一种好玩的用法。
比如有一个业务逻辑,需要通过分布式接口获取其它数据,比如分三步:
这种情况下每个Res我们需要判断成功,才能获取数据。
即retCode为0000时。其它为失败。
这时候我们可以创建异常类。用于对retCode和retInfo进行接收。
如果上面步骤中获取失败,直接上抛。
最后可以使用try catch统一处理返回。
还有一些异常的用法,在这里就不一一说明了。
必要时尝试使用多线程
可以在必要时使用多线程来提高程序运行效率。
对于上面的例子,查询可用余额,查询提现次数,查询银行卡信息相互之间是不影响的(他们的结果只取决于userId或者customerId的值)。我们可以使用Future获取结果,减少程序运行时间。
使用多线程分别去请求获取结果,最后在进行处理。
结语
规范的代码不仅自己赏心悦目,别人看后也有所启发,养成编写良好代码的习惯,对自己、对别人都是有所帮助的。
其实最重要的还是多学、多练、多思考吧。