本文參考了:html
代碼規範、測試是開發中很重要的一環,重要性無需我多說。咱們須要一些自動化工具,來幫助咱們更輕鬆地管理項目。本文推薦幾個實用的自動化工具。python
pre-commit 我在以前的一篇文章 推薦一些維護大型 Python 項目的工具中簡要提到過,這裏再稍微講一下。git
pre-commit 用到一個配置文件:.pre-commit-config.yaml
,官方文檔在這裏。這裏針對 Python 項目,但願 git precommit hooks 可以實現如下功能:能找出不符合 pep8規範的代碼,而且可以自動格式化。這須要用到兩個工具:black
和flake8
,black
自動格式化,flake8
檢測代碼不規範的地方。github
整個的 workflow 以下圖所示:bash
具體的執行步驟以下:jvm
pip install pre-commit
.pre-commit-config.yaml
配置文件pre-commit install
安裝git hooks到你的.git/
目錄咱們的.pre-commit-config.yaml
很簡單,以下:工具
repos:
- repo: https://github.com/ambv/black
rev: stable
hooks:
- id: black
language_version: python3.7
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v1.2.3
hooks:
- id: flake8
複製代碼
而後咱們下一次提交 commit 的時候,會先運行black
和flake8
,檢查出哪有不規範的地方,而且能自動幫你格式化。你修改以後從新提交 commit,就能順利提交了。post
實際操做一下:測試
新建一個測試文件:bad_pep8.py
:spa
有好幾處不符合 pep8規範,咱們試着 commit 一下:
能夠看到兩個 hook 都沒有經過,另外 black
幫咱們把代碼格式化了。
同時flake8
提示咱們x
變量定義了可是沒有使用,把這一行刪掉,而後從新add 並 commit:
若是你以爲沒有必要強制要求不能定義變量而不使用(從輸出能夠看出這個規範的編號爲F841),能夠在項目根目錄建一個.flake8
配置文件,以下圖。更加詳細的配置請看官方文檔。
[flake8]
ignore = F841
複製代碼