安全
  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. 探究Hybrid-APP技术原理

    探究Hybrid-APP技术原理 author: @TiffanysBear 背景 随着Web技术的发展和移动互联网的发展,Hybrid技术已经成为一种前端开发的主流技术方案.那什么是Hybrid A ...

  2. MyBatis从入门到精通:第二章数据的创建与插入文件

    数据库表的创建: create table sys_user ( id bigint not null auto_increment, ), user_password ), user_email ) ...

  3. c++小游戏——贪吃蛇

    #include #include #include #include #include <conio.h> #include #include <windows.h> usi ...

  4. PTA 打印沙漏

    https://pintia.cn/problem-sets/17/problems/260 #include <bits/stdc++.h> using namespace std; i ...

  5. [LeetCode] 6. ZigZag Conversion (Medium)

    原题链接 把字符串按照 ↓↗↓……的顺序,排列成一个 Z 形,返回 从左到右,按行读得的字符串. 思路: 建立一个二维数组来按行保存字符串. 按照 ↓↗↓……的方向进行对每一行加入字符. 太慢了这个解 ...

  6. cordova把我搞晕了

    天啦,搞了几十次,这次求你成功好吗?

  7. ASP.NET登录验证码解决方案

    目录 #验证码效果图 #代码 0.html代码 1.Handler中调用验证码生成类 2.验证码图片绘制生成类 3.高斯模糊算法类 #注意 #参考 在web项目中,为了防止登录被暴力破解,需要在登录的 ...

  8. 实现简单的 IOC 和 AOP

    1 简单的 IOC 1.1 简单的 IOC 容器实现的步骤 加载 xml 配置文件,遍历其中的标签 获取标签中的 id 和 class 属性,加载 class 属性对应的类,并创建 bean 遍历标签 ...

  9. 算法-一步步教你如何用c语言实现堆排序(非递归)

    看了左神的堆排序,觉得思路很清晰,比常见的递归的堆排序要更容易理解,所以自己整理了一下笔记,带大家一步步实现堆排序算法 首先介绍什么是大根堆:每一个子树的最大值都是子树的头结点,即根结点是所有结点的最 ...

  10. gRPC in ASP.NET Core 3.0 -- Protocol Buffer(1)

    现如今微服务很流行,而微服务很有可能是使用不同语言进行构建的.而微服务之间通常需要相互通信,所以微服务之间必须在以下几个方面达成共识: 需要使用某种API 数据格式 错误的模式 负载均衡 ... 现在 ...