返回顶部
首页 > 资讯 > 前端开发 > node.js >怎么实现git代码规范
  • 486
分享到

怎么实现git代码规范

2024-04-02 19:04:59 486人浏览 独家记忆
摘要

这篇文章主要介绍“怎么实现git代码规范”,在日常操作中,相信很多人在怎么实现git代码规范问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么实现git代码规范”的疑惑有所帮

这篇文章主要介绍“怎么实现git代码规范”,在日常操作中,相信很多人在怎么实现git代码规范问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么实现git代码规范”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

ESLint 与约束

统一编码规范不仅可以大幅提高代码可读性,甚至会提高代码质量。当我们设计了一套关于编码规范的规则集时,需要工具去辅助检测,这就是 ESLint。

$ npm install eslint --save-dev

规则集需要统一集中配置,ESLint 会默认读取配置文件 .eslintrc 来解析,而规则集在 rules 中进行配置:

{   "rules": {     "semi": ["error", "always"],     "quotes": ["error", "double"]   } }

而我们需要做的是设定我们的代码规范,即 rules 项。

不要重复造轮子

我们需要推到重来,设计属于自己团队的一套编码规范吗?

完全没有必要推倒重来,既耗费人力,又难以做到规则的全部覆盖。

很多优秀的团队,都根据最佳实践设定了特别优秀的编码规范,比如 airbnb 设定了一套约束特别强的规范。另外也有一些特别简单但却十分实用的规范,如 eslint:recommended。

airbnb javascript style[2]

我们仅仅需要使用 extend 配置项去继承一些优秀的开源的代码规范,并使用 rules 做一些自己团队的规则补充。

{   "extend": ["airbnb-base"],   "rules": {     "semi": ["error", "never"]   } }

开发环境,生产环境与警告

开发环境对于开发而言重要的是什么?

是开发体验。

一个良好的编码规范会带来解放强迫症的舒适感,但过于严格的代码风格有时也会使人烦躁。试举两个小例子,有可能是在你写代码时出现过的场景:

  • 禁止掉 console.log,避免在生产环境输出多余的东西。但偏偏在测试环境经常需要调试,但是如果仅仅设为警告的话,警告又会被忽视,失去意义。

  • 特别是当设置了规则 no-unused-vars 时。如果仅仅是为了在开发时调试,却因为无法通过 ESlint 规则校验无法方便调试。

这是一个约束与自由的权衡,ESLint 在提供强有力约束时自然会牺牲一些开发上的便利性。中庸,儒家思想讲究中庸,此时可以在权衡下选择一个中庸的方案:

把 ESLint 的所有影响调试的规则校验都设置为 Warn,那你又问了警告往往不是会被忽略吗?是这样子的,所以需要在 CI 中设置环境变量 CI=true,如此在 CI 中即使有警告也无法交付。

如在 create-React-app 中的大部分规则都是设置为 Warn

怎么实现git代码规范

但是,如果你使用了 webpack,并且结合 eslint-loader,那解决方案就更加简单了:使用 emitWarning: true,在测试环境把所有 Error 都当做 Warn,这样避免了修改 ESLint 规则,WEBpack 的配置如下:

{   test: /\.(js|mjs|jsx|ts|tsx)$/,   enforce: 'pre',   use: [     {       options: {         cache: true,         emitWarning: true,       },       loader: require.resolve('eslint-loader'),     },   ] }

所以有两种权衡开发体验与编程规范的方式:

  • 把 ESLint 的 rule 设置为 Warn,并在持续集成中配置环境变量 CI=true。

  • 结合 webpack 与 eslint-loader,根据当前环境的环境变量配置 emitWarning。

第一层约束:IDE

当不符合代码规范的第一时间,我们就要感知到它,及时反馈,快速纠正,比直到最后积攒了一大堆错误要高效很多。

这里以 VS Code 作为示例,它只需要安装一个插件:eslint,便可以做到智能提示,来看看效果吧:

怎么实现git代码规范

另外,配合 eslint-loader,使用浏览器也可以做到实时提示:

怎么实现git代码规范

第二层约束:Git Hooks

团队合作中的编码规范有一点是,虽然自己有可能不舒服,但是不能让别人因为自己的代码而不舒服。

git 自身包含许多 hooks,在 commit,push 等 git 事件前后触发执行。与 pre-commit hook 结合可以帮助校验 Lint,如果非通过代码规范则不允许提交。

husky[3] 是一个使 git hooks 变得更简单的工具,只需要配置几行 package.JSON 就可以愉快的开始工作。

(1) husky 的原理是什么?

// package.json {   "scripts": {     "lint": "eslint . --cache"   },   "husky": {     "hooks": {       "pre-commit": "npm lint",     }   } }

或者结合 lint-staged[4] 调用校验规则

{   "husky": {     "hooks": {       "pre-commit": "lint-staged"     }   },   "lint-staged": {     "*.js|{lib,setup,bin,hot,tooling,schemas}*.js|testwebpack.config.js}": [       "eslint --cache"     ],     "*.{ts,json,yml,yaml,md}|examples*.{md,yml,yaml,js,json}": [       "cspell"     ]   } }

不过做前端的都明白,客户端校验是不可信的,通过一条命令即可绕过 git hooks。

$ git commit -n

怎么实现git代码规范

第三层约束:CI

git hooks可以绕过,但 CI(持续集成) 是绝对绕不过的,因为它在服务端校验。使用 gitlab CI 做持续集成,配置文件 .gitlab-ci.yaml 如下所示:

