图源:Google
过去的一年里,Vimeo开拓职员用多种编程措辞编写了后端代码——PHP、Go、Ruby、Python、NodeJS、Java、C措辞、C++和Rust。
2004年,Vimeo开始利用PHP。对付像Vimeo这样的初创公司来说,PHP无疑是一种空想编程措辞。PHP的阐明器使企业家可以快速开拓原型,它附带一个大型标准库,可以省去一些常见任务步骤,如发送电子邮件、访问数据库等。

大多数初创公司都中道崩殂,但一些基于PHP的创业公司在十年后依然耸立不倒,有些乃至增长飞速、跃居前列。个中有的公司(最著名确当属Facebook)认为PHP是阻碍公司发展的瓶颈,开始从PHP迁移出去。这种小规模迁移的紧张缘故原由有两个:一是PHP的性能不佳,二是掩护大型PHP代码库困难较大。
2014年开始,PHP的性能发展逐渐跟不上所需,数组内存的花费超出必要。由于短缺可以大规模检测缺点的静态剖析工具,掩护大型PHP代码库变得愈发困难。
自2004年以来的十年中,Vimeo的规模已经扩大了很多倍,PHP代码库也随之扩充,但是还没有大到妨碍自身发展的程度。但当Facebook公开放弃PHP时,一些开拓职员就认为PHP即将成为互联网时期的FORTRAN。新一波后端工程师操持如何将50万行PHP分解成一系列设计更好、速率更快、可测试性更高的Go做事。
一韶光,此事彷佛迫不及待,但实际上我们从未放弃PHP。缘故原由显而易见——重写全体代码库会占用大量资源并且随意马虎出错;但也有一个不太明显的缘故原由,那便是PHP变得更好了。
在过去的六年里,PHP实行韶光减少了一半以上,社群发展迅速,现在有一种盛行的驱动程序可以利用静态剖析得到的见地来改进PHP代码库(旧的和新的)。
PHP的改进花了一段韶光才在Vimeo运用。首先,我们必须弃用旧版本PHP5.4,该版本在过期多年后仍在生产。迁移到PHP 7可以使后端相应速率更快,除此以外,PHP 7改进后的语法使开拓职员编写代码更简洁,并对返回和参数类型供应全面的措辞级支持。
PHP一贯在创新——不久前发布的8版本在措辞级别方面做了诸多改进,使开拓职员可以更简洁地表达业务逻辑。我们期待明年年初的升级。
PHP入门非常随意马虎,但是“好上手”并不能担保无反噬。多年来,无数开拓者考试测验过速成PHP,欠妥心就搬起石头砸了脚,然后就放弃了。我也偶尔被PHP折磨的痛不欲生,但我没有放弃,而是决定构建一个可以提高准头的工具。就这样,Psalm(PHP的静态剖析类型检讨器)出身了。
Psalm的核心功能与TypeScript检讨器大致相似,借鉴了Facebook Hack措辞(源自PHP的)的一些想法。当PHP代码在生产中导致类型缺点以及措辞逻辑不通时,PHP会发送关照。Psalm增加了一些额外功能,如未利用的类和方法检测,同时可以自动修复检测到的许多问题。
过去几年,我们将Psalm用作CI管道的一部分,这对我们在Vimeo编写PHP的办法产生了变革性的影响:Psalm使我们有信心进行大规模变动,而不用担心会毁坏所有内容。这些变动(将当代PHP编码标准引入了我们的代码库)有助于肃清旧代码的痕迹:当可以安全地变动代码时,它就不再是真正的遗留代码了。
我创建Psalm是为理解决我自己的问题,但现在Psalm已经开源,它也帮助办理了许多其他人的问题。Psalm最近还帮助我们识别了代码库中大量的安全漏洞,以免被恶意利用。
顺便说一下,如果你害怕对一个大型遗留PHP项目进行较大变动,那么我强烈建议利用静态剖析类型检讨工具。Psalm(及其他类似工具)可以办理代码库中的现有问题,帮你逐步提高代码质量。
在20世纪中期,还没有完善的PHP ORMs,以是我们建立了自己的PHP ORM。PHP供应了大量构建基块,用于创建大略的ActiveRecord风格的ORM,包括MySQL支持、查询参数绑定以及神奇的获取器和设置器,而这也有助于我们聚拢一批精良工程师来完成这项任务。
我们的ORM末了一次重大升级是在十年前。进行了一些小的改进——Bug修复、类型升级以及一些新特性——但基本构造没有改变。多年来,我们也考试测验过利用不同类型的ORM,但这些考试测验发起都不是为了相应新的业务需求,而是出于对ActiveRecord模式的不满。
图源:unsplash
终极,这些发起都没有得到落实。事实证明,如果旧代码能够有以下优点,那它们比新代码更好:
· 事情高效
· 静态剖析简洁
· 测试运行良好
· 是常用代码
谢天谢地,我们现有的ORM知足上述四个哀求。
保留可靠的旧代码也让我们有机会将精力集中在为业务带来本色利益的事情上。而且我负任务地说,Vimeo比来一贯不断发展,有大量像Vimeo Record这样很棒的新产品。
十年前,许多开拓职员编写了一部分PHP后就转向了其他更受欢迎的措辞。他们常常热切地见告别人不要再编写PHP。我想见告大家,PHP可以成功。Vimeo在PHP上的持续成功证明了它是2020年公司快速发展的一大利器。
PHP的崛起至少让一个反对者改变了意见。我的一位同事,之前一贯批评PHP,有一天他把我拉到一边,非常诚挚地感谢我见告了他“用PHP事情并不一定很糟糕”。
留言点赞关注
我们一起分享AI学习与发展的干货
如转载,请后台留言,遵守转载规范