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


     大厂面试题分享 面试题库

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

    地址:前端面试题库  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命名规范为中划线。

    示例:

    1. <template>
    2. <view class="gui-padding">
    3. ...
    4. view>
    5. template>
    6. <style lang="scss" scoped>
    7. .gui-padding {
    8. ...
    9. }
    10. style>
    11. 复制代码

    css使用scss进行书写。

    4.代码注释规范

    行内注释://

    函数注释:

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

    接口注释:

    1. /**
    2. * @description 获取后台用户分页列表(带搜索)
    3. * @param page
    4. * @param limit
    5. * @param username
    6. * @returns {>}
    7. * @docs https://xxxx
    8. */
    9. export function getAclUserList(params: AclUser.ReqAclUserListParams) {
    10. return http.get<PageRes<AclUser.ResAclUserList>>(
    11. `/admin/acl/user/${params.pageNum}/${params.pageSize}`,
    12. { username: params.username },
    13. )
    14. }
    15. 复制代码

    5.接口书写规范

    4.1 接口定义规范:

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

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

    4..2 接口书写规范:

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

    1. import Service from '../../utils/request'
    2. import { SearchItemInterface, SearchPageResponseInterface, SearchParamsInterface } from "./interfaces"
    3. class CateGory extends Service {
    4. /**
    5. * @description 搜索功能
    6. * @param {SearchParamsInterface} params 二级分类Id
    7. */
    8. // 搜索
    9. getSearchAlbumInfo(params: SearchParamsInterface) {
    10. return this.post<SearchPageResponseInterface<SearchItemInterface[]>>({
    11. url: '/api/search/albumInfo',
    12. data: params
    13. })
    14. }
    15. /**
    16. * @description: 获取搜索建议
    17. * @param {string} keyword 搜索关键字
    18. * @return {*}
    19. */
    20. getSearchSuggestions(keyword: string) {
    21. return this.get({
    22. url: `/api/search/albumInfo/completeSuggest/${keyword}`,
    23. loading:false
    24. })
    25. }
    26. }
    27. export const search = new CateGory()
    28. 复制代码

    4.3 接口类型定义:

    1. // 搜索参数
    2. export interface SearchParamsInterface {
    3. keyword: string;
    4. category1Id?: number | null;
    5. category2Id?: number | null;
    6. category3Id?: number | null;
    7. attributeList?: string[] | null;
    8. order?: string | null;
    9. pageNo?: number;
    10. pageSize?: number;
    11. }
    12. // 搜索结果item向接口
    13. export interface SearchItemInterface {
    14. id: number;
    15. albumTitle: string;
    16. albumIntro: string;
    17. announcerName: string;
    18. coverUrl: string;
    19. includeTrackCount: number;
    20. isFinished: string;
    21. payType: string
    22. createTime: string;
    23. playStatNum: number;
    24. collectStatNum: number;
    25. buyStatNum: number;
    26. albumCommentStatNum: number;
    27. }
    28. 复制代码

    4.4 接口引用

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

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

    在页面中使用:

    1. 复制代码

    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后端面试题库大全

  • 相关阅读:
    用postman 推送消息到GCP的pubsub
    PaddleSeg 自定义数据类
    perl从文件中搜索关键字
    PHP代码审计——ThinkPHP基础
    「百川智能」获22亿元融资,腾讯、阿里、小米等参投
    Xavier(7):ubuntu主机减少 NVIDIA sdkmanager 及相关文件的占用空间
    Linux驱动开发——(六)按键中断实验
    微信小程序开发(二)
    Gitlab SSRF 漏洞复现 CVE-2021-22214
    pycharm使用Git拉取最新代码(配置了远程服务器)
  • 原文地址:https://blog.csdn.net/weixin_42981560/article/details/130413425