安全
  1. 所有入参均经过校验,包括验证参数数据类型、范围、长度,尽可能采用白名单形式验证所有的输入。对于非法请求,记录WARN log。参考Input Validation Cheat Sheet;前后端统一校验标准,最好统一自动生成代码。
  2. 避免拼接客户端可控参数到SQL语句,采用预编译形式执行SQL,尽可能使用#{},特殊场景需使用${}时必须对参数做严格校验,比如限制类型、长度等。
  3. 对于服务端内部异常,统一返回Error Code和Error Message,避免返回Stacktrace等内部系统细节,参考统一异常处理&错误码规范使用说明
  4. 所有接口读写敏感数据前必须增加 session 鉴权,校验数据归属为当前登录账户。
  5. 敏感信息不要硬编码到代码中(比如密码等)。
  6. 非公开页面或资源,必须要求服务端身份验证。
  7. 符合Least Privilege原则,具备逻辑严密的权限配置。
  8. 重要数据变动皆有审计日志,日志中不要保存敏感信息(系统详细信息、会话session或密码等)。
  9. 所有上传文件类型必须要做白名单检查,且统一存储到OSS。
  10. 禁止在代码中留任何形式的后门
兼容性
  1. 所有的模块外部接口不存在兼容性问题;
  2. 如果有DB Migration,说明需在发布前或发布后执行,兼容平滑发布;
  3. 所有的DB Schema变动均已考虑对统计的影响;
  4. 数据的含义或处理逻辑有变更时,考虑对存量/在途数据的影响;
性能
  1. 相关DB查询有恰当的索引;
  2. 接口处理时间与数据库中既有数据量不存在相关性;
  3. 批量数据处理、定时任务、离线处理等重度DB和计算的任务,需与业务进程隔离,尽可能用只读数据源;
  4. 严格控制批量导入功能的开发;
  5. 对与高Hit Ratio的查询进行缓存处理。数据更新时,根据业务需求采用合适的缓存刷新策略;
  6. 全文搜索相关的使用ES进行支持;
  7. 没有WHERE的语句需要加上LIMIT;
质量
  1. 相当的可读性,可自解释,不可自解释的地方有相应的注释。外部接口有详细Java Doc,DB Schema有详细注释,并有相应的E-R图;
  2. 主要流程被Unit Test覆盖;
  3. 通过SonarLint检测没有严重Issue;
  4. DB业务关键字段加上NOT NULL Constraint;
标准
  1. HTTP Return Code
  2. 正常请求返回200
  3. 非法参数返回400
  4. 未登录或没有权限返回403
  5. 服务器内部错误返回500,并给出Error ID(Request ID),但隐藏Error细节
  6. Git Commit的Comment需带上禅道的Issue No,如: TASK-\d+ *** 或者BUG-\d+ ***

Java相关|Code Review Checklist(Server)的更多相关文章

  1. Code Review Checklist

    左按:当年需要一份详细的代码评审清单作参考,翻译了此文. 版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[-] General Code Smoke Test 通用测试 Comm ...

  2. Code Review Checklist and Guidelines for C# Developers

    Checklist1. Make sure that there shouldn't be any project warnings.2. It will be much better if Code ...

  3. IDEA工具java开发之 常用插件 git插件 追加提交 Code Review==代码评审插件 撤销提交 撤销提交 关联远程仓库 设置git 本地操作

    ◆git 插件 请先安装git for windows ,git客户端工具 平时开发中,git的使用都是用可视化界面,git命令需要不时复习,以备不时之需 1.环境准备 (1)设置git (2)本地操 ...

  4. Code Review Engine Learning

    相关学习资料 https://www.owasp.org/index.php/Code_review https://www.owasp.org/images/8/8e/OWASP_Code_Revi ...

  5. 基于GitLab的Code Review教程

    一.前言 1.本文主要内容 GitLab Code Review机制说明 Git Workflow 与 Git Code Review Workflow GitLab Code Review 配置说明 ...

  6. Code review应该怎么做

    代码评审有两种不同的方法,一种是代码走查,一种是代码审查,我们这里讨论的仅指代码走查.通常自己写的代码都难以发现问题,需要以第二双眼睛再次检查代码,帮助我们及时地发现潜在的问题. 做代码审查之前,团队 ...

  7. 关于Gerrit code review 介绍与安装

    代码审核(Code Review)是软件研发质量保障机制中非常重要的一环,但在实际项目执行过程中,却因为种种原因被Delay甚至是忽略.在实践中,给大家推荐一款免费.开放源代码的代码审查软件Gerri ...

  8. 如何搭建开源code review gerrit服务器

    搭建环境:Ubuntu 14.04 一.环境准备 1.Java环境 gerrit依赖,用于安装gerrit环境. 下载:jdk-7u79-linux-x64.tar.gz http://www.ora ...

  9. Code Review Tools

    Code Review中文应该译作“代码审查”或是“代码评审”,这是一个流程,当开发人员写好代码后,需要让别人来review一下他的代码,这是一种有效发现BUG的方法.由此,我们可以审查代码的风格.逻 ...

随机推荐

  1. 图片去水印工具:Inpaint 7.2中文专业破解版下载及使用方法

    下载地址: 点我 Inpaint 是一款可以从图片上去除不必要的物体,让您轻松摆脱照片上的水印.划痕.污渍.标志等瑕疵的实用型软件:简单说来,Inpaint 就是一款强大实用的图片去水印软件,您的图片 ...

  2. NetCore 获取appsetting.json 文件中的配置

    1. using Microsoft.Extensions.Configuration public class HomeController : Controller { public IConfi ...

  3. CDQZ集训DAY4 日记

    早上起来之后发现座位被zzh占了,得知座位改为先来后到,什么鬼…… 于是去了另一个有耳机的机房,然而并没有什么卵用. T1上来感觉很有意思,先切50分再说.T2好像是原题的说,切了原题30分后大胆猜测 ...

  4. shell的用处到底大不大

    我曾在智联招聘等网站上搜寻有关shell脚本员的职位,与C++.JAVA等热门语言相比,冷清很多.看上去似乎招shell程序员的公司比较少.是不是公司不重视或者是很少用到shell这个东东呢?     ...

  5. springboot之mybatisplus,mp的简单理解

    这是一张简单的service的继承图.可以看到我们的执行类,即XxxServiceImpl的继承关系. 从上到下,ServiceImpl和BaseMapper是一个依赖关系,ServiceImpl和I ...

  6. 深入理解Java虚拟机一 阅读笔记

    xl_echo编辑整理.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.--这才是真正的堪称强大!! --- > 以下内容摘抄自 ...

  7. requests.exceptions.ChunkedEncodingError: ('Connection broken: IncompleteRead(0 bytes read)', IncompleteRead(0 bytes read))【已解决】

     问题: 跑python自动化时出现报错如下图 解决: requests请求时,后面加上参数:stream=True. 参考外国小哥:https://stackoverflow.com/questio ...

  8. Java中lambda表达式详解

    原文地址:http://blog.laofu.online/2018/04/20/java-lambda/ 为什么使用lambda 在java中我们很容易将一个变量赋值,比如int a =0;int ...

  9. 了解使用wireshark抓包工具

    一.简介 1.什么是wireshark 百度: Wireshark(前称Ethereal)是一个网络封包分析软件.网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料.Wires ...

  10. 微信小程序post 服务端无法获得参数问题

    header中需要改为 "Content-Type": "application/x-www-form-urlencoded"