如何在开发和发布期间维护大型python项目

时间:2018-06-28 09:35:46

标签: python workflow qa

首先,我是一位遇到新挑战的C ++架构开发人员。我必须为大型python项目创建架构和工作流程。

我必须确保开发人员在交付工作时不会破坏代码,而且我必须知道在发布时我们不会破坏API兼容性。

我了解C ++开发并拥有许多好的实践和工具,但是我在python世界中迷失了。

我真的认为我绝对不能在Python开发中使用C ++范例,因为它肯定不是以相同的方式开发的。

在C ++中,我们拥有可帮助我们发现某些问题的编译器(警告/错误)。我并不是说一旦编译就可以使用,但至少我们具有API兼容性。我们还有代码覆盖率,静态分析以及其他几种方法,可帮助我们纠正/了解我们的代码具有一定质量。 我们使用面向对象的体系结构和代码审查。两者都可以使用C ++和python。我们还使用单元测试(C ++中的gtest,Python中的pytest)。但是所有这些都需要人类知识。

是否有任何工具可以帮助我们了解我们提供的高质量代码库?像Numpy,Scipy,TensorFlow这样的大型项目可以确保它们的发布很好吗?

有一些linters(pylinter),PEP8编码样式,我也看过python编译,但是没有任何真正的成功,但是我真的不知道该怎么办。

如果您知道一些好的工作方法和有用的工具,我将不知所措。

谢谢大家

1 个答案:

答案 0 :(得分:-1)

我认为您实际上应该能够从维护C ++到Python转移几乎所有已建立的概念,以维护您已经熟悉的代码质量标准,因为它们与语言无关。

很明显,代码审查和单元测试在某种程度上是可以的。 Python对单元测试有很好的支持。

对于自动代码分析,我知道的最好的工具是SonarQube,它可以进行功能强大的设置。例如,建立代码质量网关的可能性,如果不满足某些质量标准,该网关可以自动防止合并请求被合并。 SonarQube包括许多其他语言的Python静态代码分析器。

就学习如何编写“ pythonic” Python代码而言,i。 e。要获得经验丰富且经验丰富的Python开发人员批准的代码,我所知道的最佳资源是The Hitchhiker's Guide to Python。最后,编写好的代码才是真正重要的,不是吗?

  

但是所有这些都需要人类知识。

完全正确。工具可以支持使我们能够生成高质量代码的良好工作流程,但最终还是要由我们来编写代码,不是吗?至少现在...