1. 11 8月, 2023 1 次提交
  2. 10 8月, 2023 1 次提交
  3. 09 8月, 2023 1 次提交
  4. 06 8月, 2023 1 次提交
  5. 05 8月, 2023 1 次提交
  6. 19 7月, 2023 1 次提交
  7. 05 7月, 2023 1 次提交
  8. 01 7月, 2023 1 次提交
  9. 07 5月, 2023 1 次提交
  10. 13 4月, 2023 1 次提交
  11. 09 4月, 2023 2 次提交
  12. 31 3月, 2023 4 次提交
  13. 29 3月, 2023 1 次提交
  14. 27 3月, 2023 1 次提交
    • 查尔斯-BUG万象集's avatar
      升级:升级后端依赖 · 51a82d8f
      查尔斯-BUG万象集 提交于
      1.Spring Boot 2.7.8 => 2.7.10
      2.Redisson 3.19.0 => 2.20.0
      3.Easy Excel 3.2.0 => 3.2.1
      4.Knife4j 4.0.0 => 4.1.0(此版本已内置了 springdoc-openapi-ui 依赖)
      5.Hutool 5.8.11 => 5.8.16
      51a82d8f
  15. 26 3月, 2023 3 次提交
  16. 24 3月, 2023 1 次提交
  17. 23 3月, 2023 2 次提交
  18. 22 3月, 2023 1 次提交
  19. 20 3月, 2023 2 次提交
  20. 19 3月, 2023 2 次提交
  21. 11 3月, 2023 1 次提交
  22. 07 3月, 2023 1 次提交
  23. 06 3月, 2023 1 次提交
    • 查尔斯-BUG万象集's avatar
      重构:🔥 基于阿里巴巴 Java 开发手册(黄山版)重构各表基本结构(简化列名) · 405c821e
      查尔斯-BUG万象集 提交于
      1.MySQL数据库>建表规约>第9条:
      【强制】表必备三字段:id,create_time,update_time。
      说明:其中 id 必为主键,类型为 bigint unsigned、单表时自增、步长为 1。create_time,update_time 的类型均为datetime 类型,如果要记录时区信息,那么类型设置为 timestamp。
      个人理解:简化列名的目的是为了后续能抽取更多公共能力
      2.MySQL数据库>SQL语句>第10条:
      【推荐】SQL 语句中表的别名前加 as,并且以 t1、t2、t3、...的顺序依次命名。
      说明:
        1)别名可以是表的简称,或者是依照表在 SQL 语句中出现的顺序,以 t1、t2、t3 的方式命名。
        2)别名前加 as 使别名更容易识别。
      正例:select t1.name from first_table as t1 , second_table as t2 where t1.id = t2.id;
      405c821e
  24. 05 3月, 2023 5 次提交
    • 查尔斯-BUG万象集's avatar
      优化:优化分页查询条件 · 4cd4ad1f
      查尔斯-BUG万象集 提交于
      4cd4ad1f
    • 查尔斯-BUG万象集's avatar
      优化:基于阿里巴巴 Java 开发手册(黄山版)优化 Jackson 超大整数配置 · 8823211f
      查尔斯-BUG万象集 提交于
      1.编程规约>前后端规约>第6条:
      【强制】对于需要使用超大整数的场景,服务端一律使用 String 字符串类型返回,禁止使用 Long 类型。
      说明:Java 服务端如果直接返回 Long 整型数据给前端,Javascript 会自动转换为 Number 类型(注:此类型为双精度浮点数,表示原理与取值范围等同于 Java 中的 Double)。Long 类型能表示的最大值是 263-1,在取值范围之内,超过 253(9007199254740992)的数值转化为Javascript 的 Number 时,有些数值会产生精度损失。
      扩展说明,在 Long 取值范围内,任何 2 的指数次的整数都是绝对不会存在精度损失的,所以说精度损失是一个概率问题。若浮点数尾数位与指数位空间不限,则可以精确表示任何整数,但很不幸,双精度浮点数的尾数位只有 52 位。
      反例:通常在订单号或交易号大于等于 16 位,大概率会出现前后端订单数据不一致的情况。比如,后端传输的 "orderId":362909601374617692,前端拿到的值却是:362909601374617660
      8823211f
    • 查尔斯-BUG万象集's avatar
      95784e5c
    • 查尔斯-BUG万象集's avatar
      优化:优化成员变量相关注释及部分操作写法 · 39f26769
      查尔斯-BUG万象集 提交于
      成员变量有时候会被称为 Field 有时候会被称为 Property,它们的区别如下:
      1.Field:Field 是 Java 反射中描述类的属性信息的类。成员变量(Instance Variable)就是定义的字段(Field),例如 private String name;。Field 可以获取当前对象的成员变量的类型,对成员变量重新设值等。使用 Field 可以直接操作类的属性,不需要通过 getter 和 setter 方法,但是需要了解反射机制。
      2.Property:Property 是成员变量的 getter 和 setter 方法。例如,public String getName() { return name; } 和 public void setName(String name) { this.name = name; } 分别是获取和设置 MyField 类中的实例变量 name 的 getter 和 setter 方法。使用 Property 可以在类的外部访问和修改类的属性,但是需要注意访问权限和数据类型的正确性。
      综上所述,Field 和 Property 都可以用来表示 Java 类中的成员变量,选择哪种方式取决于具体的应用场景和需求。如果需要直接操作类的属性,可以使用 Field;如果需要在类的外部访问和修改类的属性,可以使用 Property。
      个人理解:从 MyBatis 的映射角度来说,column 表示数据库表列/字段,property 表示 Java 对象属性/字段,所以此前在涉及到 MyBatis 操作时,尽可能多的用了 Property 而不是 Field。但除了 MyBatis 之外还有很多地方也需要用到成员变量,与其纠结 Field 还是 Property,那就用 Field,简单粗暴一点。
      39f26769
    • 查尔斯-BUG万象集's avatar
      优化:基于阿里巴巴 Java 开发手册(黄山版)优化日志配置 · 44fa7266
      查尔斯-BUG万象集 提交于
      1.异常日志>日志规约>第2条:
      【强制】日志文件至少保存 15 天,因为有些异常具备以“周”为频次发生的特点。对于当天日志,以“应用名.log”来保存,保存在/{统一目录}/{应用名}/logs/目录下,过往日志格式为:{logname}.log.{保存日期},日期格式:yyyy-MM-dd
      正例:以 mppserver 应用为例,日志保存/home/admin/mppserver/logs/mppserver.log,历史日志名称为 mppserver.log.2021-11-28
      2.异常日志>日志规约>第3条:
      【强制】根据国家法律,网络运行状态、网络安全事件、个人敏感信息操作等相关记录,留存的日志不少于六个月,并且进行网络多机备份。
      3.异常日志>日志规约>第9条:
      【强制】异常信息应该包括两类信息:案发现场信息和异常堆栈信息。如果不处理,那么通过关键字throws 往上抛出。
      正例:logger.error("inputParams: {} and errorMessage: {}", 各类参数或者对象 toString(), e.getMessage(), e);
      4.异常日志>日志规约>第12条:
      【推荐】可以使用 warn 日志级别来记录用户输入参数错误的情况,避免用户投诉时,无所适从。如非必要,请不要在此场景打出 error 级别,避免频繁报警。
      说明:注意日志输出的级别,error 级别只记录系统逻辑出错、异常或者重要的错误信息。
      44fa7266
  25. 04 3月, 2023 3 次提交
    • 查尔斯-BUG万象集's avatar
      优化:基于阿里巴巴 Java 开发手册(黄山版)优化部分变量和方法命名 · 47fa1422
      查尔斯-BUG万象集 提交于
      1.编程规约>命名风格>第14条:
      【推荐】在常量与变量命名时,表示类型的名词放在词尾,以提升辨识度。
      正例:startTime / workQueue / nameList / TERMINATED_THREAD_COUNT
      反例:startedAt / QueueOfWork / listName / COUNT_TERMINATED_THREAD
      2.编程规约>命名风格>第19条:
      【参考】各层命名规约:
        A)Service / DAO 层方法命名规约:
        1)获取单个对象的方法用 get 做前缀。
        2)获取多个对象的方法用 list 做前缀,复数结尾,如:listObjects
        3)获取统计值的方法用 count 做前缀。
        4)插入的方法用 save / insert 做前缀。
        5)删除的方法用 remove / delete 做前缀。
        6)修改的方法用 update 做前缀。
      个人理解及应用 🔥:
        1)在变量命名方面:
          a)方法体内局部变量,命名时表示类型的名词放在词尾,以提升辨识度;
            正例:nameList、nameArr。
          b)方法声明上参数(局部变量),命名时尽量采用复数形式,以和方法名保持一致;
            正例:List<String> listNameByIds(List<Long> ids);
          c)成员变量,命名时尽量采用复数形式。
        2)在方法命名方面:
          a)CRUD 类方法可以简化命名;
            正例:UserService:page、list、add、update、delete...;
            说明:UserService 是围绕 User 为核心的业务接口,简化命名的方法也很容易理解操作的是什么。
          b)其他方法,查询信息名词采用单数(与其纠结单数、复数,那就用单数,简单粗暴一点),以上述第2条要求为命名前缀。
            正例:RoleService:listNameByIds(根据 ID 查询名称列表)
                 RoleService:listRoleCodeByUserId(根据用户 ID 查询角色编码列表)
                 UserRoleService:listRoleIdByUserId(根据用户 ID 查询角色 ID 列表)
                 UserService:getByUsername(根据用户名查询用户)
      47fa1422
    • 查尔斯-BUG万象集's avatar
    • 查尔斯-BUG万象集's avatar
      优化:优化部分 @Query 的使用 · 304615ea
      查尔斯-BUG万象集 提交于
      304615ea