美文网首页
学习笔记171010

学习笔记171010

作者: 一路逆风i | 来源:发表于2017-10-10 10:59 被阅读0次

    MySQL规约

    建表

    表名使用“[project或功能模块] 下划线 [实体类] 下划线 [从属信息等]”的形式进行命名,每个单词间都需要用下划线进行分割

    所有字段必须有注释,枚举值类型更要说明每个数值代表的具体含义

    自增主键的设置

    1.无特殊需求时,主键名使用id

    2.不允许为空并设为主键

    3.设置自增

    SQL

    count(*)会统计值为 NULL 的行,而 count(列名)不会统计此列为 NULL 值的行

    不得使用外键与级联,一切外键概念必须在应用层解决

    性能

    sql执行大于300ms的需要进行优化

    ORM

    数据更新时,不要更新无改动的字段,一是易出错;二是效率低;三是增加 binlog 存储

    敏感信息展示

    后端返回18766289569前端处理后显示187****9569

    参数有效性验证

    用户请求传入的任何参数必须做有效性验证  忽略参数校验可能导致:

    例如:page size 过大导致内存溢出

    SQL 注入


    防XSS安全开发规范

    所有暴露给前台的接口,都需要对参数进行校验:

    对非字符串参数必须有数据类型校验。

    字符串参数必须有长度校验,同时使用框架提供的工具进行XSS过滤和html转义

    用户身份校验相关的cookie,必须设置成httpOnly,从而禁止通过js代码操作cookie

    防CSRF安全开发规范

    后端filter中统一校验前端请求的Referer值,来自非本网站域名的请求禁止访问(暴露给第三方的接口除外)

    系统关键服务(涉及金钱操作或授权操作)需要进行token校验

    防文件上传攻击安全开发规范:

    必须有文件类型白名单校验(黑名单校验是不够的)

    必须有文件大小的校验

    必须有对文件名%00截断符的校验

    上传文件在服务器端必须重命名后保存

    文件保存路径不允许通过传入参数指定,必须保存在以下两个目录之一:

    /data/TRS/nas/files/protect (保存敏感文件,nginx不可达)

    /data/TRS/nas/files/public(保存公共文件,nginx可访问)

    分层规约

    controller职责描述

    搜集参数

    简单的参数验证

    处理服务级别业务并调用service层

    转发或重定向结果集

    service职责描述

    业务逻辑的实现

    dao层的调用

    处理事务

    dao职责描述

    数据库操作的实现

    service/dao 层方法命名规约

    获取单个对象的方法用 get 做前缀。

    获取多个对象的方法用 list 做前缀。

    获取统计值的方法用 count 做前缀。

    插入的方法用save做前缀。

    删除的方法用remove做前缀。

    修改的方法用update做前缀。

    OOP

    在spring的环境中,bean中不要声明类属性,单例模式下会产生数据污染。

    字符串处理、长度校验、时间处理等方法都有工具类,时刻想到先查找相关技能章节或询问开发导师是否有工具类后,再去自己造轮子。

    避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成 本,直接用类名来访问即可

    所有的覆写方法,必须加@Override 注解。

    反例:getObject()与 get0bject()的问题。

    一个是字母的 O,一个是数字的 0,

    加@Override 可以准确判断是否覆盖成功。

    另外,如果在抽象类中对方法签名进行修改,其实现类会马上编译报错。

    不能使用过时的类或方法。

    说明:例如java.net.URLDecoder 中的方法 decode(String encodeStr) 这个方法已经过时,应 该使用双参数 decode(String source, String encode)。接口提供方既然明确是过时接口, 那么有义务同时提供新的接口;作为调用方来说,有义务去考证过时方法的新实现是什么。

    所有的相同类型的包装类对象之间值的比较,全部使用 equals 方法比较。

    相关文章

      网友评论

          本文标题:学习笔记171010

          本文链接:https://www.haomeiwen.com/subject/tromyxtx.html