您的位置:网站首页 > php源码 > 正文

从PHP到Go:代码性能和一些常识

类别:php源码 日期:2017-8-8 22:04:00 人气: 来源:

  本文作者以实例的方式演示Go语言开发的灵活,高效。他以PHP的Laravel框架与Go的原生写法进行对比,显然有一些偏颇。虽然如此,但是Go语言的魅力是越来越强大了。

  前段时间,我做了一个的决定,我决定用Go重写了Boxzilla的应用,以前是用PHP的Laravel框架开发的。

  在几个星期后,部署了Go应用程序。后来,我测试了一下结果 ,发现比旧的应用有很大的改进,包括更好的性能,更容易部署。

  这个应用程序是一个比较简单的数据库驱动的API和用户帐户系统:用户可以登录来下载产品,查看订购的,更换付款方式等。

  我用Stripe和Braintree两个网关来接受在线支付,使用MoneyBird处理,邮件我使用了Mailgun来发送。

  Laravel每隔一段时间就会发布一个新的版本,告诉我包含了哪些明显的改进,性能又提升了多少倍,会非常好。但很多时候,我觉得它只是对命名和目录结构的更改。

  去年,我已经把几项服务移到Go上。 但是我还在使用PHP来做产品,比如销售WordPress的二次开发,这个看似古老的技术堆栈,最终卖给最终用户。

  如果我是一个自雇者,我会选择一个新的技术来开始我的工作。但是我的老板需要我每天好好工作赚钱。如果条件允许,你想不想有一些新色彩?

  把代码移植到Go语言,主要是数据库的交互,把Laravel中的Blade模板移植到Go中可以使用的东西。

  ORM是我比较喜欢的方式,将一些麻烦的数据访问层和纯SQL查询移除。Meddler被用来处理查询结果映射为结构体的模板。

  为了像Laravel一样支持多层模板,我用Go封装了一个HTML模板类叫做Grender,现已经开源,它的地址在。

  想在应用中集成Strpe,Strpe提供了stripe-go() 这个包。对于Braintree,有一个叫braintree-go()的包,以前更新的不太勤,现在又有了新关注。

  另外,Go没有软件包,提供管理Moneybird的,我还开源了moneybird-go()。

  其实Go一个编译型的语言,会好于运行在标准库下解释型的PHP。其实这样比较对PHP是不公平的。但是,我需要分享一些数据,可能会更有趣。

  通过的表格,我们看到Laravel(或PHP-FPM)在超过了100个并发数据时,性能出现了一些下降。

  即使是在ide中的代码视图,可能结果会有所增加。不过,相同功能的应用,Go只有一半的代码量。

  在我们的Laravel应用中,我们主要有集成测试来检查请求处理是否返回正确的响应。 但是PHP的总体测试覆盖率就会比较低,因为紧耦合,在某些时间不能完全覆盖。

  其实我做了不应该做的事情,用不同的语言重写一个应用。因为我觉得这样会有更多的乐趣,而且又有小而快的应用程序作为回馈。

  推荐:

  

0
0
0
0
0
0
0
0
下一篇:没有资料

网友评论 ()条 查看

姓名: 验证码: 看不清楚,换一个

推荐文章更多

热门图文更多

最新文章更多

关于联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助

CopyRight 2002-2012 技术支持 源码吧 FXT All Rights Reserved

赞助合作: