数据科学 - 代码编写规范

2019-02-13  本文已影响17人  IntoTheVoid
  1. 编写干净且模块化的代码

    • PRODUCTION CODE:在生产服务器上运行的软件,用于处理实时用户和目标受众的数据。 请注意,这与生产质量代码不同,后者描述的代码满足生产的可靠性,效率等方面的期望。 理想情况下,生产中的所有代码都符合这些期望,但情况并非总是如此。
    • CLEAN:可读,简单,简洁。 生产质量代码的一个特征,对于软件开发中的协作和可维护性至关重要。
    • MODULAR:逻辑上分解为函数和模块。 此外,生产质量代码的一个重要特征是使您的代码更有条理,更高效,更可重用。
    • MODULE:一个文件。 模块允许通过将代码封装到可导入其他文件的文件中来重用代码。
  2. REFACTORING:重构代码以改进其内部结构,而不改变其外部功能。 呈现干净的代码和模块化程序。

    • 由于在最初实现某功能时, 要编写最佳代码并不容易,因此花时间来生成高质量代码至关重要。 尽管需要最初的时间和精力,但从长远来看,这可以通过加快开发时间来获得回报。
    • 当您不断寻求改进代码时,您将成为一名更强大的程序员。 重构经历越多,每当首次构造和编写好的代码就越容易。

3.1. Writing efficient code - 命名原则

3.2. Writing Clean Code - 合理的使用空格

For more guidelines, check out the code layout section of PEP 8 in the notes below.
PEP 8 guidelines for code layout

如下图所示


image.png
  1. 尝试每个函数使用少于三个参数
    在可能的情况下, 请尝试使用不超过三个参数。这不是一个硬性规则, 有时使用许多参数更合适。但在许多情况下, 使用较少的参数更有效。如果你的函数有很多参数, 你可能要重新考虑如何将其拆分, 而且一般来讲, 如果函数名中出现and, 那么考虑重构你的函数.

  2. 高效的代码

第一个技巧是在loop过程中尽可能的使用向量操作

image.png
有多种方式可以用Numpy和Pandas代替loop, 对于上图中的问题, 可以简化为如何找到两个Numpy arrays中的共同元素. 因此可以使用numpy.intersect1d`方法.

第二个小技巧是熟悉你所处理的数据结构, 并且判断是否在python中存在类似的数据结构, 对于这些数据结构是否由相应方法速度更快. 例如上图中可以通过set的相关方法

第三个技巧也是最重要的, 学会将自己的问题进行明确的描述, 并且善用Google!!!

上一篇 下一篇

猜你喜欢

热点阅读