Python能用来开发大型项目吗?
看到有人说:一般的小项目, 代码超过 1000 行写 python 就已经是虐心了,代码超过 10w 以后你就别想用 python 开发了。
那么Python在大型项目上的表现到底怎么样呢?今天我们来看看详细分析。
我玩 Python 的时候了解到,用 Python 用的好的大型互联网公司,非 FaceBook 莫属了。
你们知道吗?Instagram 的总注册用户达到 30 亿,月活用户超过 7 亿。而令人吃惊的是,这么高的访问量背后,竟完全是由以速度慢著称的 Python + Django 支撑。
时至今日,即使已经拥有超过 30 亿的注册用户。Instagram 仍然是 Python 和 Django 的重度使用者。Instagram 的工程师 Hui Ding 说到: 『一直到用户 ID 已经超过了 32bit int 的限额(约为 20 亿),Django 本身仍然没有成为我们的瓶颈所在。』
不过,除了使用 Django 的原生功能外,Instagram 还对 Django 做了很多定制化工作:
• 扩展 Django Models 使其支持 Sharding (一种数据库分片技术),Instagram Engneering 博客专门为这件事情写过一篇博客,可参阅:Sharding & IDs at Instagram
• 手动关闭 GC(垃圾回收)来提升 Python 内存管理效率,他们同样也写过一篇博客来说明这件事情:Dismissing Python Garbage Collection at Instagram
• 在位于不同地理位置的多个数据中心部署整套系统
这说明什么?这说明没有烂语言,只有驾驭不了语言的人。
再看看相关的 FB 的使用,在Facebook,Python是被使用最多的语言之一,受欢迎程度排行第三,仅次于Hack(Facebook出品的PHP变种)和C++。这听起来可能会让很多Python迷惊讶。
事实上,Facebook的工程师构建并且维护着上千个Python库和项目,这些Python库和项目在Facebook的生产环境中随处可见。
看看Python在Facebook的地位,在数量上占到了多少?如图:
21%的Facebook架构代码
百万行代码,上千个库和二进制文件
2016年至今,平均每月5000个提交,1000个提交者。
据报道到2016年5月,5%的Python代码使用Python3。
Python在运维领域的应用
Facebook的基础设施团队大量使用Python,在生产环境中Python可以说无处不在。各个团队通常来说都会为他们自己的服务维护一个Python客户端(一般是thrift),这个客户端可以为其他团队提供简单可依赖的接口,以方便其他团队可以随时调用他们的服务。
有了这些库,产品工程师可以少写大量的代码,也减少了测试和维护的成本。使他们能够快速地将自己的服务接入到Facebook的基础架构中,同时允许架构有效可靠地扩展。
基础设施管理
产品工程师拥有大多数的Python软件,并用这些软件来管理Facebook的基础设施。即便其中的软件不是100%由Python编写,至少它也覆盖了我们的硬件设施的整个生命周期,从硬件进入我们的数据中心到它报废的时刻。
平台服务
随着我们的基础设施规模化,一些单片服务被拆分成多个组件,过程中造就了大量各种用途的Python服务。
服务配置管理
我们主机级别的配置管理是用Chef完成的。我们服务级别的配置管理,是通过一个Facebook内部的项目,叫Configerator,完成的。工程师们通过Python代码生成配置对象,这些配置存储在JSON文件中,任何的服务都能够读取。验证器,也是Python写的,用来验证这些配置的正确性。Python还是项目Tupperware的配置语言,这个项目是Facebook的容器部署系统。
使用Python让我们能够动态生成配置对象,而不用创建、维护、学习使用复杂的模板系统。
甚至在运维配置上也广泛使用了 Python 工具。
Facebook的规模使得Python的效率被使用到了极致,他们的代码里使用了大量的库(Twisted, Gevent, futures, AsyncIO, 和很多其他的)。很多的迁移项目或者新项目都使用Python3,除非有不得已的理由必须使用Python2。目前,我们运行的服务中5%的代码是用Python3编写的。
看到大公司是如何使用 python 的了吗?
所以,Python在大型项目的表现上是十分出色的。现在的情况是,你学了Python就会有很多机会,无论是正式工作、还是兼职。
◆◆◆◆◆
现在人工智能爆发,Python是一门脚本语言,它更适合去做人工智能这个领域,在人工智能上使用Python比其他编程语言有更大的优势。
领取专属 10元无门槛券
私享最新 技术干货