pre-commit的规范

正如pre-commit的字面意思, 他的功能就是在commit之前做一些检测.  大多数是用来检测代码的规范,当然你可以加各种奇葩的需求,当你git commit的时候git会自动调用该脚本. 

说来有意思,我见过的python程序员,要不很规范,要不很洒脱。 我是属于那种写脚本很洒脱随意,写项目比较规范的一类人。 用ide的人还好一点,尤其是那种用vim和emas的python工程师(没有配置flake8) , 这代码真是没法看呀… 哥们我真是受够了,  大家每次写那种有前端页面的项目时,代码出奇的规范(为啥?   因为前端的ide),每当写底层服务时候,也还行,但很多时候一个人负责一个单独的项目,这时候代码的规范就不好保证了…   

这么多人一起开发,每个人都有自己所谓的规范,谁都不服谁,我个人也觉得pep8的标准有些地方不尽人意,比如文档说明,orm的命名规范,测试模块,所以我们有自己的pep8加强版.  配合pre-commit能很方便的检测规范我们自定义的标准. 

该文章写的有些乱,欢迎来喷 ! 另外文章后续不断更新中,请到原文地址查看更新.   http://xiaorui.cc/?p=3829

怎么用pre-commit来检查代码?

pre-commit的步骤还是比较简单的,主要是下面这几步.

第一步

把上面配置写项目根目录下的 .pre-commit-config.yaml 文件里.

下面是我自个用的pre-commit配置, repo地址是pre-commit-hooks的地址,你也可以fork一个版本自己做一些调整,但一般来说官方提供的库包已经足够了.

第二步,  安装pre-commit 

第三步, 提交代码来检测pep8代码规范.

git commit的时候会调用pre-commit,pre-commit又会调用flake8校验你的代码是否符合python pep8的标准.  另外pre-commit也带了自修复的功能.  但是这个修复是那种特明显的 .

我们可以在本地来测试代码pep8规范, 也就是说 不用非要git commit动作才开始检测.


单纯的flake8配置可以写在 ~/.config/flake8 , 也可以直接按照参数来运行检测.

vim   ~/.config/flake8

注意:

关于的pre-commit配置直接可以采用pre-commit-hooks的repo地址,你也可以fork一个版本自己做一些调整,比如更贴合公司内部的规范,但一般来说官方提供的库包已经足够了。


下面是flake8的详细参数说明, 有兴趣的朋友可以看官网, http://flake8.pycqa.org/en/latest/faq.html:

如果你跟我一样很好奇git pre-commit怎么联动起来的 ?  我们可以看下当前项目.git/hoos/pre-commit文件. 是用shell写得一个小脚本,但里面的检查是python相关的.  最后通过exit值来判断是否允许commit.


其实我们也可以自己写一个 .git/hoos/pre-commit. 

顺便说下 vim flake8的结合:

如果你有vundle vim包管理器,那么直接贴这个配置就可以了.

END>



对Python及运维开发感兴趣的朋友可以加QQ群 : 478476595 !!!

另外如果大家觉得文章对你有些作用!   帮忙点击广告. 一来能刺激我写博客的欲望,二来好维护云主机的费用.
如果想赏钱,可以用微信扫描下面的二维码. 另外再次标注博客原地址  xiaorui.cc  ……   感谢!
暂无相关产品