处女座程序员,请喜欢 Black

本文介绍了高效编码的实践,强调了代码风格统一的重要性,推荐使用Black formatter工具,因为它能避免团队因风格差异引发的争论。同时,文章提到了pre-commit hooks在保证代码质量上的作用,它在提交前检查并修复代码问题,如格式、import排序等。通过预提交钩子,可以防止错误代码进入代码库,确保团队遵循良好的编码规范。
摘要由CSDN通过智能技术生成

5. Formatter工具

Formatter工具也有很多种,但是我们几乎没有去考查其它的formatter,就选择了black,只因为它的logo:

The Uncompromising Code Formatter

与其它Formatter工具提供了体贴入微的自定义配置不同,Black坚持不让您做任何自定义(几乎)。这样做是有道理的,允许定制只会让团队陷入到无意义地争辩当中,而风格并无对错,习惯就好。我们常常看到在团队里,一些人为代码风格争论,其实他们反对的并不是某种风格本身,他们只是在反对自己的同事而已。

当然Black还是开了一个小窗口,允许你定义代码行的换行长度,Black的推荐是88字符。有的团队会把这个更改为120字符宽,按照阴谋论的观点,幕后的推手可能是生产带鱼屏的资本力量。

在ppw生成的项目中,我们把black的设置放在pyproject.toml中:

[tool.black]
line-length = 88
include = '\.pyi?$'

另外一个值得一提的工具是isort。它的作用是对代码中的import语句进行格式化,包括排序,将一行里的多个导入拆分成每行一个导入;始终把导入语句置于正式代码之前等等。通过 ppw向导生成的项目,这个工具也开箱即用的:

[tool.isort]
profile = "black"

这里的配置是防止isort与black相冲突。实际上flake8、black和isort都的配置需要精心同步才能避免冲突。一时发生冲突,就会出现这样的情况,被A工具改过的代码,又被B工具改回去,始终无法收敛。

比较遗憾的是,在vscode下没有一个好的工具可以自动移除没有使用的导入。Pycharm是可以做到这一点的。开源的工具中有可以做到这一点的,但是因为容易出错,这里也就不推荐了。

在vscode中,Lint工具可以检查出未使用的导入,然后您需要手动移除。移除未使用的import是必要的,它可以适当加快程序启动速度,降低内存占用,并且避免导入带来的副作用。

在这里插入图片描述

6. pre-commit hooks

我们把pre-commit hooks放在这一章里介绍,是因为高效的编码也必须是正确的编码。有时候我们会觉得国内的公司不需要计划和文档,需求、设计和编码各方之间不需要反复协商和沟通,一个指令下来,就很快得到执行。这被认为是执行力强,是一大体制优势,但这些“执行力”强的公司,却又累得要死。方向不正确,累死又有何益?

pre-commit是一个python包,可以通过pip安装:

$ pip install pre-commit

pre-commit安装后,会在你的项目目录下创建一个.git/hooks目录,里面有一个pre-commit文件。这个文件是一个shell脚本,它会在你执行git commit命令时被调用。pre-commit hooks的作用是在你提交代码之前,对代码进行检查,如果有错误,就会阻止你提交代码,从而保证代码库不被这些错误的、不合规范的代码污染。

如果使用向导生成项目的话,向导已经为您安装了pre-commit hooks,当您运行git commit命令时,就会看到这样的输出:

可以看出,pre-commi

程序员喜欢用各种不同品牌和型号的电脑来编写代码,而不仅限于特定的品牌或型号。然而,根据个人需求和偏好,有一些特定的电脑可能更受程序员青睐。 首先,程序员一般偏向选择高性能的电脑,因为编写代码的过程可能涉及到运行大型开发环境、编译大量代码和处理复杂的算法。因此,他们通常会选择配备快速处理器和大内存容量的电脑,以提高代码执行效率和工作流程。 其次,程序员通常喜欢使用具有良好的键盘和触控板的电脑。对于长时间敲击键盘的工作,舒适和敲击反馈非常重要,因此程序员会选择一台键盘手感好、按键反应灵敏的电脑。此外,触控板的灵敏度和易用性也对于辅助代码编辑和导航至关重要。 此外,程序员通常关注电脑的屏幕质量和分辨率。他们需要清晰、高分辨率的显示屏来显示复杂的代码和图形界面。另外,颜色准确度和色彩鲜艳也是他们重视的因素,因为这有助于更好地调试和调整代码。 最后,程序员也更愿意选择运行稳定且可靠的操作系统。虽然有很多不同的操作系统可供选择,但大多数程序员会选择类Unix系统(如Linux或macOS)或微软的Windows系统,这些操作系统提供了广泛的开发工具和支持,同时也更容易与其他开发者进行协作。 综上所述,程序员在选择用于编写代码的电脑时会考虑性能、键盘触控板质量、屏幕质量以及操作系统稳定性等因素,并根据自己的需求和偏好做出选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

量化风云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值