如何减少python等动态语言中的错误,提高代码质量?

时间:2012-12-05 11:57:12

标签: python

我一直遇到像Python这样的动态语言的问题。

有几个问题

  1. 错字错误,我可以使用pylint来减少这些错误。但仍有一些错误,pylint无法弄清楚。
  2. 对象类型错误,我经常忘记参数是什么类型的,int?海峡?一些对象?另外,忘记了代码中某些对象的类型。
  3. 单元测试有时可能对我有帮助,但我并不总是有足够的时间去做UT。当我需要一个脚本来做一个小工作时,代码行是100 - 200行,不大,但我没有时间进行单元测试,因为我需要尽快使用脚本。因此,出现了许多错误。

    那么,关于如何减少这些麻烦的任何想法?

2 个答案:

答案 0 :(得分:4)

单元测试处理此问题的最佳方法。如果您认为测试花费了太多时间,那么在您发布代码之后,问问自己在缺陷上花了多少时间 - 识别,诊断和纠正。

实际上,您正在进行生产测试,并且有大量证据表明在开发周期后期发现的缺陷可能需要花费数量级才能修复。

答案 1 :(得分:2)

除了单元测试(参见chamila_c的答案),坚持良好的约定和编码风格也有帮助。我想我知道你正在讨论的那种一次性脚本(假设这就是你所说的),并且经常为它们编写一个完整的测试套件似乎有些过分。其他一些可能有用的提示:

  • 将代码分解为函数。识别问题通常更容易,尤其是在处理一小段孤立的代码时的命名问题。为小功能编写单元测试也要容易得多。我发现使用这种方法意味着您不需要一个完整的测试套件来测试和隔离已识别的问题。
  • 坚持一致且富有表现力的命名惯例。例如,使用min_value = min(all_values)而不是a = min(b)之类的任意内容。功能名称也是如此,使用def calculate_mean(sequence)而不是def f(s)
  • 阅读并应用PEP8
  • 使用评论记录您的代码。编写代码时只需要几秒钟,这样可以更容易地找出返回时发生的情况。它令人惊叹的细节,你可以在一天内忘记!