lint:   stage: lint   only:     - /^feature\/.*$/   script:     - npm lint

到此,关于“怎么实现git代码规范”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: 怎么实现git代码规范

本文链接: https://lsjlt.com/news/84976.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么实现git代码规范
    这篇文章主要介绍“怎么实现git代码规范”,在日常操作中,相信很多人在怎么实现git代码规范问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么实现git代码规范”的疑惑有所帮...
    99+
    2024-04-02
  • Python代码规范和命名规范
    前言 Python 学习之旅,先来看看 Python 的代码规范,让自己先有个意识,而且在往后的学习中慢慢养成习惯 目录 一、简明概述 1、编码 如无特殊情况, 文件一律使用 UTF-8 编码如无特殊情况, 文件头部必...
    99+
    2023-01-31
    代码 Python
  • Python 代码规范
    Python 学习之旅,先来看看 Python 的代码规范,让自己先有个意识,而且在往后的学习中慢慢养成习惯。 1、编码 如无特殊情况, 文件一律使用 UTF-8 编码 如无特殊情况, 文件头部必须加入#-*-coding:utf...
    99+
    2023-01-31
    代码 Python
  • Git的使用规范:如何避免代码冲突?
    Git是一款广泛使用的版本控制系统,它可以帮助团队协作开发,以及管理代码的版本。但是,当多个人同时修改同一个文件时,就有可能发生代码冲突的情况。本文将介绍Git的使用规范,以及如何避免代码冲突。 1. Git分支管理 Git的分支管理功能可...
    99+
    2023-10-15
    编程算法 javascript git
  • vue3+ts+EsLint+Prettier规范代码的方法实现
    目录使用 EsLint的使用添加配置文件 Prettier的使用使用husky和lint-staged构建代码 增加setting.json配置参考资料 本文主要介绍在Vu...
    99+
    2024-04-02
  • 怎么实现Promise/A+规范
    这篇文章给大家介绍怎么实现Promise/A+规范,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。我一度以为自己很懂Promise,直到前段时间尝试去实现Promise/A+规范时,才发...
    99+
    2024-04-02
  • PHP中的代码规范
    PHP是一种广泛应用于web开发的编程语言。定义一个好的代码规范能够提高代码的可读性,减少出错的概率,使代码更加易于维护。在PHP中,代码规范要尤为重要。本文将介绍PHP中常见的代码规范。缩进风格缩进是一种很重要的程序语言排版方式。对于PH...
    99+
    2023-05-24
    代码规范 PHP规范 编程规范
  • Git提交规范是什么
    本篇内容介绍了“Git提交规范是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、为什么需要规范无规矩...
    99+
    2024-04-02
  • Flex代码规范中MDI框架怎么用
    小编给大家分享一下Flex代码规范中MDI框架怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Flex代码规范1.MDI框架使用1.1.初始化参数处理函数注册窗口初始化事件:MessagesManager.getIns...
    99+
    2023-06-17
  • Vue代码规范有哪些
    这篇文章将为大家详细讲解有关Vue代码规范有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、JS部分1. 和渲染无关的数据vue中data的数据默认便...
    99+
    2024-04-02
  • JavaScript代码规范有哪些
    本篇内容介绍了“JavaScript代码规范有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!所有的 J...
    99+
    2024-04-02
  • C#代码规范有哪些
    C#代码规范有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1. 引言按照此规范来开发C#程序可带来以下益处:· 代码的编写...
    99+
    2023-06-17
  • Flex代码规范有哪些
    这篇文章给大家介绍Flex代码规范有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Flex代码规范1.前言1.1目的对于代码,首要要求是它必须正确,能够按照程序员的真实思想去运行;第二个的要求是代码必须清晰易懂,使...
    99+
    2023-06-17
  • Java代码规范有哪些
    这篇文章给大家介绍Java代码规范有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1.命名规范(1)所有的标示符都只能用ASCⅡ字母(A-Z或a-z)、数字(0-9)和下划线“_”。(2)一个***包名的前缀总是全...
    99+
    2023-06-17
  • css代码规范有哪些
    css 代码规范对于保持一致性、可读性和可维护性至关重要,常见的规范包括:命名约定:使用小写字母和短划线,命名特定且描述性。缩进和对齐:按特定规则缩进、对齐选择器、声明和值。属性和值顺序...
    99+
    2024-04-06
    css 代码可读性 排列
  • Java代码格式规范是什么
    本篇内容介绍了“Java代码格式规范是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!   public&n...
    99+
    2023-06-17
  • VS2022 Git提交代码怎么实现
    今天小编给大家分享一下VS2022 Git提交代码怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。第一种方法...
    99+
    2023-06-30
  • SQL代码编码原则和规范
    目录 专栏导读 1、先了解MySQL的执行过程 2、数据库常见规范 3、所有表必须使用Innodb存储引擎 4、每个Innodb表必须有个主键 ...
    99+
    2023-08-20
    sql 数据库 mysql
  • vue项目代码格式规范怎么设置
    本篇内容主要讲解“vue项目代码格式规范怎么设置”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue项目代码格式规范怎么设置”吧!为项目添加eslint使用vue-cli构建的项目,在项目构建时...
    99+
    2023-06-30
  • 怎么使用Commitizen规范代码提交信息
    这篇文章主要介绍了怎么使用Commitizen规范代码提交信息的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用Commitizen规范代码提交信息文章都会有所收获,下面我们一起来看看吧。什么是 Commi...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作