随笔分类 - 代码规约
摘要:总结的考试题库 多选 1.如何处理单元测试产生的数据,下列哪些说法是正确的?ABC A .测试数据入库时加特殊前缀标识。 B .测试数据使用独立的测试库。 C .自动回滚单元测试产生的脏数据。 D .无须区别,统一在业务代码中进行判断和识别。 解析: 【推荐】和数据库相关的单元测试,可以设定自动回滚
阅读全文
摘要:[阿里规约] -- 好记性不如烂笔头 ✏️ 1. 获取单例对象需要保证线程安全 【强制】获取单例对象需要保证线程安全,其中的方法也要保证线程安全。 说明:资源驱动类、工具类、单例工厂类都需要注意。 2. 请指定有意义的线程名称 【强制】创建线程或线程池时请指定有意义的线程名称,方便出错时回溯。 正例
阅读全文
摘要:[阿里规约] -- 好记性不如烂笔头 POJO(Plain Ordinary Java Object): 在本手册中,POJO 专指只有 setter / getter / toString 的简单类,包括 DO/DTO/BO/VO 等。 GAV(GroupId、ArtifactctId、Versi
阅读全文
摘要:1. 权限控制校验 【强制】隶属于用户个人的页面或者功能必须进行权限控制校验。 说明:防止没有做水平权限校验就可随意访问、修改、删除别人的数据,比如查看他人的私信 内容、修改他人的订单。 2. 用户敏感数据禁止直接展示 【强制】用户敏感数据禁止直接展示,必须对展示数据进行脱敏。 说明:中国大陆个人手
阅读全文
摘要:[阿里规约] 好记性不如烂笔头 🍓 1. 不要使用 * 作为查询字段 【强制】在表查询中,一律不要使用 * 作为查询的字段列表,需要哪些字段必须明确写明。 说明: 1)增加查询分析器解析成本。 2)增减字段容易与 resultMap 配置不一致。 3)无用字段增加网络消耗,尤其是 text 类型的
阅读全文
摘要:[阿里规约] 好记性不如烂笔头 🍓 ### 1. count(*)和count(列名)的区别 【强制】不要使用 count(列名)或 count(常量)来替代 `count(*)`,`count(*)`是 SQL92 定义的 标准统计行数的语法,跟数据库无关,跟 NULL 和非 NULL 无关。
阅读全文
摘要:[阿里规约] 好记性不如烂笔头 🍓 1.【强制】业务上具有唯一特性的字段,即使是多个字段的组合,也必须建成唯一索引。 说明:不要以为唯一索引影响了 insert 速度,这个速度损耗可以忽略,但提高查找速度是明 显的;另外,即使在应用层做了非常完善的校验控制,只要没有唯一索引,根据墨菲定律,必 然有
阅读全文
摘要:[阿里规约] 好记性不如烂笔头 🍓 1. 表达是与否概念的字段,必须使用 is_xxx 的方式命名 数据类型是 1unsigned tinyint(1 表示是,0 表示否)。 说明:任何字段如果为非负数,必须是 unsigned。 注意:POJO 类中的任何布尔类型的变量,都不要加 is 前缀,所
阅读全文
摘要:[阿里规约] 1)返回类型为基本数据类型,return 包装数据类型的对象时,自动拆箱有可能产生 NPE。 反例:public int f() { return Integer 对象}, 如果为 null,自动解箱抛 NPE。 2) 数据库的查询结果可能为 null。 3) 集合里的元素即使 isN
阅读全文
摘要:阿里手册异常日志篇:【强制】有 try 块放到了事务代码中,catch 异常后,如果需要回滚事务,一定要注意手动回滚事务。 容易让人忽略的是:方法上未加任何属性的@Transactional注解只能在抛出RuntimeException或者Error时才会触发事务的回滚,常见的非RuntimeExc
阅读全文
摘要:1.利用Try-Catch-Finally管理资源(旧的代码风格) 在java7以前,程序中使用的资源需要被明确地关闭,这个体验有点繁琐。 下面的方法读取文件,然后用System.out打印: private static void printFile() throws IOException {
阅读全文