当前位置: 首页 > 科技观察

七套Python库快速提升您项目的代码可维护性_0

时间:2023-03-18 02:48:23 科技观察

七套Python库快速提升你项目的代码可维护性当软件项目进入“维护模式”时,原有代码的可读性和编码标准往往难以保证。(当然,这些标准在软件项目之初并不容易坚持。)但必须强调的是,保持代码库中风格和测试标准的一致性是减轻维护负担的重要前提。只有这样,我们才能确保未来的开发人员能够快速了解??新功能,并真正保持项目和应用程序的健康。保护项目未来可维护性的一种理想方法是利用外部库来检查代码的健康状况。以下是当前开发人员最喜欢的代码修饰库,这些库强制执行一致的样式并确保在项目成熟时可接受的测试覆盖率。检查您的代码风格PEP8是一组Python代码风格指南,为行长度、缩进、多行表达式和命名约定等内容提供了重要的执行规则。当然,您的团队可能有自己的风格规则,与PEP8略有不同。凭借代码风格指南,所有人都有相同的目标——在整个代码库中强制执行一致的标准,使其更具可读性并降低维护难度。对此,以下三套库可以帮助你高效提升代码质量。1.PylintPylint是一组用于检查PEP8风格违规和常见错误的库。它可以很好地与各种流行的编辑器和IDE集成,也可以通过命令行运行。你可以运行pipinstallpylint命令来安装它。要通过命令行使用Pylint,您需要运行pylint[options]path/to/dir或pylint[options]path/to/module.py。Pylint将向控制台输出有关样式违规和其他错误的警告。您还可以使用pylintrc配置文件自定义Pylint的错误检查。2.Flake8Flake8是一个“结合了PEP8、Pyflakes(类似于Pylint)、McCabe(代码复杂性检查器)和其他第三方插件来检查Python代码的风格和质量的Python工具。”要使用Flake8,您需要运行pipinstallflake8。然后,运行flake8[options]path/to/dir或flake8[options]path/to/module.py查看相关的错误和警告。与Pylint类似,Flake8也允许用户自定义配置文件的检查内容,里面包含了非常清晰的文档,比如一些实用的commithooks,用于在开发过程中自动检查代码片段。Flake8可以集成各种流行的编辑器和IDE,但是文档中通常不会提及相关说明。要将Flake8与您最喜欢的编辑器或IDE集成,请在线搜索相关插件(例如用于SublimeText的Flake8插件)。3.IsortIsort是一个库,它按字母顺序对您的导入进行排序,并将它们分成适当的部分(例如,标准库导入、第3方库导入、从您自己的项目导入等)。这提高了代码的可读性,并且在模块包含大量导入时更容易找到。要安装isort,您需要运行pipinstallisort,然后使用命令isortpath/to/module.py运行它。有关更多配置选项,请参阅文档。例如,通过isort.cfg文件,您可以配置isort如何处理来自一组库的多行导入。与Falke8和Pylint一样,isort也提供了多种插件来集成各种流行的编辑器和IDE。代码风格外包需要强调的是,在命令行中手动整理每个需要更改的文件的代码是一项痛苦的工作,而且您可能不喜欢特定插件在IDE中的工作方式。此外,您的同事可能更喜欢使用他们最喜欢的带有不同插件或根本没有插件的编辑器;或者你自己可能不想在梳理代码和调整警告上投入太多精力。随着时间的推移,这一切都会使您的共享代码库变得混乱且难以阅读。在这方面,一个理想的解决方案是拥有一个库,该库可以自动重新格式化代码以直接为您提供PEP8内容。我们在这里推荐的三套库都有不同程度的定制能力,也会以不同的默认方式格式化代码。这些默认值中的每一个都有利有弊,因此您可能希望像使用Pylint和Flake8一样测试它们,以查看哪些提供了最有效的自定义选项,以及哪些不可变默认值更适合您的需求。4、Autopep8Autopep8可以自动格式化你指定模块中的代码。它重新缩进、修复缩进、删除不必要的空格并重构常见的比较错误(例如布尔值与无)。感兴趣的朋友可以点击此处查看其文档中的完整更正列表。要安装Autopep8,您需要运行pipinstall--upgradeautopep8。要重新格式化代码,请运行autopep8--in-place--aggressive--aggressive。那里的攻击性标志(及其编号)表示您希望为autopep8提供多少代码风格控制空间。您可以在此处找到有关激进选项的更多详细信息。5.YapfYapf是另一个代码重新格式化选项,它提供自己的配置选项列表。与autopep8不同的是,yapf不仅解决了PEP8违规问题,还会对不违反特定PEP8规则的代码进行重新格式化——包括不符合样式一致性或存在其他可读性问题的部分,从而进一步提高代码的可维护性。要安装yapf,您需要运行pipinstallyapf。要重新格式化代码,请运行yapf[options]path/to/dir或yapf[options]path/to/module.py。您可以单击此处查看自定义选项的完整列表。6.BlackBlack是代码重组领域的后起之秀。它与autopep8和Yapf非常相似,但有自己的特点。关键是,Black提供的自定义选项非常有限。换句话说,基本思想是用户不应该决定代码风格,而应该交给Black。当然,您也可以查看有限的自定义选项,并将它们存储在配置文件中。Black需要使用Python3.6+,但也可以格式化Python2代码。要使用Black,您需要运行pipinstallblack。要格式化代码,您需要运行:blackpath/to/dir或blackpath/to/module.py。检查测试覆盖率在编写测试时,您需要确保它们在不降低测试覆盖率的情况下测试代码库中的新代码。虽然测试覆盖率并不是衡量测试有效性和充分性的唯一指标,但它无疑是确保项目遵循基本测试标准的重要方法之一。为了衡量测试覆盖率,我们向您推荐Coverage。7.CoverageCoverage有几个选项可以用来向您报告测试覆盖率,包括将结果输出到控制台或HTML页面,并指出哪些行号缺少测试覆盖率。您可以设置配置文件来自定义Coverage检查的内容并使其更易于运行。要安装Coverage,您需要运行pipinstallcoverage。要运行程序并查看其输出,您需要运行coveragerun[path/to/module.py][args],然后查看程序的输出。要获取哪些代码行未被测试覆盖,您需要运行coveragereport-m。持续集成工具持续集成(简称CI)是一系列流程,您可以运行这些流程来自动检查错误并在合并和部署代码之前提供最小的测试覆盖率。目前有很多免费或付费的工具可以自动完成上述目标,这里不再赘述。但是考虑到持续集成是实现代码可读性和可维护性的重要一环,这里推荐两个通用的持续集成工具:TravisCI和Jenkins。原标题:7Pythonlibraryformoremaintainablecode,作者:JeffTriplett