1. 08 9月, 2023 1 次提交
  2. 02 9月, 2023 1 次提交
  3. 01 9月, 2023 1 次提交
    • 查尔斯-BUG万象集's avatar
      chore: 升级后端依赖 · 5049e1e3
      查尔斯-BUG万象集 提交于
      1.Spring Boot 2.7.10 => 2.7.15
      2.Sa-Token 1.34.0 => 1.35.0.RC
      3.MyBatis Plus 3.5.3.1 => 3.5.3.2
      4.Easy Excel 3.2.1 => 3.3.2
      5.Hutool 5.8.16 => 5.8.20
      6.Knife4j 4.1.0 => 4.3.0
      7.Redisson 3.20.0 => 3.20.1
      8.ip2region 2.7.6 => 2.7.15
      9.spotless 2.28.0 => 2.30.0
      5049e1e3
  4. 31 8月, 2023 1 次提交
  5. 30 8月, 2023 1 次提交
  6. 29 8月, 2023 1 次提交
  7. 15 8月, 2023 3 次提交
  8. 14 8月, 2023 1 次提交
  9. 11 8月, 2023 1 次提交
  10. 10 8月, 2023 1 次提交
  11. 13 4月, 2023 1 次提交
  12. 09 4月, 2023 1 次提交
    • 查尔斯-BUG万象集's avatar
      refactor: 优化 springdoc-openapi 对象型参数处理 · ae8d2947
      查尔斯-BUG万象集 提交于
      1.使用 default-flat-param-object 全局设置对象型参数展示形式。此设置是在 springdoc-openapi v1.6.11 版本开始添加的新特性(详情请参阅:https://github.com/springdoc/springdoc-openapi/pull/1805),在此之前,只能在所有需要处理的对象型参数类上使用 @ParameterObject,工作量较大。
      2.作者在使用上方这个配置时还遇到了一个 Bug,那就是只要在对象型参数前使用了注解,例如:@Validated PageQuery pageQuery,这个配置就不会生效了。此问题已在 GitHub 提交了相应 issue(详情请参阅:https://github.com/springdoc/springdoc-openapi/issues/2181),并且 springdoc-openapi 社区某个小伙伴儿已在当前最新发布的 v2.1.0 和 v1.7.0 中修复。
      注意:由于当前使用的 Knife4j 版本其内部引入的 springdoc-openapi 相关依赖非最新版本,所以为了解决配置不生效问题,暂时将部分对象型参数移除了 @Validated 注解(除了 PageQuery,其他类当前也未实际添加校验,所以直接移除了)。当然如果不想移除的话,也可以从依赖上功夫,即移除 Knife4j 内引入的 springdoc-openapi 相关依赖,然后自行添加 springdoc-openapi 相关依赖并指定最新版本即可。
      ae8d2947
  13. 31 3月, 2023 1 次提交
  14. 26 3月, 2023 4 次提交
  15. 24 3月, 2023 1 次提交
  16. 20 3月, 2023 1 次提交
  17. 09 3月, 2023 1 次提交
  18. 07 3月, 2023 1 次提交
  19. 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
  20. 04 3月, 2023 2 次提交
    • 查尔斯-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
      优化:基于阿里巴巴 Java 开发手册(黄山版)优化方法排序及访问权限修饰符 · 4779d772
      查尔斯-BUG万象集 提交于
      1.编程规约>OOP规约>第20条:
      【推荐】当一个类有多个构造方法,或者多个同名方法,这些方法应该按顺序放置在一起,便于阅读,
      此条规则优先于下一条。
      2.编程规约>OOP规约>第21条:
      【推荐】类内方法定义的顺序依次是:公有方法或保护方法 > 私有方法 > getter / setter 方法。
      说明:公有方法是类的调用者和维护者最关心的方法,首屏展示最好;保护方法虽然只是子类关心,也可能是“模板设
      计模式”下的核心方法;而私有方法外部一般不需要特别关心,是一个黑盒实现;因为承载的信息价值较低,所有
      Service 和 DAO 的 getter / setter 方法放在类体最后。
      3.编程规约>OOP规约>第26条:
      【推荐】类成员与方法访问控制从严:
        1)如果不允许外部直接通过 new 来创建对象,那么构造方法必须是 private。
        2)工具类不允许有 public 或 default 构造方法。
        3)类非 static 成员变量并且与子类共享,必须是 protected。
        4)类非 static 成员变量并且仅在本类使用,必须是 private。
        5)类 static 成员变量如果仅在本类使用,必须是 private。
        6)若是 static 成员变量,考虑是否为 final。
        7)类成员方法只供类内部调用,必须是 private。
        8)类成员方法只对继承类公开,那么限制为 protected。
        说明:任何类、方法、参数、变量,严控访问范围。过于宽泛的访问范围,不利于模块解耦。思考:如果是一个
        private 的方法,想删除就删除,可是一个 public 的 service 成员方法或成员变量,删除一下,不得手心冒点汗吗?
        变量像自己的小孩,尽量在自己的视线内,变量作用域太大,无限制的到处跑,那么你会担心的。
      4779d772
  21. 03 3月, 2023 1 次提交
    • 查尔斯-BUG万象集's avatar
      优化:基于阿里巴巴 Java 开发手册(黄山版)优化常量及包命名 · 1257a4bc
      查尔斯-BUG万象集 提交于
      1.编程规约>常量定义>第4条:
      【推荐】不要使用一个常量类维护所有常量,要按常量功能进行归类,分开维护。
      说明:大而全的常量类,杂乱无章,使用查找功能才能定位到要修改的常量,不利于理解,也不利于维护。
      正例:缓存相关常量放在类 CacheConsts 下;系统配置相关常量放在类 SystemConfigConsts 下。
      2.编程规约>常量定义>第5条:
      【推荐】常量的复用层次有五层:跨应用共享常量、应用内共享常量、子工程内共享常量、包内共享常
      量、类内共享常量。
        1)跨应用共享常量:放置在二方库中,通常是 client.jar 中的 constant 目录下。
        2)应用内共享常量:放置在一方库中,通常是子模块中的 constant 目录下。
        反例:易懂常量也要统一定义成应用内共享常量,两个程序员在两个类中分别定义了表示“是”的常量:
        类 A 中:public static final String YES = "yes";
        类 B 中:public static final String YES = "y";
        A.YES.equals(B.YES),预期是 true,但实际返回为 false,导致线上问题。
        3)子工程内部共享常量:即在当前子工程的 constant 目录下。
        4)包内共享常量:即在当前包下单独的 constant 目录下。
        5)类内共享常量:直接在类内部 private static final 定义。
      1257a4bc
  22. 02 3月, 2023 1 次提交
    • 查尔斯-BUG万象集's avatar
      新增:新增功能权限适配及校验 · 94be1f95
      查尔斯-BUG万象集 提交于
      1.后端 API 注解鉴权使用方式:@SaCheckPermission("system:user:add")
      2.前端全局指令函数使用方式:v-permission="['system:user:add']"
      3.前端权限判断函数使用方式:checkPermission(['system:user:add'])
      94be1f95
  23. 26 2月, 2023 1 次提交
  24. 07 2月, 2023 1 次提交
  25. 30 1月, 2023 1 次提交
  26. 25 1月, 2023 1 次提交
  27. 23 1月, 2023 1 次提交
  28. 21 1月, 2023 1 次提交
  29. 14 1月, 2023 1 次提交
  30. 10 1月, 2023 1 次提交
  31. 09 1月, 2023 1 次提交
  32. 05 1月, 2023 1 次提交
  33. 02 1月, 2023 2 次提交