我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么实现git代码规范

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么实现git代码规范

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

VS2022 Git提交代码怎么实现

今天小编给大家分享一下VS2022 Git提交代码怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。第一种方法在fork
2023-06-30

Flex代码规范中MDI框架怎么用

小编给大家分享一下Flex代码规范中MDI框架怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Flex代码规范1.MDI框架使用1.1.初始化参数处理函数注册窗口初始化事件:MessagesManager.getIns
2023-06-17

Java代码格式规范是什么

本篇内容介绍了“Java代码格式规范是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!/** * Java编码格式个人推荐,参考JD
2023-06-17

vue项目代码格式规范怎么设置

本篇内容主要讲解“vue项目代码格式规范怎么设置”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue项目代码格式规范怎么设置”吧!为项目添加eslint使用vue-cli构建的项目,在项目构建时
2023-06-30

怎么使用Commitizen规范代码提交信息

这篇文章主要介绍了怎么使用Commitizen规范代码提交信息的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用Commitizen规范代码提交信息文章都会有所收获,下面我们一起来看看吧。什么是 Commi
2023-07-05

java代码规范的作用是什么

java代码规范的作用是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。代码规范有什么意义1.一个软件的生命周期中,80%的花费在于维护,代码规范降低了金钱成本和时间成本
2023-06-02

java代码规范七大原则是什么

Java代码规范的七大原则是:SRP(Single Responsibility Principle):单一职责原则,一个类只负责一个功能或职责。OCP(Open-Closed Principle):开闭原则,软件实体(类、模块、函数等)应
2023-10-27

规范GIT代码提交信息和自动化版本管理的方法

本篇内容介绍了“规范GIT代码提交信息和自动化版本管理的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前言git作为一个开发人员必不可少
2023-06-27

PyCharm代码规范化和格式化的实用技巧

PyCharm是Python开发者常用的集成开发环境(IDE),它提供了丰富的功能和工具来提高代码的质量和效率。其中,代码规范化和格式化是编写高质量代码的重要步骤之一。本文将介绍PyCharm中一些实用的技巧和功能,帮助开发者规范化和格式化
PyCharm代码规范化和格式化的实用技巧
2024-02-23

Java语言编码规范中如何实现布局

小编给大家分享一下Java语言编码规范中如何实现布局,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Java语言编码规范6.3 布局(Placement)只在代码块
2023-06-03

怎么用Python代码实现Apriori关联规则算法

这篇文章主要介绍了怎么用Python代码实现Apriori关联规则算法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用Python代码实现Apriori关联规则算法文章都会有所收获,下面我们一起来看看吧。一
2023-06-29

遵循PSR2和PSR4规范的代码合并与重构实践

引言:在软件开发中,代码合并和重构是非常常见的操作。代码合并指的是将多个分散的代码片段合并到一个文件或模块中,以提高代码的可读性和可维护性。而代码重构则指对现有代码进行改进,使其更加高效、可扩展和易于理解。本文将介绍如何在合并和重构代码时遵
2023-10-21

编程热搜

目录