阿里巴巴代码规范4点

2023-05-16

阿里巴巴代码规范

一. 安全规约

  1. 前端、后端接口进行权限和角色校验
  2. 展示敏感数据时需脱敏(用户个人手机号码:137****3927)
  3. SQL注入问题(字符串拼接访问数据库),#表示先编译后引用,$表示直接拼接SQL
  4. 验证用户传入的参数,可能出现的问题:
    a) page size过大导致内存溢出
    b) 恶意order by导致慢查询
    c) 正则输入源串
  5. 表单、AJAX提交必须执行CSRF安全验证
  6. 在使用平台资源,譬如关心、电话、下单、支付时必须实现正确的防重放机制(平台登陆次数过多需要输入验证码,下单支付接口防重放可采用缓存交易或前端页面loading控制)
  7. 发帖、评论、发送即使消息等场景必须实现防刷、文本内容违禁词过滤等(鉴黄功能)

二.建表规约

  1. 是否概念字段,使用is_xxx命名,数据类型unsigned和tinyint(取非负数)。在pojo类中设置is_xxx和Xxx的映射关系
  2. 表名、字段名必须使用小写字母或数字 ,表名不使用复数名词
  3. 禁用保留字,保留字:desc、range、match、delayed
  4. 主键索引名为pk_字段名;唯一索引名uk_,普通索引名idx_ f) 小数类型为decimal,禁止使用float和double
  5. 如果存储的字符串长度几乎相等,使用char定长字符串类型。例如手机号
  6. 长度都超过5000后,独立出一张表后用text数据类型存取
    
  7. 表必备三字段:id,create_time,update_time j) 添加字段注释
  8. 冗余字段避免频繁修改的字段、不是varchar、不是唯一索引

三.索引规约

  1. 唯一特性的字段,即使是多个字段的组合,也必须建成唯一索引 组合索引遵循最左索引
  2. Join的字段数据类型必须一致;多表关联查询时关联字段必须有索引
  3. Varchar字段建立索引时必须指定索引长度(index_email(9)) 页面搜索严禁模糊或全模糊
  4. Orderby注意利用索引的有序性(where a= ?and b=? order by c;索引)
  5. 使用explain调试查询出sql语句使用了什么索引(用于检查sql)

四.SQL语句

  1. 不能使用count(列名)或者count(常量)代替count(*)
  2. Count和null和非null有关,返回非空记录数
  3. 使用sum()返回数据时,必须要使用ifnull(sum())代替计算
  4. 防止代码中出现空指针异常
  5. Isnull()判断是否为null值,null与任何值的比较都为null
  6. 代码中写分页查询逻辑时,若count为0时直接返回,避免执行后面的分页语句
  7. 不得使用外键和级联(在主键表更新一条id后,涉及外键的表需要同步更新)
  8. 数据订正,先使用select再进行更新、删除
  9. 推荐使用exists代替in

PDF说明文档:https://yq.aliyun.com/attachment/download/?id=2023

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

阿里巴巴代码规范4点 的相关文章

