欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > 【有来开源组织】开发规范手册

【有来开源组织】开发规范手册

2024/10/26 5:31:54 来源:https://blog.csdn.net/u013737132/article/details/141619970  浏览:    关键词:【有来开源组织】开发规范手册

🚀 作者主页: 有来技术
🔥 开源项目: youlai-mall 🍃 vue3-element-admin 🍃 youlai-boot
🌺 仓库主页: Gitee 💫 Github 💫 GitCode
💖 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请纠正!

目录

    • 前言
    • Java 代码规范
      • 命名规范
        • 包名
        • 类名
        • 实体名
        • 组件包名
        • 泛型通配符
      • 参数规范
        • 动态排序字段命名
        • 分页参数命名
        • 查询参数
      • 方法规范
        • 方法命名
        • 方法调用
        • 方法体
      • 数据库规范
        • 字段规范
        • 索引命名
    • Vue 代码规范
      • Vue.js 风格指南
      • 组合式 API 顺序
    • CSS 规范
      • CSS 命名(BEM)
    • Git 规范
      • 提交规范
      • 分支功能
      • 版本号命名规则
    • 参考

前言

为了确保代码的一致性、可读性和可维护性,并提高团队协作效率,我们有来开源组织制定了一套详细的开发规范。本指南涵盖了Java、CSS、Vue.js等多种编程语言和框架的编码标准,以及Git的使用规范。这些规范基于行业最佳实践和我们在实际项目中的经验总结,旨在为开发人员提供一个清晰、统一的编码标准,帮助每个成员编写高质量的代码。

Java 代码规范

命名规范

包名
  • 规则说明:统一使用单数形式,全小写。
  • 示例com.example.service
类名
  • 规则说明:可以使用复数形式,首字母大写+驼峰命名。
  • 示例UserServices
实体名
名称规则
dto远程调用传参
form前端表单传参
query查询传参 (查询参数大于5个建议封装query对象)
vo返回前端显示 (可使用dto代替)
entity映射数据库实体,和数据表字段完全一致

规则说明dtovo 实体类名带后缀且全大写。

  • 正例UserDTOUserVO
  • 反例UserDtoUserVo
组件包名
  • 规则说明:组件包父包,包括listener,handler等。
  • 示例com.example.component
泛型通配符
名称规则
EElement (在集合中使用,因为集合中存放的是元素)
TType(Java 类)
KKey(键)
VValue(值)
NNumber(数值类型)
表示不确定的Java类型
S、U、V2nd、3rd、4th types

参数规范

动态排序字段命名
名称字段名
排序字段名orderBy列名
排序规则sort升序:asc 降序:desc
分页参数命名
名称字段名默认值
页码pageNum1
每页数量pageSize10
查询参数
  • 规则说明:查询参数大于5个建议封装为query对象。

方法规范

方法命名
作用域示例
列表查询getUserList / listUsers / getUsers
分页查询getUserPage / listPagedUsers
单个查询getUser / getUserDetail / getUserInfo
方法调用
  • 规则说明:禁止Service跨实体直接调用Mapper。
  • 正例UserService 直接调用 UserMapper
  • 反例UserService 直接调用 DeptMapper
方法体
  • 规则说明:单个方法体不建议超过50行或一屏,超过建议封装。

数据库规范

字段规范
  • 是与否概念is_xxx使用is前缀意义更加明确,考虑兼容性、扩展性和移植性建议类型为tinyint而非bit
  • 必有字段idcreate_timeupdate_time
索引命名
类型规则
普通索引idx_cloumn_name
唯一索引uk_cloumn_name

Vue 代码规范

Vue.js 风格指南

  • 参考:Vue.js 风格指南

组合式 API 顺序

<script setup>// import语句import { ref, computed, watch } from 'vue';// Props(defineProps)defineProps(['propA', 'propB']);// Emits(defineEmits)const emit = defineEmits(['update', 'delete']);// 响应式变量定义const count = ref(0);// Computedconst doubleCount = computed(() => count.value * 2);// Watcherwatch(count, (newValue, oldValue) => {console.log(`Count changed from ${oldValue} to ${newValue}`);});// 函数function increment() {count.value++;}// 生命周期onMounted(() => {console.log('Component mounted');});//Expose(defineExpose)defineExpose({ count, increment });
</script>

CSS 规范

CSS 命名(BEM)

  • 规则说明:遵循BEM命名法,保证类名的可读性和结构化。
  • 示例block__element--modifier

Git 规范

提交规范

  • 参考:Vue 规范 (Angular)
    • feat 增加新功能
    • fix 修复问题/BUG
    • style 代码风格相关无影响运行结果的
    • perf 优化/性能提升
    • refactor 重构
    • revert 撤销修改
    • test 测试相关
    • docs 文档/注释
    • chore 依赖更新/脚手架配置修改等
    • workflow 工作流改进
    • ci 持续集成
    • types 类型定义文件更改
    • wip 开发中,临时提交

分支功能

  1. master 为主分支
    • 原则只接受从develop的合并请求,不接受pr
  2. develop 为开发分支
    • 接受pr和feature的合并
  3. feature/* 为功能开发分支
    • 由开发人员提交代码并合并到develop分支
    • 不定期从develop分支合并到master,每次合并到master上为发一次版本,版本号应当调整

版本号命名规则

  • 主版本号.子版本号.修正版本号
    • 项目初版本时,版本号为 0.1.0
    • 局部修改或bug修正时,主版本号和子版本号不变,修正版本号加1
    • 增加部分功能时,主版本号不变,子版本号加1,修正版本号复位为0
    • 重大修改时,主版本号加1

参考

  • 阿里开发手册
    • 阿里巴巴 Java 开发手册(黄山版)
    • 阿里巴巴 Java 开发手册项目主页

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com