数据科学家编写良好代码的5条专业提示
以下建议是根据我在不同数据和工程团队的多个项目中担任数据科学家的经验得出的。许多数据科学家(包括我本人)并非来自计算机科学或软件开发背景,因此可能没有经过正式培训或良好的代码编写习惯。这些技巧应有助于数据科学家以易于生产的方式进行协作,以编写良好的代码并构建模型。
使用版本控制
这对于协作和备份都很重要。它使您可以跟踪项目在开发过程中的更改,这对于协调任务和鼓励尽职调查很有用。Git是一款功能强大的版本控制软件,能够分支开发的各个部分,跟踪和提交更改,从远程存储库推送和获取,以及将代码段合并在一起以克服必要的冲突。
使它可读
协作编码的关键组成部分是能够将其移交给其他开发人员进行审查和使用的能力,这意味着它必须易于阅读。这包括在必要时使用适当的变量名和函数名以及说明性注释,并定期包含引入代码段及其细节的文档字符串。遵循所用语言的相关样式指南(例如Python中的PEP-8)也很重要。
保持模块化
编写代码时,保持模块化很重要。也就是说,将其分解为较小的部分,这些部分作为整体算法的一部分执行单独的任务。此功能级别使您可以轻松进行以下操作:
控制变量的范围,
重用代码模块,
在进一步开发期间重构代码,
阅读,查看和测试代码。
编写测试
尝试考虑可以在代码旁边编写哪些测试,以检查假设和逻辑的有效性。这些测试可以是从预期输入和输出的模拟到一系列用于检查代码功能的单元测试的任何测试。 单元测试通常以可重复的方式行使最小代码单元(可以是方法,类或组件)的功能。例如,如果您正在对一个类进行单元测试,则测试可能会检查该类是否处于正确的状态。通常,代码单元是单独进行测试的:您的测试仅影响并监视对该单元的更改。理想情况下,这是“测试驱动开发”框架的一部分,用于鼓励在集成或部署所有软件之前对其进行全面的检查和测试,以最大程度地减少以后进行重构和调试所花费的时间。
生产代码
尝试编写代码,就像将其投入生产一样。这将养成良好的习惯,并且在不可避免(希望如此)投入生产时易于扩大规模。
考虑“算法效率”,并尝试进行优化以减少运行时间和内存使用。“大O表示法”在这里很重要。
还请考虑您的代码环境或生态系统,并避免依赖。也许在代码级别(例如Python virtualenv)或在操作系统级别(例如Docker容器)使用虚拟化。
题库