如何使用Python进行大规模开发?
我很想了解Python的大规模开发,尤其是如何维护大型代码库如何使用Python进行大规模开发?,python,development-environment,Python,Development Environment,我很想了解Python的大规模开发,尤其是如何维护大型代码库 当您对方法的签名进行不兼容更改时,如何找到调用该方法的所有位置。在C++/Java中,编译器会为您找到它,您如何在Python中找到它 当您在代码的深处进行更改时,由于没有要查找的静态类型,如何找出实例提供的操作 你如何处理/防止打字错误 UnitTest是否用作静态类型检查的替代品 您可以猜到,我几乎只使用静态类型语言(C++/Java),但我想尝试使用Python来实现更大的程序。但是很久以前,我在使用clipper(dBas
- 当您对方法的签名进行不兼容更改时,如何找到调用该方法的所有位置。在C++/Java中,编译器会为您找到它,您如何在Python中找到它
- 当您在代码的深处进行更改时,由于没有要查找的静态类型,如何找出实例提供的操作
- 你如何处理/防止打字错误
- UnitTest是否用作静态类型检查的替代品
<强> UNITSATE是问题的关键解决方案。>(也适用于C++和java)
不太安全的“动态键入”世界将使您对代码质量不那么粗心 顺便说一下: 大规模开发并不意味着你只使用一种语言 大规模开发通常使用一些特定于问题的语言 所以我同意锤子问题:-)PS:我有一些修改开放源码python“吉他英雄”克隆版“着火的烦恼”的经验 在我看来,python并不真正适合于真正大规模的项目 我发现自己在开发时花了很大一部分时间调试与不兼容类型的分配相关的问题,而静态类型语言将在编译时毫不费力地揭示这些问题。 此外,由于类型是在运行时确定的,因此理解现有代码变得更加困难,因为您不知道当前正在查看的参数的类型 除此之外,在Python中使用内置函数
\uuu getattr\uuuu
的名称字符串调用函数通常比在其他编程语言中更为常见,因此要获得某个函数的调用图有点困难(尽管在某些静态类型语言中也可以使用其名称调用函数)
我认为Python在小规模软件、快速原型开发和将现有程序粘合在一起方面确实非常出色,但我不会将其用于大型软件项目,因为在这些类型的程序中,可维护性成为真正的问题,在我看来,python在这方面相对较弱。通常的答案是测试。您应该有一个广泛的单元测试套件并经常运行它,尤其是在新版本上线之前 动态类型语言的支持者认为无论如何都必须进行测试,因为即使在静态类型语言中,与类型系统的粗略规则的一致性也只涵盖了可能出错的一小部分。不要将螺丝刀用作锤子 Python不是一种静态类型的语言,所以不要试图以这种方式使用它 当你使用一个特定的工具时,你会用它来完成它的构建。对于Python,它意味着:
- 鸭式键入:不进行类型检查。只有行为才重要。因此,您的代码必须设计为使用此功能。一个好的设计意味着通用的签名,组件之间没有依赖性,高抽象级别。。因此,如果您更改了任何内容,就不必更改代码的其余部分。Python也不会抱怨,因为它是为什么而构建的。类型不是问题
- 庞大的标准库。如果您使用的标准功能不是您自己编写的,则不需要更改程序中的所有调用。Python自带电池。我每天都在发现它们。当我开始尝试像所有人一样重写现有的东西时,我不知道我可以使用多少个模块。没关系,你不能从一开始就做好
>>> x= SomeClass()
>>> dir(x)
class MyClass { }
class MyClassx extends MyClass { }