开发习惯
- guava,程序员的好朋友.
- controller层, 不要放有关业务的代码.业务代码放service层.
- 如果if(){}else if(){}…..>=3 个if, 个人觉得,用switch case 比较好.
- 有些功能尽量使用java官方工具类.不要自己写,比如StringUtils,CollectionUtils,Arrays等.
- 合理规范注释, 前人编码注释清晰了, 后人改动思路就明了了.还有就是命名的规范(代码改动,更新注释).
- 尽量不要写重复代码,多次使用的代码抽出来独立成为一个方法调用,private或public根据具体业务情况而定.
- 生产代码禁止以System及Throwable.printStackTrace的方式输出日志信息, 必须用Logger替代, 注意log等级.
- controller层是前台和后台交互的.接口单一职责.一个接口一个功能(如果是在controller层进行权限控制的话,能更好的进行权限控制), 尽量清晰.不过service层可以提高代码复用率.
一些技巧
- 运用set的key不能重复, 可以去重.
有坑的点
- 开发中还是特别要注意new object的这个问题.
- 要注意map是无序的,千万不要数据库排序查询出来结果之后,放map.
- BigDecimal.add,subtract,multiply,divide,返回的是一个new object,要注意.
- get/set,方法中最好别写逻辑,报错console不会提示,只能自己一步步debug进去看异常.
- 注意Integer(-128~127)值的==和equals比较,(-XX:AutoBoxCacheMax这个参数可以了解下)
性能相关
- 利用好缓存, 缓存最常用最适合的地方:数据字典.
- for循环内避免查询处理相同的数据, 多次使用的数据放for循环外面.
关于工具
- chrome开发者工具: 点击代码窗口左下角的那个’{ }’(pretty print) 标签, 能格式化被minify掉的css/js.
- chrome开发者工具: 可以设置网络的访问速度来模拟一个网络很慢的情况.(network->no throtting->随意设置).