随机推荐

  • RustDesk实现win 和 ubuntu远程控制

    1 下载RustDesk http rustdesk com zh 2 在window上安装 xff1a 3 在Ubuntu上安装 xff0c 进入到下载目录下 xff0c 执行 sudo apt span class token oper
  • Linux系统自带spi驱动加载及应用程序编写方法详解

    硬件平台 xff1a 飞思卡尔IMX6 xff0c 内核版本 xff1a kernel3 0 35 Linux系统中 xff0c 和I2C一样 xff0c SPI也有系统自带的设备驱动程序 xff0c 位于源码目录下drivers spi
  • Linux shell 一键安装JDK脚本

    1 下载jdk 8u333 linux x64 tar gz压缩包 xff0c 放到服务器 home docker data 文件夹下 2 放到服务器任意目录下执行sh jdk install sh bin bash CRTDIR 61 p
  • Ubuntu20.04设置永久ip

    1 使用 ifconfig 查看ip和网关名称 2 修改 etc netplan 01 network manager all yaml的yaml文件中配置IP地址 sudo vi etc netplan 01 network manage
  • Ubuntu20.04不支持wayland和触摸键不能用的问题

    sudo vim etc gdm3 custom conf 把 WaylandEnable 61 false 的注释 号去掉 sudo service gdm3 restart
  • ubuntu20.04不显示wifi图标

    1 安装wifi网卡驱动 xff08 找一根网线接到电脑上 xff09 xff0c 打开ubuntu的软件和更新 更新完成后重启电脑手动选择wifi即可 前面的方法试过了一般就能解决问题 xff0c 如果还是不能解决问题就试试下面的方法 2
  • Ubuntu20.04开机自动运行sh脚本

    1 创建rc local service文件 sudo cp lib systemd system rc local service etc systemd system 2 然后修改rc local service sudo vim et
  • ps -ef与kill结合杀进程

    ps ef grep home docker data qidong html grep v grep awk 39 print 2 39 xargs kill 9 参数详解 xff1a 1 查看进程 xff08 进程中包含 home do
  • linux中shell脚本监控端口或者接口是否正常访问

    1 监听端口 sudo vim check port sh bin bash ETMPORT 61 netstat alnt grep c 34 9443 34 while ETMPORT eq 0 do sleep 10 ETMPORT
  • ubuntu 如何禁止Chrome弹出无法更新的提示窗

    方法1 禁用更新 sudo apt mark hold google chrome stable 目前发现过一段时间还是会提示更新 xff0c 可以设置开机自启运行这段代码 方法2 删除更新程序 rm rf Library Google G
  • Mysql查看数据库时区并设置时区

    当我们使用docker部署Mysql数据库后 xff0c 我们的数据库时区会有偏差 xff0c 下面我们看看如何解决 xff1a 1 查看数据库时区 show variables like 39 time zone 39 2 设置时区 修改
  • Linux环境下如何解压jar包,压缩jar包文件

    1 解压jar包文件里面的文件 jar xvf jar xvf test jar BOOT INF classes com hsc test MyTest class 解释说明 xff1a 解压 test jar包里面的MyTest cla
  • 基数排序

    基数排序 一 什么是基数排序二 基数排序的代码实现三 总结 一 什么是基数排序 基数排序属于非比较类排序 非比较类排序包括计数排序 基数排序 桶排序 基数排序是由计数排序改善而来的 xff0c 基数排序将整数或者字符串切分不同的数字或字符
  • win11怎么取消显示更多选项

    1 点击Windows键 xff0c 输入cmd xff0c 然后选择以管理员运行cmd xff0c 最后敲入下面命令 reg add HKCU Software Classes CLSID 86ca1aa0 34aa 4e8b a509
  • Docaker部署Nginx配置多个域名

    1 拉取nginx镜像 sudo docker pull nginx 2 映射端口指定配置文件和前端目录 sudo docker run d p 9524 9524 p 9525 9525 p 10080 10080 restart alw
  • 硬件消抖——开关并联电容的那点事儿

    硬件消抖 开关并电容的那点事儿 一年前做过的小脚丫的消抖实验和不消抖实验的区别 xff0c 开关如果不消抖 xff0c 产生的毛刺和电平变化确实给开关带来了不良影响 xff0c 比如按键不灵 xff0c 需要按暂停或者切换的时候要反复按多次
  • 微信电脑版登录不了了,怎么办?不显示二维码

    今天微信开发者工具不显示二维码 xff0c 很尬 xff0c 找了好了方法 xff0c 最满意的一个如下 xff0c 如果解决了 xff0c 记得给我点赞 电脑上无法登录微信的解决方法 xff1a 1 先退出电脑微信登录页面 2 按Win
  • eclipse集成git关联到gitee同步代码

    eclipse集成git关联到gitee同步代码 1 注册gitee2 eclipse集成git3 eclipse配置git4 gitee配置用户ssh公钥5 本地新建项目提交到本地git仓库6 本地git仓库提交到远程gitee仓库7 修
  • JavaEE互联网轻量级框架整合开发-1入门和技术基础-JDK代理

    JDK代理 1 定义接口 public interface HelloYuan public void sayHelloYuan 2 实现接口 public class HelloYuanImpl implements HelloYuan
  • 阿里巴巴代码规范4点

    阿里巴巴代码规范 一 安全规约 前端 后端接口进行权限和角色校验展示敏感数据时需脱敏 xff08 用户个人手机号码 xff1a 137 3927 xff09 SQL注入问题 xff08 字符串拼接访问数据库 xff09 xff0c 表示先编