随笔分类 -  编程规范

摘要:单元测试规约 单元测试 单元测试遵守 AIR 原则 【强制】好的单元测试必须遵守 AIR 原则。 说明:单元测试在线上运行时,感觉像空气(AIR)一样感觉不到,但在测试质量的保障上,却是非常关键的。好的单元测试宏观上来说,具有自动化、独立性、可重复执行的特点。 A:Automatic(自动化) I: 阅读全文
posted @ 2022-09-27 17:06 gcbeen 阅读(127) 评论(0) 推荐(0) 编辑
摘要:安全规约 用户数据 用户个人的页面 【强制】隶属于用户个人的页面或者功能必须进行权限控制校验。 说明:防止没有做水平权限校验就可随意访问、修改、删除别人的数据,比如查看他人的私信内容。 用户敏感数据 【强制】用户敏感数据禁止直接展示,必须对展示数据进行脱敏。 说明:中国大陆个人手机号码显示:139* 阅读全文
posted @ 2022-09-27 16:54 gcbeen 阅读(24) 评论(0) 推荐(0) 编辑
摘要:异常日志-日志规约 使用日志框架 SLF4J 【强制】应用中不可直接使用日志系统(Log4j、Logback)中的 API,而应依赖使用日志框架(SLF4J、JCL--Jakarta Commons Logging)中的 API,使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一。 说明: 阅读全文
posted @ 2022-09-27 15:53 gcbeen 阅读(315) 评论(0) 推荐(0) 编辑
摘要:异常日志-异常处理 异常定义 定义时区分 unchecked / checked 异常 【推荐】定义时区分 unchecked / checked 异常,避免直接抛出 new RuntimeException(),更不允许抛出 Exception 或者 Throwable,应使用有业务含义的自定义异 阅读全文
posted @ 2022-09-27 15:42 gcbeen 阅读(69) 评论(0) 推荐(0) 编辑
摘要:异常日志-错误码 错误码的制定 错误码的制定原则 【强制】错误码的制定原则:快速溯源、沟通标准化。 说明: 错误码想得过于完美和复杂,就像康熙字典中的生僻字一样,用词似乎精准,但是字典不容易随身携带并且简单易懂。 正例:错误码回答的问题是谁的错?错在哪? 1)错误码必须能够快速知晓错误来源,可快速判 阅读全文
posted @ 2022-09-27 11:51 gcbeen 阅读(166) 评论(0) 推荐(0) 编辑
摘要:编程规约-其他 工具类 避免用 Apache Beanutils 【强制】避免用 Apache Beanutils 进行属性的 copy。 说明:Apache BeanUtils 性能较差,可以使用其他方案比如 Spring BeanUtils, Cglib BeanCopier,注意均是浅拷贝。 阅读全文
posted @ 2022-09-27 11:25 gcbeen 阅读(24) 评论(0) 推荐(0) 编辑
摘要:编程规约-前后端 前后端交互的 API 【强制】前后端交互的 API,需要明确协议、域名、路径、请求方法、请求内容、状态码、响应体。 说明: A. 协议:生产环境必须使用 HTTPS。 B. 路径:每一个 API 需对应一个路径,表示 API 具体的请求地址: 代表一种资源,只能为名词,推荐使用复数 阅读全文
posted @ 2022-09-27 10:42 gcbeen 阅读(143) 评论(0) 推荐(0) 编辑
摘要:MySQL 数据库-ORM 映射规约 字段 POJO 类的布尔属性不能加 is,而数据库字段必须加 is_ 【强制】POJO 类的布尔属性不能加 is,而数据库字段必须加 is_,要求在 resultMap 中进行字段与属性之间的映射。 说明:参见定义 POJO 类以及数据库字段定义规定,在 sql 阅读全文
posted @ 2022-09-26 18:03 gcbeen 阅读(143) 评论(0) 推荐(0) 编辑
摘要:MySQL 数据库-SQL 语句规约 统计 标准统计行数的语法count(*) 【强制】不要使用 count(列名)或 count(常量)来替代 count(*),count(*)是 SQL92 定义的标准统计行数的语法,跟数据库无关,跟 NULL 和非 NULL 无关。 说明:count(*)会统 阅读全文
posted @ 2022-09-26 17:42 gcbeen 阅读(69) 评论(0) 推荐(0) 编辑
摘要:MySQL 数据库-索引规约 字段场景 业务上具有唯一特性的字段 【强制】业务上具有唯一特性的字段,即使是组合字段,也必须建成唯一索引。 说明:不要以为唯一索引影响了 insert 速度,这个速度损耗可以忽略,但提高查找速度是明显的;另外,即使在应用层做了非常完善的校验控制,只要没有唯一索引,根据墨 阅读全文
posted @ 2022-09-26 16:37 gcbeen 阅读(84) 评论(0) 推荐(0) 编辑
摘要:MySQL 数据库-建表规约 一、命名规约 小写字母或数字或下划线 表名、字段名必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间只出现数字。数据库字段名的修改代价很大,因为无法进行预发布,所以字段名称需要慎重考虑。 说明:MySQL 在 Windows 下不区分大小写,但在 Linux 阅读全文
posted @ 2022-09-26 16:06 gcbeen 阅读(84) 评论(0) 推荐(0) 编辑
摘要:编程规约-并发处理-锁 锁 考量锁的性能损耗 高并发时,同步调用应该去考量锁的性能损耗。能用无锁数据结构,就不要用锁;能锁区块,就不要锁整个方法体;能用对象锁,就不要用类锁。 说明:尽可能使加锁的代码块工作量尽可能的小,避免在锁代码块中调用 RPC 方法。 保持一致的加锁顺序 对多个资源、数据库表、 阅读全文
posted @ 2022-09-23 20:40 gcbeen 阅读(207) 评论(0) 推荐(0) 编辑
摘要:编程规约-并发处理 线程安全 保证线程安全 获取单例对象需要保证线程安全,其中的方法也要保证线程安全。 说明:资源驱动类、工具类、单例工厂类都需要注意。 SimpleDateFormat 是线程不安全的类 SimpleDateFormat 是线程不安全的类,一般不要定义为 static 变量,如果定 阅读全文
posted @ 2022-09-23 20:39 gcbeen 阅读(33) 评论(0) 推荐(0) 编辑
摘要:编程规约-集合处理 泛型 集合泛型定义 集合泛型定义时,在 JDK7 及以上,使用 diamond 语法或全省略。 说明:菱形泛型,即 diamond,直接使用<>来指代前边已经指定的类型。 正例: // diamond 方式,即<> HashMap<String, String> userCach 阅读全文
posted @ 2022-09-23 17:25 gcbeen 阅读(99) 评论(0) 推荐(0) 编辑
摘要:编程规约-处理Map List Set Map Collectors 类的 toMap()方法 相同键相关联的值之间的冲突 在使用 java.util.stream.Collectors 类的 toMap()方法转为 Map 集合时,一定要使用含有参数类型为 BinaryOperator,参数名为 阅读全文
posted @ 2022-09-23 17:17 gcbeen 阅读(82) 评论(0) 推荐(0) 编辑
摘要:编程规约-日期时间 日期格式化小写的 y 日期格式化时,传入 pattern 中表示年份统一使用小写的 y。 说明:日期格式化时,yyyy 表示当天所在的年,而大写的 YYYY 代表是 week in which year(JDK7 之后引入的概念),意思是当天所在的周属于的年份,一周从周日开始,周 阅读全文
posted @ 2022-09-23 15:10 gcbeen 阅读(83) 评论(0) 推荐(0) 编辑
摘要:编程规约-OOP使用 访问静态变量或静态方法 避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成本,直接用类名来访问即可。 不能使用过时的类或方法。 说明:java.net.URLDecoder 中的方法 decode(String encodeStr) 这个方法已经过时,应 阅读全文
posted @ 2022-09-23 15:09 gcbeen 阅读(59) 评论(0) 推荐(0) 编辑
摘要:编程规约-OOP定义 定义类 类内方法定义的顺序 依次是:公有方法或保护方法 > 私有方法 > getter / setter方法。 公有方法是类的调用者和维护者最关心的方法,首屏展示最好; 保护方法虽然只是子类关心,也可能是“模板设计模式”下的核心方法; 而私有方法外部一般不需要特别关心,是一个黑 阅读全文
posted @ 2022-09-23 15:08 gcbeen 阅读(107) 评论(0) 推荐(0) 编辑
摘要:编程规约-控制语句 符号 一、大括号 在 if/else/for/while/do 语句中必须使用大括号 说明:即使只有一行代码,也禁止不采用大括号的编码方式:if (condition) statements; 二、空行 当某个方法的代码总行数超过 10 行时,return / throw 等中断 阅读全文
posted @ 2022-09-08 12:02 gcbeen 阅读(95) 评论(0) 推荐(0) 编辑
摘要:编程规约-注释 注释要求 写注释 一、对于注释的要求: 第一、能够准确反映设计思想和代码逻辑; 第二、能够描述业务含义,使别的程序员能够迅速了解到代码背后的信息。 完全没有注释的大段代码对于阅读者形同天书, 注释是给自己看的,即使隔很长时间,也能清晰理解当时的思路; 注释也是给继任者看的,使其能够快 阅读全文
posted @ 2022-09-08 10:45 gcbeen 阅读(53) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示