稳定性与趋势

在本章的最后,让我们来谈谈最新版本,以及时下流行的外部技术和库。

首先,我们来谈谈外部库的最新版本。当然,我们可能会倾向于使用最新版本,也就是几小时前刚刚发布的版本。值得注意的是,错误可能会出现,如果是这种情况,新的补丁版本可能会在不久的将来发布。或者不会。在这种情况下,错误可能会持续一段时间。因此,编写测试尤为重要。试想一下这种舒适的感觉:你更新了所有的依赖项,运行了测试套件,如果所有的灯都是绿色的(而且你的应用程序经过了正确的测试),你就可以相当肯定地认为一切正常。

不过,如果因为更新了外部库而导致任何测试变为红色,你就必须进行调查,找出问题所在。无论如何,如果你的依赖关系已得到很好的固定和约束,或者你只接受补丁和/或次要版本,那么你就不应该认为自己不会出现任何问题。补丁也可能带来漏洞—​你永远不知道。

至于 Alpha 版本,让我们明确一点:这些版本不是为生产应用而设计的。不同的程序库在这一点上都很清楚:代码每天都可能发生变化,在没有任何警告的情况下带来破坏性的变化。总之,你必须非常小心。尽管如此,如果你想亲自评估这些版本,库的开发人员会很高兴收到你的反馈。Beta 版本应该会更加稳定,不会再带来任何破坏性更改。但在使用时仍需格外小心。

一般来说,只在生产中使用最终稳定版本。如果你希望在稳定版发布当天就做好生产部署的准备,那么就将 Alpha 和 Beta 版保留给开发和测试环境。新功能总是令人兴奋的,但绝不值得牺牲应用程序的稳定性。你的用户并不关心你所使用的外部库的新功能:只有稳定性才是最重要的—​它能正常运行。

现在,让我们来谈谈时髦的技术(外部 PHP 库、新工具,甚至新的编程语言)。你会听到周围的人都在谈论某项技术。这种技术像野火一样蔓延,在互联网上随处可见,大公司纷纷涉足,技术会议也都在讨论它。你必须对这种事情保持警惕。即使这些技术的前景可能令人兴奋并具有革命性,也要首先考虑什么才是最重要的:你的用户。

这项技术会给你的最终用户带来真正的改变吗?是否真的值得对其进行培训,并花费数周甚至数月的时间来了解其工作原理?你必须确保它将对你的项目产生真正的积极影响。你还必须牢记,创新技术会有一个小社区。其影响是立竿见影的,正如这里所概述的那样:

  • 你必须对所有参与项目的人员进行培训

  • 文档可能不完整,难以理解

  • 你可能会发现自己独自面对屏幕,却找不到问题的解决方案:你是第一批使用这项技术的人,因此也是第一批面临障碍的人之一

最后,你必须确保项目的稳健性,这样才不会在毫无征兆的情况下放弃最新的技术。这种情况比你想象的要经常发生,你的大部分(如果不是全部)工作都将付诸东流。因此,要谨防未经验证的最新技术,确保项目的稳健性和严肃性。等到有时间考虑之后再做决定。同样,在这项技术成熟之前,你的用户肯定可以不用这项技术(他们不会意识到这一点)。

总结

将 PHP 局限于编程语言是不切实际的。我们刚刚看到了它—​它是一个真正的生态系统,拥有一个丰富而活跃的社区,远远没有埋没它最喜爱的语言。PHP 的发展数不胜数,语言本身也在近几年以最美丽的方式发展着。各种功能的贡献为 PHP 带来了真正的第二春,使其至今仍在网络应用程序服务器端最常用编程语言中名列第一。

如果没有可用于该语言的外部库数量的激增,这一切都将无从谈起。有问题,就有解决方案。我们很幸运,大多数外部库都是开源的。成千上万的开发人员自愿免费提供他们数小时、数周或数年的工作成果。

从这些图书馆中做出选择是一件困难和具有挑战性的事情。为了确保做出正确的选择,事先进行真正的研究工作非常重要,甚至是强制性的。我们难免会遇到障碍和意外,但本章为你提供了一些工具和现成的解决方案来限制风险。最重要的是,不要急于采用最时髦的技术。如果你想吸引用户并让他们继续使用你的应用程序,那么关键词就是 "健壮性" 和 "稳定性"!

我们谈了很多别人的工作,但我们不应忘记自己的成就。当你需要了解你最喜欢的外部库的内部工作原理时,你如何才能养成良好的习惯,在你的代码中找到自己的方向,就像在你最喜欢的外部库的源代码中毫不费力地找到自己的方向一样?我们又回到了第一章中所说的:拥有相同的习惯,我们就能更容易地相互理解。这显然适用于项目的组织、文件的命名、文件夹的结构等等。这也正是我们将在下一章看到的实际情况。