打造高效Python后端项目:这些工具你不能错过

尽管很多人知道我一直在使用Java,但鲜为人知的是,在过去几年里,我也一直在用Python默默地开发后端API服务器项目。在这个过程中,我探索并发现了几种极为有用的工具。它们不仅优化了我的开发流程,还特别在团队合作方面发挥了重要作用。在这篇文章中,我将分享这些工具,并解释为何它们成为我Python项目中不可或缺的一部分。

1. pip-compiler

我们通常通过简单的pip install package_name命令安装Python包,并将这些包列在项目文件夹内的“requirements.txt”文件中。但是,我的团队成员经常会对这个文件表示不解,他们反映:“这个文件列了很多内容,我却不明白我们究竟安装了哪些包。”

项目规模的不断扩大带来了依赖管理的复杂性,要清晰地识别不同库之间的依赖关系对于我们来说是一大挑战。在这种背景下,合理地管理这些依赖显得尤为重要。

在面对众多依赖管理的挑战时,我发现“pip-compilers”库极为有用。“pip-compilers”是一种工具,其独到之处在于允许开发者通过不同的文件来细分管理各个包。这样,无论是在开发还是在生产环境中,我们都能够清晰地知道每个包的用途,并了解它们的来源。这种方法极大地简化了对于项目依赖的管理,使得整个过程既高效又可靠。

以下是一个简单的使用说明。

  • Python环境中使用以下命令安装pip-compilers。

PythonCopy code

pip install pip-tools

  • 创建原始的requirements.in文件。
fastapi  
boto3  
beanie  
cryptography  
motor  
dependency-injector  
gunicorn  
requests

  • 将requirements.in文件编译为requirements.txt。
pip-compile --output-file requirements-dev.txt [requirements.in](http://requirements.in)

  • 然后我们可以看到以下文档,并使用该文件安装Python包。
#
# 该文件由pip-compile自动生成,使用的Python版本为3.8
# 通过以下命令生成:
#
#    pip-compile --output-file=requirements-dev.txt requirements.in
#
anyio==3.6.2
    # 通过starlette依赖
beanie==1.19.1
    # 通过-r requirements.in依赖
boto3==1.26.141
    # 通过-r requirements.in依赖
botocore==1.29.141
    # 通过
    #   boto3
    #   s3transfer

...

# 以下包在requirements文件中被认为是不安全的:
# setuptools

pip-compilers的功能包含在pip-tools库中。因此,我们可以通过安装pip-tools包来使用pip-compilers。如果你需要更详细的说明,请参考仓库中的文档。

Pip-tools: pypi.org/project/pip…

2. pre-commit

在编写代码时,保持一致性和规范至关重要,这就像是我们写文章时遵循的文法规则一样。在这个过程中,pre-commit就像一个严格的老师,确保我们提交的每一行代码都符合规定的标准。它不允许任何不符合规则的代码通过,就好比老师在批改作业前,先要求每份作业的格式要统一。这样做的好处是显而易见的:它不仅提升了代码质量,还避免了那些由于格式混乱或小错误而产生的后期维护成本。

举个例子,代码格式的一致性,就像文章的排版一样,对于团队协作极为重要。一个小小的缩进错误或者多余的空白,可能看起来无伤大雅,但长此以往,会像错别字累积成语病一样,给项目带来不小的困扰。

使用pre-commit工具,就像给代码库装上了一道防护门。任何不符合预设规则的代码,都无法通过这道门。这样一来,我们就能保证只有那些精雕细琢、符合规范的代码能够被纳入代码库,就像只有经过校对无误的文章才会发表一样。

接下来,让我们动手安装pre-commit吧。按照下面的步骤,你会发现,引入这样一个工具其实是一件轻而易举的事。

  • 安装
# 使用pip
pip install pre-commit

# 将以下内容添加到你的requirements.txt文件中
pre-commit

  • 在你的项目根目录下添加“.pre-commit-config.yaml”文件。
repos:
-   repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v4.4.0
    hooks:
    -   id: trailing-whitespace
    -   id: end-of-file-fixer
        exclude: voice_biz.dmm
    -   id: check-yaml
    -   id: check-added-large-files
-   repo: https://github.com/pycqa/flake8
    rev: 6.0.0
    hooks:
    -   id: flake8
        exclude: src/tests
        additional_dependencies: [flake8-docstrings]

  • 安装git钩子脚本
pre-commit install

这样我们就完成了使用pre-commit的准备工作。

当然,你可以通过提交来测试它,但有一个简单的测试方法。

pre-commit run --all-files

使用pre-commit就好比在我们的代码库中安装了一个智能助手。在你准备提交代码的时候,它会自动检查你的包是否都被用到了。这就像在你出门前,有个助手提醒你带上钥匙和手机,防止你遗忘。这样的预先检查显著提高了代码库的整洁度和运行效率。

但pre-commit的聪明之处不止于此。它的设计允许我们根据自己的需求添加规则。就比如说,你希望每个新增的函数或类都必须有测试代码,这样可以确保代码的健壮性。那么,我们就可以为这个目标编写一个规则,让pre-commit在你提交代码前帮你检查。这就像是在我们的编程实践中添上了一道额外的质量保障。

想了解更多关于pre-commit的信息,可以访问它的官方网站:pre-commit.com

简而言之,利用pre-commit,我们不仅可以保持代码库的干净整洁,还能确保编码规范得到遵守,使得整个团队的代码质量都得到提升。

---------------------------END---------------------------

题外话

感谢你能看到最后,给大家准备了一些福利!

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。


👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述

👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

若有侵权,请联系删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值