提高服务端编码质量
来源:互联网 发布:无情对 知乎 编辑:程序博客网 时间:2024/06/05 22:36
文章目录1. 查询1.1. 分页显示1.2. 数据一致性1.3. 分类排序1.4. 模糊查询1.5. 查询条件2. 新增2.1. 是否必填2.2. 字符长度2.3. 数字边界2.4. 合法数据2.5. 特殊字符2.6. 带空格的字段2.7. 上传功能2.8. 重复添加3. 修改3.1. 是否必填3.2. 字符长度3.3. 数字边界3.4. 合法数据3.5. 特殊字符3.6. 带空格的字段3.7. 重复修改4. 删除4.1. 删除不存在的数据4.2. 删除合法数据4.3. 不允许删除的数据4.4. 删除数据的衍生影响提高服务端编码质量,对我们的编码进行Code Review十分重要,今天我整理下我在开发过程中的历史经验,整理了一份检查列表,欢迎大家一起来补充和完善。查询分页显示 检查分页功能是否正常,分页边界是否有矫正机制,例如非数值类型,下限是否校验,上限是否设置允许最大值等。数据一致性 查询数据是否一致,这种情况不一致可能是接口错误,或者存在缓存。 返回总数是否正确,这个经常会被忽略。分类排序 是否有进行排序功能,排序是否符合需求,例如需求是要根据热度排序,接口返回按更新时间排序明显就和需求有偏差了。模糊查询 是否是模糊查询,还是精确查询。 特殊字符是否过滤,例如MySQL的特殊字符:“&”和“_”。 查询的性能问题,MySQL的模糊查询走全表,所以客户端接口一定要确认性能是否有影响。客户端接口对性能有要求,建议使用Elasticsearch、Solr等全文搜索。查询条件 开始时间和结束时间的边界 关键字对于特殊字符、空字符串、超长字符、数字边界等约束。新增是否必填 对于强制输入的字段,是否必填,错误信息是否正确。字符长度 最长最短长度都要测。举个例子,比如数据库的一个字段类型是text,觉得需要测试它的上限么?答案是:要。一个真实案例,一个文章的内容一不小心可能就超过65535的上限,这个时候接口就出现500的错误咯。数字边界 对于数字型的字段,测试上下边界非常重要。经常我们会忽略这点,举个例子,超过Integer上限并不是我们想象的那么遥不可及。合法数据 如枚举类型(1-上架;2-下架),电话号码、电子邮箱、时间格式等。特殊字符 特殊字符允不允许(业务决定),会不会导致数据库报错和乱码是否存在SQL注入的可能。 是否存在xss攻击的可能。带空格的字段 服务端是否有做trim操作,只输入空格是否正确保存。上传功能 上传的文件是否可以使用,上传的文件格式是否有限制等。重复添加 是否输入字段不能输入重复的数据,是否区分大小写的情况,如果输入重复数据,程序不能奔溃并且错误的提示信息正常(正常是409错误码)。修改 修改接口检验标准和新增接口类似。是否必填 对于强制输入的字段,是否必填,错误信息是否正确。字符长度 最长最短长度都要测。举个例子,比如数据库的一个字段类型是text,觉得需要测试它的上限么?答案是:要。一个真实案例,一个文章的内容一不小心可能就超过65535的上限,这个时候接口就出现500的错误咯数字边界 对于数字型的字段,测试上下边界非常重要。经常我们会忽略这点,举个例子,超过Integer上限并不是我们想象的那么遥不可及。合法数据 如枚举类型(1-上架;2-下架),电话号码、电子邮箱、时间格式等。特殊字符 特殊字符允不允许(业务决定),会不会导致数据库报错和乱码 是否存在SQL注入的可能。 是否存在xss攻击的可能。 带空格的字段 服务端是否有做trim操作,只输入空格是否正确保存。重复修改 修改不存在的数据:是否有合理的错误提示。(正常是404错误码)。 修改合理数据:是否修改删除 删除不存在的数据 是否有合理的错误提示。 删除合法数据 这个有几个Code Review点**是否删除成功(数据层面)** 删除后数据库应该是查不到的。(这个特别注意缓存的同步问题) 是真删除,还是伪删除。 删除后可以添加同样的数据记录。 不允许删除的数据 因为业务的需求,有些数据正在使用,所以不允许删除。根据业务情况,进行分析。删除数据的衍生影响 例如这个记录在其他表由被引用到,互联网产品一般情况下不用外键,所以要特别注意,衍生数据的影响和处理机制。(完)
阅读全文
0 0
- 提高服务端编码质量
- 使用Eclipse插件提高Java编码质量
- 使用Eclipse插件提高Java编码质量
- 利用sourceinsight宏(Quicker.em)提高编码效率和质量
- 提高编码质量的一些方法和工具(不断补充)
- 利用sourceinsight宏(Quicker.em)提高编码效率和质量
- 编码质量
- 提高你的Java代码质量吧:强烈建议使用UTF编码
- 如何提高睡眠质量
- 提高质量:不留小问题
- 如何提高项目质量
- 怎样提高睡眠质量?
- 体育运动,提高开发质量
- 如何提高睡眠质量
- 如何提高睡眠质量
- 如何提高代码质量?
- 如何提高睡眠质量?
- 提高代码质量
- 简单论述市场营销管理的基本过程
- 关于多线程的几个小程序。。。
- WebService技术详解 (一)
- c语言第六次练习题
- linux下编写I2C驱动与stm32通信(二)
- 提高服务端编码质量
- 小程序---仿百思不得姐
- Android四大组件—Service
- 添加下拉列表
- Linux 中对标准输入进行键盘事件监听
- javaweb项目编写webservice接口
- ApiDoc 自动生成API文档
- Struts2标签库和OGNL
- 这次我要为程序员说话