在大型项目上,Python 是个烂语言吗?

CSDN后端业务很多是 Python 写的,基本每个微服务代码量都至少是几万行的规模。各个项目加起来没有百万行也至少是几十万行的规模。现在基本上 java,go,Python 都有。有人拿office这种 pc 时代的大型单体软件举例是不恰当的。Python一般很少用来写 pc 桌面软件,互联网时代后端语言也不可能有像 office 这样的庞大的单体软件,项目大了为了能快速开发争取上线速度和业务迭代速度,项目稍微大了肯定是要拆分的(微服务)。不同语言都是有各自使用场景的,Python的使用场景一般在爬虫、web后端、数据分析、量化投资、机器学习等领域。

有同事比较痛恨动态语言的,觉得维护起来心累。之前有学术研究专门统计过github上不同语言项目的出错率,结论就是静态语言确实更不易出错,维护性更好。动态语言就需要良好的工程实践来控制,不过灵活性更高,表达能力更强。如果真的是超大型单体项目,静态语言确实是个更优的选择,这个是有统计结果作为支撑的。参考这篇文章的研究:

文章很长,这里我直接贴下这个研究的结论(注意 Python 是动态强类型语言,动态指的是类型检查发生在运行期而不是编译期,强类型指的是不允许隐式类型转换,而不是像js/php 这种可以直接允许一个字符和一个数字直接相加):

我们对编程语言和使用进行了大规模的研究,因为它涉及到软件质量。我们使用的 Github 上的数据,具有很高的复杂性和多个维度上的差异的特性。我们的样本数量允许我们对编程语言效果以及在控制一些混杂因素的情况下,对编程语言、应用领域和缺陷类型之间的相互作用,进行一个混合方法的研究。研究数据显示,函数式语言是好于过程化语言的;不允许隐式类型转换的语言是好于允许隐式类型转换的语言的;静态类型的语言是好于动态类型的语言的;管理内存的语言是好于非管理的语言的。进一步讲,编程语言的缺陷倾向与软件应用领域并没有关联。另外,每个编程语言更多是与特定的 bug 类别有关联,而不是与全部 bug。

互联网公司很少用单体架构了(不会像一个桌面软件那样成百上千万行),一个服务代码量过大对于项目维护,开发,部署,上线都是灾难(想象一下几十个人甚至上百人维护一个项目仓库,每天光解决冲突就够你受的了,公司可能早就在激烈的产品迭代竞争中死掉了),很多都是微服务架构。微服务架构下很多语言都能胜任,几乎都有商业项目的成功案例,甚至很多动态语言快速构建原型反而更有优势,即使将来遇到了瓶颈重构一个服务也不会太难。大的网站往往是靠架构,而脚本语言的应用也主要是在互联网而不是传统桌面软件。

下边是一些知名Python 项目的代码量统计,目前最大的Python 项目应该是openstack了,达到了百万行,不过大部分大项目最多也就是几十万行。如果是商业项目,目前不太可能出现一个项目百万行的情况。国内目前很多用Python 的还是中小公司,只可能有大的网站或应用,不太可能出现一个超大的单体项目,项目大了迟早要业务拆分。如果项目组的人员不排斥写Python ,Python 是可以用在很多项目上的,并且在爬虫,网站,数据分析等领域Python 都有比较成熟的解决方案,一开始真的没必要过于纠结技术选型,可能工程控制,代码质量反而比较重要。技术选型本来就是在权衡嘛,尽量扬长避短。

不过很多小公司不重视代码质量管理(比如无注释、无文档、无单测、无静态检测、无规范、无code review等),用动态语言是有很大风险的,将来肯定会遇到各种修修补补,上线就跪了的情况,这种时候还是慎用动态语言瞎搞,否则代码仓库迟早会难以维护甚至失控。


这里我为大家准备了一份针对零基础的Python学习资料,有兴趣的同学可以看看哦。

「 Python经验分享 」

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家免费分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
9f49b566129f47b8a67243c1008edf79.png

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

8c4513c1a906b72cbf93031e6781512b.png

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

afc935d834c5452090670f48eda180e0.png

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

252731a671c1fb70aad5355a2c5eeff0.png

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

6c361282296f86381401c05e862fe4e9.png

d2d978bb523c810abca3abe69e09bc1a.png

这份完整版的Python全套学习资料已经上传CSDN
朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值