大家好,我又回来了,这一个多月来除了工作,闲暇时间做了些sideproject,以后会和大家分享。现在有些时间了,是时候重新打理下自己的公众号了。一个人的时间和能力总是有限的,所以我拉了一个小伙伴和我来共同维护这个公众号。希望可以多产出一些干货,和那些「技术营销号」彻底区分。好了废话不多说,进入咱们今天讨论的主题「现在是否适合升级到Python3.8」。

Python 3.8 已经发布有小一个月,它的各种新增功能其他各大头部公众号已经分享的挺多,总结的也还可以,这里便不再赘述。大家可以看官方文档What’s New In Python 3.8,这应该是最全面最权威的说明了。

Python3.8确实有很多吸引我们的语法和模块优化,那么现在是否合适把我们的项目升级到3.8呢,我们来分析。

为什么要升级

我们先来思考,我们升级的初衷是什么?我总结了下大概有如下两点:

  • 新语法,新的语法可以使我们在编写相同逻辑的时候,代码更简洁,思路更清晰。
  • 性能提升,新的版本优化了很多模块,使代码运行效率更高。
  • 遇到版本bug, 遇到了使用版本的bug,新版本中已修复。

除了版本bug不能不升级外,编码的效率和系统的性能确实是我们在技术选型和升级时考虑的重要因素。但是,还需要结合我们现有的技术架构,例如,我们的测试系统是否支持新版本的case?我们的部署系统是否支持新版本的持续集成和发布?监控呢?综合评定下来,我们升级项目时,其实是升级的整个系统技术架构,这便需要我们花费大量的时间来测试升级的收益比是否足够高。有时候我们整体算下来的时间和成本,还不如多加几台服务器来的实惠。

所以,我给出的建议是,先不要升级。

不建议升级的依据

升级语言版本是一个巨大的工程,除了上边说的要权衡好时间和收益外,还有以下几点不建议大家现在升级的原因:

第一,许多功能强大的三方包都还没有升级支持Python3.8。我翻了下流行框架Django的官方文档,截止到发文(2019-11-05)其中并没有明确的标识对Python3.8的支持。大家可到这里查看各django 版本对应Python的版本: What Python version can I use with Django?

第二,Python 3.8 刚刚发布,现在是3.8.0版本,也就是说,在3.8版本基础上并没有做过任何的bug修复。或者说并没有大批量的经过生产业务场景的考验。

什么时候升级

那么我们什么时候可以升级呢?我认为应该具备如下条件:

  • 你的升级成本相对小或者有版本的限制瓶颈。
  • 你项目所有的依赖的库都已明确标识支持Python3.8版本。
  • Python3.8 进行了部分bug的修正,或者直接拿版本号来限定,至少升级到Python3.8.1 。

在这些条件下,你便可以体验新版本简洁的新语法了。

总结

其实升级语言或者依赖模块包的版本,根本的依据是看我们有没有需求。我见过使用很老语言版本的项目,但是它们依旧运行的很好,能够很好的完成工作,满足使用者的需求。切勿盲目的追求新的技术,而忽视了业务需求。说到底,技术还是要为业务服务的。