歡迎光臨
每天分享高質量文章

這7大神器, 讓你的Python 代碼更易於維護

開源最前線(ID:OpenSourceTop) 編譯

鏈接:https://opensource.com/article/18/7/7-python-libraries-more-maintainable-code

當軟體專案進入“維護樣式”時,對代碼的可讀性和編碼標準經常就忽略了(甚至從一開始就沒有建立起這些標準。)但是,在代碼庫中保持一致的風格和測試標準是減少維護負擔的重要因素,它能確保未來的開發人員能夠快速瞭解新的專案情況 – 並保持專案的良好運行

保護專案未來可維護性的一個好方法就是使用外部庫來檢查你的代碼運行狀況。以下是我們最喜歡的一些用於檢查代碼的庫(包含檢查PEP 8和其他樣式錯誤),讓代碼風格保持一致,並確保在專案成熟時的測試改寫率保持在可接受範圍。

檢查你的代碼風格

PEP 8是Python代碼風格規範,它對行長度,縮進,多行運算式和命名約定等內容有明確的規範。你的團隊可能也有自己的代碼規則,可能與PEP 8略有不同。但是,任何代碼風格都是為了在代碼庫中強制實施一致的標準,使其更具可讀性,從而更易於維護。這裡有三個庫來幫助美化你的代碼。

1、 Pylint

Pylint 是一個 Python 代碼分析工具,它分析 Python 代碼中的錯誤,查找不符合代碼風格標準(Pylint 預設使用的代碼風格是 PEP 8)和有潛在問題的代碼。 。它與幾個流行的編輯器和IDE很好地集成,也可以從命令列運行。

要安裝,請運行 pip install pylint

要從命令列運行 Pylint,請運行 pylint [options] path/to/dirpylint [options] path/to/module.py。Pylint 會向控制台輸出不符合代碼風格標準以及錯誤代碼的地方

你還可以呼叫 pylintrc 配置檔案來自定義 Pylint 檢查的錯誤。(專案地址:https://www.pylint.org/

2、Flake8

Flake8是一個“Python工具,它將PEP8,Pyflakes(類似於Pylint),McCabe(代碼複雜性檢查器)和第三方插件集合在一起,以檢查某些Python代碼的風格和質量。”

要使用Flake8,要先運行 pip install flake8。然後運行 flake8 [options] path/to/dirflake8 [options] path/to/module.py 查看其錯誤和警告。

與Pylint一樣,Flake8允許對配置檔案檢查的內容進行一些自定義。它有非常清晰的文件,包括一些有用的Commit,可以作為開發工作流程的一部分自動檢查代碼。

Flake8能夠與流行的編輯器和IDE集成,但這些指令通常在文件中並沒有說明。要將Flake8與你喜歡的編輯器或IDE集成,可以在線搜索插件(例如 Sublime Text的Flake8插件)。(專案地址:http://flake8.pycqa.org/en/latest/

3、Isort

isort 可自動對 Python的 import陳述句進行排序和分段。可將大量的 import結構轉成非常適合閱讀的排版。(例如,標準庫匯入,第三方庫匯入,從你自己的專案匯入等),這樣可以提高可讀性,而且如果你匯入的庫較多,還能快速找到各個庫

安裝 isort pip install isort,然後運行 isort path/to/module.py。文件中提供了許多配置選項。例如,你可以配置 isort如何處理.isort.cfg檔案來執行一個庫的多行匯入。

與Flake8和Pylint一樣,isort還提供了將其與流行的編輯器和IDE集成的插件。(專案地址:https://github.com/timothycrosley/isort

分享你的代碼風格

記住從命令列手動為每個檔案運行linters是一件很痛苦的事情,你可能也不太喜歡通過運行 IDE 中某個插件來實現這個功能。另外,您的同事可能更喜歡別的方式,或者可能他們最喜歡的編輯器的沒有這個插件,或者你檢查代碼不夠細緻,久而久之,你們共享的代碼庫將變得混亂並且難以閱讀。


一個很好的解決方案是使用一個庫,自動將代碼重新按照PEP 8規範進行格式化。我們推薦的三個庫都有不同的自定義級別來控制如何格式化代碼,像pylint的和Flake8,你要先測試,看看它是否存在你接受不了卻無法更改的預設配置。

4、 Autopep8

Autopep8可以自動格式化你指定的模塊中的代碼。它將重新縮進行,修複縮進,刪除無關的空白,並重構常見的比較錯誤(如布爾和None值)。你可以在它的文件中查看完整的更改串列

安裝Autopep8,需要先運行 pip install –upgrade autopep8。要重新格式化代碼,請運行 pip install –upgrade autopep8 。然後執行 autopep8 –in-place –aggressive –aggressive 就可以重新格式化你的代碼。該aggressive標誌(和它們的數量),表明autopep8對你的代碼風格有多少控制權。(專案地址:https://github.com/hhatto/autopep8

5、 Yapf

Yapf是重新格式化代碼的另一種選擇,它帶有自己的配置選項串列。它與autopep8的不同之處在於它不僅僅解決了違反PEP 8規範的問題。它還重新格式化了沒有違反PEP 8規範的代碼,但沒有一致地設置樣式,可能是為了可讀性而格式化得更好。

要安裝Yapf,需要運行 pip install yapf。要重新格式化代碼,要運行 yapf [options] path/to/diryapf [options] path/to/module.py。(專案地址:https://github.com/google/yapf

6、 Black

在所有的代碼檢查工具中,Black算是比較新的一個。它與autopep8和Yapf類似,但限制比較多,它很少有自定義選項,這是重點,這意味著你無法自定義代碼風格。

Black支持Python 3.6+以上的版本,但可以格式化Python 2代碼。要使用Black,請運行 pip install black。要美化您的代碼,請運行:black path/to/dir或black path/to/module.py。(專案地址:https://github.com/ambv/black

檢查代碼的測試改寫率

假如你正在編寫測試,你需要確保對代碼庫提交的新代碼進行測試,並且不會降低代碼的測試改寫率。雖然測試改寫率的百分比不是衡量測試有效性和充分性的唯一指標,但它是確保專案中遵循基本測試標準的一種方法。為了測量測試改寫率,我們有一個建議:使用 Coverage 這個庫。

7、Coverage

Coverage有多種向你報告測試改寫率的方式,包括將結果輸出到控制台或HTML頁面,並提示哪些行號沒有改寫到。你可以設置配置檔案以自定義Coverage檢查的內容並使其更便於運行。

要安裝Coverage,請運行 pip install coverage。要運行程式並查看其輸出,請運行 coverage run [path/to/module.py] [args],接著你將看到程式的輸出。要查看哪些代碼行沒有被改寫,請運行 coverage report -m。(專案地址:https://coverage.readthedocs.io/en/latest/

持續集成工具

持續集成(CI)是在合併和部署代碼之前,自動檢查代碼風格錯誤和測試最小改寫率的一系列過程。有許多免費或付費的工具可以自動化這個過程,本文這裡就不詳細介紹了。但是,由於設置CI過程是將代碼塊刪除為更易於閱讀和維護的重要步驟,因此,你不得不重視。


●編號523,輸入編號直達本文

●輸入m獲取文章目錄

赞(0)

分享創造快樂