全文共6616字,预计学习时长19分钟
来源:Pexels
数据科学团队倾向于向两个互相竞争的领域发展。
一方面,有一些数据工程师非常看重高度可靠,稳固的代码,这些代码承担的技术债务少。另一方面,有些数据科学家非常重视概念验证(e.g.设置)中想法和算法的快速原型设计。
虽然更成熟的数据科学功能使双方之间拥有卓有成效的工作伙伴关系,建立了完善的CI / CD管道,并明确定义了职责分工,但早期团队通常由经验不足的数据科学家主导。所以,代码质量受到损害,技术债务以胶合代码,流水线丛林,无效的实验代码路径和配置债务的形式呈指数级累积[1]。
你能想象没有xkcd的生活吗?
最近,我写了一篇关于为什么数据科学家的代码倾向于遭受平庸之苦的评论文章,在这篇文章中,我希望介绍一些方法供新手数据科学家编写更清晰的Python代码并更好地构建小型项目,以及阐明减少技术债务在不经意间给你和所在团队带来的负作用。
下面的内容既不详尽也不足够严谨,旨在以浅显的方式介绍深层次建立数据科学项目的方式。有些要点很明显,有些则有点隐晦。
以下是本文内容的快速概述:(1)样式准则,(2)文档,(3)类型检查,(4)项目文件夹结构,(5)代码版本控制,(6)模型版本控制,(7)环境,(8)Jupyter笔记本,(9)单元测试,(10)记录。
Python 代码样式指引——PEP 8和linting
可读性非常重要,PEP8就是为此而打造,提供了编写简洁python代码的惯例。
符合PEP8规范是Pythonic代码的最基本要求。它表明你已经了解了Python开发人员的最基本预期。表明你能够与其他开发人员更轻松地协同合作,最重要的是,你的代码将更具可读性和一致性,并且更加方便自己理解。
在这里复制和重新格式化PEP8样式指南属于无用功。因此,你可以根据自己的喜好浏览pep8.org,查看示例并了解在微观层面(与在宏观层面或系统级别上编写简洁代码相反)上编写简洁代码的意义。
PEP8中提供的示例包括设置命名约定,缩进,导入和行长的标准。
顺便说一句, PEP8是应使用成熟的IDE(如看来像高级Python IDE的PyCharm)而非Sublime这样的简单文本编辑器来编写代码的原因之一。适用于Python的重量级IDE通常会遵循PEP8样式指南,它会在违反PEP8原则或自动重新格式化代码库时发出警告。
以下是四个(尽管实际上还有许多种)命令行工具,通过对源代码执行静态分析,以保持其简洁和一致性:
1. PyLint-最受欢迎的linter。它能够检查源代码,并充当错误和质量检查器。它比PEP8具有更多的验证检查和选项。但是,根据默认设置,它的输出有点过于繁琐,输出量偏大。
2. Black-自动重新格式化Python代码。 Black将重新格式化整个文件的格式,并格式化字符串以使其添上双引号。
3.