注意事项_代码的一些些规范
些许废话
零零散散也正式以打代码为生快一年半了,从代码写的稀碎到稍微能总结出一点东西,也算是一个一直在向上缓慢行走的状态了
很难说我喜欢代码这件事,原本选择也只是为了糊口,但从面向百度编程,到一点点写出带着自己风格的代码,再到可以略微静下来看一点技术博客,再到出了一点新技术会有好奇想去看看
让我觉得,也许我是适合的,也许会慢慢变得喜欢
一直很喜欢雷军,觉得在一众商人里,他的气质总是格格不入,一直记得他那句 “我不会写诗,但有人说我写的代码像诗一样优雅”
希望有一天,我也是在写诗
一些零碎的注意事项
1、对于非必传字段,对于查询条件,对该字段进行判空并判null
2、永远也不要返回null
3、对于数据库里的查询,一定要考虑到查询不到要怎么办,返回为空要怎么办,成为肌肉记忆,避免空指针异常,一个成熟的小白,代码里不该有空指针异常这种东西
4、application.yml中设置成为配置项的,在注入时一定要设置为初始值,以防止没有该配置时报错
5、当数据不一致时,先查前端传送的参数是否一致,再看后端生成的数据
6、null!=a 优于 a!=null
7、"admin".equals(str) 优于 str.equals("admin"),因为str为空会导致空指针异常
8、长参数封装为DTO
9、if中的条件过于复杂时,封装为一个方法,返回true/false,提高代码可读性
10、在使用java8的流操作时,一定要考虑到null值的状况
11、一定一定要模拟完整的数据进行测试
12、要考虑到模拟数据不匹配现在状态的情况,例如从url的第三个/开始截取时,要考虑没有第三个/时该怎么办以及出现了根本就没有/的情况该怎么办
13、在需要请求其他接口时,请求体,请求url,返回数据统统打印成日志
14、过大的非必需或非常用查询字段不要存入数据库,会导致查询变慢,影响整个程序的运行,最好单独存一个表
15、对于一些解析和获取别人接口的数据,一定要考虑到如果解析失败或获取不到数据时是否需要重试,不要只考虑解析成功的情况,如Base64编码时,会出现图片url下载失败的问题
16、不要频繁的在循环里new对象,可以适当的new对象,如在遍历时,需要对map或list进行增减操作时可以new对象,map和list在for循环中遍历时都不能进行remove操作,需注意
17、在测试时,要尽可能全面的考虑到空值的情况,任何条件的空值都会导致程序突然报错,宁愿多写一些if条件来判断每一个有可能为空的对象,也不要因为代码繁琐而放过一个为空的对象
祝你快乐!