让我看看你们公司的代码规范都是啥样的?

news/2024/11/8 3:01:52/

 大厂面试题分享 面试题库

前后端面试题库 (面试必备) 推荐:★★★★★

地址:前端面试题库  web前端面试题库 VS java后端面试题库大全

我这里提供一份我自己在使用的项目代码规范,当然我这里比较简陋,有补充的可以打在评论区,我丰富到文章里去。

1.组件命名规范

components下的组件命名规范遵循大驼峰命名规范。

示例:conpnents/AlbumItemCard/AlbumItemCard.vue

小驼峰式命名法(lower camel case): 第一个单词以小写字母开始;第二个单词的首字母大写,例如:myName

大驼峰式命名法(upper camel case): 每一个单字的首字母都采用大写字母,例如:MyName

2.目录命名规范

pages下的文件命名规范:遵循小驼峰命名规范。

示例:pages/createAlbum/createAlbum.vue

3.CSS命名规范

class命名规范为中划线。

示例:

<template><view class="gui-padding">...</view>
</template>
<style lang="scss" scoped>
.gui-padding {...
}
</style>
复制代码

css使用scss进行书写。

4.代码注释规范

行内注释://

函数注释:

/*** @description: 加深颜色值* @param {string} color 颜色值字符串* @returns {*} 返回处理后的颜色值 */
export function getDarkColor(color: string, level: number) {const reg = /^#?[0-9A-Fa-f]{6}$/if (!reg.test(color)) return ElMessage.warning('输入错误的hex颜色值')const rgb = hexToRgb(color)for (let i = 0; i < 3; i++)rgb[i] = Math.round(20.5 * level + rgb[i] * (1 - level))return rgbToHex(rgb[0], rgb[1], rgb[2])
}
复制代码

接口注释:

/*** @description 获取后台用户分页列表(带搜索)* @param page* @param limit* @param username* @returns {<PageRes<AclUser.ResAclUserList>>}* @docs https://xxxx*/
export function getAclUserList(params: AclUser.ReqAclUserListParams) {return http.get<PageRes<AclUser.ResAclUserList>>(`/admin/acl/user/${params.pageNum}/${params.pageSize}`,{ username: params.username },)
}
复制代码

5.接口书写规范

4.1 接口定义规范:

接口全部写在api目录下面,按照功能划分,分为不同的目录。

比如搜索接口,定义在api/search/index.ts下面。

4..2 接口书写规范:

统一使用类方法,内部方法定义每个接口,最后统一export,接口使用到的类型全部定义在同级目录的interfaces.ts文件中。比如搜索相关的接口:

