在使用Go两年之后,我又转回PHP了
【CSDN 编者按】PHP 是最好的编程语言?本文的作者有话说。之前为了改进旧程序,实现更好的性能、更轻松的部署和更高的测试覆盖率,Danny van Kooten 选择从 PHP 切换部署到 Go 应用程序。但是万万没想到,在使用了Go 两年之后,Danny 又将应用程序转回 PHP 了......个中原因何在,本文中一探究竟。
作者 | Danny van Kooten,Web 开发者,ibericode 创始人,WordPress 插件 MailChimp、HTML Forms、Boxzilla 的作者。
译者 | 弯月
责编 | 郭芮
出品 | CSDN(ID:CSDNnews)
以下为译文:
还记得我放弃Laravel转而使用Golang吗(https://dannyvankooten.com/laravel-to-golang/)?嗯,在使用了Go两年之后,我们的应用程序又转回PHP了。
为什么?!你已经说过PHP可能是个很糟糕的决定,但现在又要在上面花更多的时间?......嗯,实际上有好几个原因。
PHP的改进
过去三年PHP改进了许多:
增加了标量类型声明
https://secure.php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration
增加了返回值类型声明
https://secure.php.net/manual/en/functions.returning-values.php#functions.returning-values.type-declaration
增加了多catch异常
https://wiki.php.net/rfc/multiple-catch
以及非常优异的性能改进
http://www.zend.com/en/resources/php7_infographic
Symfony4改变了世界
我很喜欢Symfony的兼容性承诺(https://symfony.com/doc/current/contributing/code/bc.html)以及他们13年来为之做出的努力。
所以,当Symfony4(https://symfony.com/4)发布,我听到了这些好消息,就去尝试了一下,用它实现了一个小的应用程序。
结论是:太棒了,真的太棒了。
Symfony4在简化安装上花费了许多心思,启动一个Symfony应用程序可以更方便快捷,需要的配置工作更少。现在它已经赶超了Laravel的快速开发,同时它还鼓励许多很不错的开发实践,避免开发时落入自己的陷阱。而且它的性能非常好(http://www.phpbenchmarks.com/en/)。
将旧的Lavarel应用程序移植到Symfony很容易,只需要重新实现一些用Go写的功能,恢复之前做的一些便捷方式(大多数是由于Laravel的全局辅助功能导致的)即可。
一个非常好的意外收获是我可以很大程度上提高开发中的测试覆盖率。两遍甚至三遍地反复编写同一个应用程序让我对其非常熟悉。
Symfony的调试工具栏也非常棒。它能显示从请求到响应过程中发生的一切,显示出一切警告和不推荐使用的警告,还有内置的性能工具,可以很容易地对代码进行性能测试。
在学习了Symfony的Form组件(https://symfony.com/doc/current/forms.html)之后,我深深地爱上了它。设计一个可访问、可重用的表单变得极其容易,还能在提交时验证表单内容,并且安全地根据表单数据填充PHP对象。
另一个改进我们的应用程序的软件是Doctrine。模型(实体)是普通的PHP类,关系(关联)是普通的引用,使得逻辑测试非常容易,无需再考虑数据库实现。
在Doctrine中,默认所有操作都包裹在SQL事务中。在我看来这一点非常重要,它保证了原子性。而在Eloquent中实现这一点需要大量工作。
Go依然很强大
实话实说,Go非常优秀。它非常简单,能实现PHP绝无可能达到的性能。如果我们需要小型的API或需要高吞吐量的功能,我依然会选择Go。
但我们的工作室需要大量的服务器端渲染的东西。尽管Go可以做到这一点(过去两年已经证明了),但使用PHP实现会更容易维护。
做出正确的业务决策
还有一个没说的原因是,在过去几年,有好几家公司联系我,希望收购我们的一个产品。
但在听说我们的技术使用的是Golang时,他们感到有点惊讶。他们告诉我,他们更希望使用PHP,因为我们大部分产品使用的都是PHP。这一点我没法责备他们。
原文:https://dannyvankooten.com/from-go-back-to-php-again/
本文为 CSDN 翻译,如需转载,请注明来源出处。
热 文推 荐
相关文章
- 中国移动联通电信停止支持eSIM服务 运营商esim一号双终端最新进展消息! 还会恢复吗?
- 华为新手机最新款2023即将新发布上市5G公认最好的折叠手机价格参数
- 抖音里的商城购物车怎么突然没有了?
- 苹果iPhone总销量公布:共卖出15亿台,卖得最好是哪一款?
- 华为首款5G折叠屏手机什么时候发布的 5G折叠屏手机详细配置参数处理器一览 手机笔记本双形态!
- 三星S10什么时候正式发布价格是多少钱?S10配置参数处理器屏幕外观详细分享 挖孔屏+顶尖屏幕,价格大部分人无法接受!
- 华为5G折叠屏手机什么时候在巴展发布价格是多少钱?5G折叠屏手机配置参数处理器详细分享
- 小米9和小米6很像,米9和米6的设计师是同一个人吗?似乎对米9的颜值多了一丝期待
- 2022年新低价荣耀Magic2乞丐版值得买入手吗?配置参数处理器怎么样
- 神舟RTX2060新品会在开学换新季迎来史上最低价吗?神舟RTX2060冰点价攻略