前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大型项目 python 是个烂语言吗?

大型项目 python 是个烂语言吗?

作者头像
python编程从入门到实践
发布2020-11-03 14:32:59
1.3K0
发布2020-11-03 14:32:59
举报

之前在知乎上浏览到一篇关于 python 是否能做大型项目的讨论,其中就说到YouTube,YouTube 不管从历史,代码量,程序员数量,还是支撑的业务规模来看,都是一个成功的大型 python web 项目,具体的细节大家可以自行查阅。 这和我们今天讨论的主题有什么关系呢?你是否在某个时间段内也怀疑过python 是否真的能做超大型的项目?我想你若写过django 的应该清楚自己公司的一个项目中注册了 n 多个 app 用于支持不同的业务需求,你是否想过当开发人员超过5个,app 数量达到10个以上(当然这里的数字是我少说了,大些公司一起开发一个大项目的最少20人起,app 少说也有50以上),业务复杂到一定程度的时候怎么去维护呢?我见过一个 django 项目 文件大小100多M, 你可自己脑补一下项目有多大,还没完,这才是一个django项目,当公司内部还有django项目 且内部通过 rpc 进行调度的时候,这时候各个app 之间的关系就是一个网状的结构,这个时候其项目的复杂度是上了一个指数级别的。 好,那有人就要问了,既然项目大到一定程度后很难维护和协同开发,那目前业界内有没有可行的方案和架构呢?从自己实践和做公司项目升级改造的过程看是有解决方案的,从目前的效果来看,还是很不错的,所以,本专题我们从这个解决超大项目的问题入手一步步带你去了解、实践 本套解决方案,若能用在自己的工作中那最好不过,也是也本专题的目的之一。 那就请出我们今天重点介绍的一个主角:FastAPI 。 FastAPI 是一种现代、高性能 的Web框架,用于基于标准Python类型提示使用 Python 3.6+ 构建API。 官方给出的核心功能有: 1. 快速:非常高的性能(基于 Starlette 和 Pydantic ),现有最快的Python框架之一。 2. 快速编写代码:将功能开发的速度提高大约200%至300%。 3. 更少的错误:减少约40%的人为错误(开发人员)。 4. 直观:强大的编辑器支持。调试时间更少。 5. 简易:旨在易于使用和学习。减少阅读文档的时间。 6. 最小化代码重复。每个参数声明中的多个功能。更少的错误。 7. 健壮:获取可用于生产的代码。具有自动交互式文档。 8. 基于标准:基于(并完全兼容)API的开放标准:OpenAPI(以前称为Swagger)和JSON Schema。 FastAPI这个框架是站在巨人的肩膀上其原因主要有二: 1.Web 部件的Starlette。 2.Pydantic 用于数据部分。 简单解释一下: Starlette: FastAPI 的速度得益于使用了Starlette——一个轻量级的ASGI框架。 ASGI,全称为Asynchronous Server Gateway Interface,为了规范支持异步的Python Web服务器、框架和应用之间的通信而定制,同时囊括了同步和异步应用的通信规范,并且向后兼容WSGI。由于最新的HTTP协议支持异步长连接,而传统的WSGI应用支持单次同步调用,即仅在接受一个请求后返回响应,从而无法支持HTTP长轮询或WebSocket连接。在Python3.5增加async/await特性之后,基于asyncio和协程的异步应用编程变得更加方便。ASGI协议规范就是用于asyncio框架的最低限度的底层服务器/应用程序接口。 Pydantic(强制类型校验): Pydantic 是一个使用 Python 类型提示来进行数据验证和设置管理的库。Pydantic定义数据应该如何使用纯Python规范用并进行验证。PEP484 从Python3.5 开始引入了类型提示的功能,PEP 526 使用Python3.6中的变量注释语法对其进行了拓展。Pydantic 使用这些注释来验证不受信任的数据是否采用了您想要的形式。 好的,通过上述介绍我也简短回复一下我们标题提出的这个问题,python是个烂语言吗对于做大项目?我的回答是否定的,一门语言是否是好语言在于使用语言的人本身,不在于语言本身,就像大家调侃那个语言是世界上最好的语言一个道理。本期我们就先介绍到这里,后期会带着大家从代码和原理的层面去讲解这个解决方案。Tornado 专题已经完结,喜欢研究python源码以及python的高级语法方法的可以去系统的看看那13篇文章,希望能对你有所收获。 喜欢本文的读者,欢迎点赞与转发,你的每一次肯定都是我前进的动力,原创不易,感谢大家的支持,让我们一起努力?!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-10-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 python编程从入门到实践 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档