import Service from '../../utils/request'
import { SearchItemInterface, SearchPageResponseInterface, SearchParamsInterface } from "./interfaces"class CateGory extends Service {/*** @description 搜索功能* @param  {SearchParamsInterface} params 二级分类Id*/// 搜索getSearchAlbumInfo(params: SearchParamsInterface) {return this.post<SearchPageResponseInterface<SearchItemInterface[]>>({url: '/api/search/albumInfo',data: params})}/*** @description: 获取搜索建议* @param {string} keyword 搜索关键字* @return {*}*/getSearchSuggestions(keyword: string) {return this.get<string[]>({url: `/api/search/albumInfo/completeSuggest/${keyword}`,loading:false})}}export const search = new CateGory()
复制代码

4.3 接口类型定义:

// 搜索参数
export interface SearchParamsInterface {keyword: string;category1Id?: number | null;category2Id?: number | null;category3Id?: number | null;attributeList?: string[] | null;order?: string | null;pageNo?: number;pageSize?: number;
}
// 搜索结果item向接口
export interface SearchItemInterface {id: number;albumTitle: string;albumIntro: string;announcerName: string;coverUrl: string;includeTrackCount: number;isFinished: string;payType: stringcreateTime: string;playStatNum: number;collectStatNum: number;buyStatNum: number;albumCommentStatNum: number;
}
复制代码

4.4 接口引用

所有export的类接口方法都在api/index.ts中统一引入:

export { courseService } from './category/category'
export { albumsService } from './albums/albums'
export { search } from './search/search'
复制代码

在页面中使用:

<script>import { courseService } from "../../api"/*** @description: 获取所有分类* @returns {*}*/const getCategoryList = async () => {try {const res = await courseService.findAllCategory()} catch (error) {console.log(error)}}
</script>
复制代码

6.分支命名规范

分支管理命名规范解释
master 主分支master稳定版本分支,上线完成回归后后,由项目技术负责人从 release 分支合并进来,并打 tag
test 测试分支test/版本号示例:test/1.0.0测试人员使用分支,测试时从 feature 分支合并进来,支持多人合并
feature 功能开发分支feature/功能名称示例:feature/blog新功能开发使用分支,基于master建立
bugfix修复分支bugfix/功能名称示例:fix/blog紧急线上bug修复使用分支,基于master建立
release 上线分支release/版本号示例:release/0.1.0用于上线的分支,基于 master 建立,必须对要并入的 分支代码进行 Code review 后,才可并入上线

7.代码提交规范

前缀解释示例
feat新功能feat: 添加新功能
fix修复fix: 修改bug
docs文档变更docs: 更新文档
style代码样式变更style: 修改样式
refactor重构refactor: 重构代码
perf性能优化perf: 优化了性能
test增加测试test: 单元测试
revert回退revert: 回退代码
build打包build: 打包代码
chore构建过程或辅助工具的变动chore: 修改构建

 

 大厂面试题分享 面试题库

前后端面试题库 (面试必备) 推荐:★★★★★

地址:前端面试题库  web前端面试题库 VS java后端面试题库大全


http://www.ppmy.cn/news/53104.html

相关文章

从0搭建Vue3组件库(六):前端流程化控制工具gulp的使用

随着前端诸如webpack&#xff0c;rollup&#xff0c;vite的发展&#xff0c;gulp感觉似乎好像被取代了。其实并没有&#xff0c;只不过它从台前退居到了幕后。我们仍然可以在很多项目中看到它的身影&#xff0c;比如elementplus、vant等。现在gulp更多的是做流程化的控制。 比如…

2023年能源与环境工程国际会议(CFEEE 2023)

会议简介 Brief Introduction 2023年能源与环境工程国际会议(CFEEE 2023) 会议时间&#xff1a;2023年9月1日-3日 召开地点&#xff1a;中国三亚 大会官网&#xff1a;CFEEE 2023-2023 International Conference on Frontiers of Energy and Environment Engineering 由三亚纵横…

单例模式的四种创建方式

前言 单例模式是日常开发中最常见的一种设计模式&#xff0c;常用来做为池对象&#xff0c;或者计数器之类的需要保证全局唯一的场景。 单例模式的目的是保证在整个程序中只存在一个对象实例&#xff0c;使用单例一个前提条件就是构造器私有化&#xff0c;不允许通过new 对象…

Side Window Filtering 边窗滤波

原理分析 通常用常规图像算法做检测类的算法需要将图像特征增强&#xff0c;其中就需要滤波&#xff0c;把噪点去掉&#xff0c;如果直接用滤波&#xff0c;像高斯滤波&#xff0c;中值滤波&#xff0c;均值滤波等等&#xff0c;不仅会把噪点过滤掉&#xff0c;也会把图像的一些…

【MySQL】慢查询+SQL语句优化 (内容源自ChatGPT)

慢查询SQL语句优化 1.什么是慢查询2.优化慢查询3.插入数据优化5.插入数据底层是什么6.页分裂7.页合并8.主键优化方式10.count 优化11.order by优化12.group by 优化13.limit优化14.update 优化15.innodb 三大特征 1.什么是慢查询 慢查询是指执行SQL查询语句所需要的时间较长&a…

京东T7架构师用470页就把微服务架构原理与开发实战文档讲完了

前言 最近几年软件开发方法层出不穷&#xff0c;微服务作为一种主流的架构模式一直热度不减。 为了帮助广大程序员们更好更快地理解微服务的概念&#xff0c;学习微服务在项目中的实践&#xff0c;本文全面阐述了微服务架构模式的特点、架构思路、设计理念、技术框架及具体的…

thinkphp6(tp6)初步小尝试(记录一下)

thinkphp6&#xff08;tp6&#xff09;初步小尝试&#xff08;记录一下&#xff09; 一、服务器环境二、创建tp6项目三、配置apache四、创建应用五、各应用入口六、简单模板 一、服务器环境 操作系统&#xff1a;ubuntu-22.04.2-live-server-amd64集成xampp(Apache MariaDB …

ABI Research产业研究:ZiFiSense如何革新物流货物及运输包装追踪

“文章源自前沿科技研究机构ABI Research产业研究&#xff0c;重点介绍了ZETA LPWA协议开发公司纵行科技在业务发展、M-FSK调制技术以及ZETag云标签系列产品在物流货物追踪与包装管理等方面的应用分析&#xff0c;还分享了纵行科技ZETA技术在商业市场和生态系统方面的发展情况。…