python - 是不是很多 Python 库的代码质量都比较低?

标签 python conventions

关闭。这个问题是opinion-based .它目前不接受答案。












想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.

上个月关闭。




Improve this question




编辑:自从提出这个问题以来,标准 Python 科学库(目标领域)中发生了很多改进。例如,numpy 项目在改进文档字符串方面做出了很大努力。人们仍然可以争论是否有可能从一开始就持续解决这些问题。

我有一个有点异端的问题:为什么这么多 Python 库有凌乱的代码并且不遵循标准的最佳实践?或者你认为这个观察绝对不是真的?与其他语言相比,这种情况如何?我对你对此的看法很感兴趣。

我觉得质量欠佳的一些原因:

  • 文档字符串通常完全缺失或不完整,即使对于公共(public) API 也是如此。当一个方法需要时很痛苦 *args**kwargs但没有记录可以给出哪些值。
  • 糟糕的 Python 编码实践,例如在 __init__ 之外添加新属性.这样的事情使代码难以阅读(或维护)。
  • 几乎没有任何库遵循 PEP8 编码约定。有时,单个文件中的约定甚至不一致。
  • 整体设计凌乱,没有清晰的API。似乎还没有完成足够的重构。
  • 单元测试覆盖率低。

  • 不要误会我的意思,我非常喜欢 Python 及其生态系统。即使我在使用这些库时遇到了困难,它们通常都能完成工作,对此我很感激。但我也认为最终会因为这些问题浪费大量的开发人员时间。也许那是因为 Python 给了你很大的自由,很容易写出糟糕的代码。

    最佳答案

    关于文档,不仅仅是 Python。如果有一个因素阻止了 OSS 的更广泛采用,那就是恕我直言,这是大多数 OSS 项目真正可怕的文档级别。这从代码级别开始并扩展到用户文档。我可以对任何从事 OSS 的人说:

    a) 注释您的代码!没有自记录代码这样的东西!

    b) 在最终用户文档上花费至少 25% 的项目时间预算。

    而且我确实模糊地知道我在说什么 - 我有几个自己的 OSS 项目,我为其他几个项目做出了贡献,而且我几乎只使用 OSS。昨天我花了 4 个多小时试图构建一个主要的 OSS 项目(没有名称,没有打包演习),但由于蹩脚的、自相矛盾的文档而失败。

    关于python - 是不是很多 Python 库的代码质量都比较低?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/602096/

    相关文章:

    python - Tornado/Twisted - Celery - Gevent 比较

    python - 使用 REGEX 提取模式之间的文本

    python - 导入 Pandas 时导致大量内存提交的原因

    ios - 注销/清除数据的 Objective-C 约定是什么?

    java - 循环条件变量的最佳实践

    c++ - 默认情况下,c++ 成员函数是否使用 cdecl+fastcall 约定编译?

    python - 正则表达式 搜索行尾和下一行的开头

    python - 如何向 Python 字典中的同一个键添加多个值

    php - mysql查询时区转换

    JavaScript 是否在新行上大括号?