php转go语言难吗,使用Go语言后,作为PHP开发人员已经很多年了...

本文作者分享了从PHP转向GoLang的编程体验,探讨了两种语言在静态与动态类型、子例程与并行处理、面向对象功能以及测试方面的差异。GoLang因其性能、异步功能和基本特性适合小型应用程序和微服务,而PHP则因丰富的面向对象功能和社区支持更适合大型复杂应用。在测试方面,PHP提供了更丰富的高级测试库和社区支持。
摘要由CSDN通过智能技术生成

c227cfcc161b4772ae2b4f0bbaf202e1.png

来自: CSDN危机

Go是一种功能强大的编程语言,具有独特的功能组合. PHP是一种在服务器端执行的脚本语言. 与C语言类似,它是一种常用的网站编程语言. 它也适用于所有微服务,小型,中型甚至大型应用程序. 对于开发人员,使用两者时有什么不同的体验?本文将很快宣布.

16岁时,我发现了PHP. 这是我学到的第一门编程语言. 当时,我使用PHP来检查用户提交的表单并发送电子邮件,大多数表单都是“与我们联系”. 多年以来,我一直视PHP为我的长处,并不断发展和增强我的PHP知识和技能. 尽管我不认为自己是PHP的高手,但这是我最了解的编程语言. 以前,我有机会在小型项目中使用Ruby,Java,Python和NodeJS. 我将利用这些经验将PHP与其他编程语言进行比较,并学习如何更好地利用PHP的优势并克服其缺点.

6个月前,我成为MessageBird的工程师. 当我申请一份工作时,我填写了PHP,但是我没想到加入这份工作后我会开始使用GoLang,而且它与PHP相距甚远. 这是一个非常好的经历. 在这段时间里,我学习了一种新的编程语言,现在我又回到了PHP,并且我也有6个月的Go编程经验.

Go是一种功能强大的编程语言,具有独特的功能组合. 很遗憾,我无法更深入地学习Go. 我返回PHP的原因与编程语言本身无关,但是,我想总结六个月的经验并比较这两种语言.

6676dadc3999a24034154c27aef76c.jpg

静态和动态

GoLang是一种静态编程语言,而不像PHP那样是动态的. 因此,在初始化变量和对象之前,需要仔细考虑. 在PHP中,您无需初始化变量,只需在需要时就地使用它们. 因此,在声明新变量之前,您需要三思而行. 我发现这比检查PHP中的变量更有效. PHP7添加了类型声明,这是一种更好的做法php开发语言,但是在编写代码之前三思而后行是一种更健康的做法.

子例程和并行处理

GoLang的惊人功能之一就是goroutine. 该功能支持异步操作. PHP中没有比Goroutines更简单易用的功能. 只要PHP需要并行处理,就需要添加外部排队机制(Beanstalk,RabbitMQ等). 这加剧了基础架构的复杂性,并增加了项目的复杂性.

GoLang的并行处理远远超出了PHP.

t9nnyx60fl.jpeg

面向对象的功能

自从程序设计问世以来,面向对象的概念一直占有一席之地. 在1990年代,面向对象在C ++中得到了广泛的使用,因此成为主流范式. 面向对象的最吸引人的地方是它允许工程师使用代码来创建业务逻辑图,并且事实证明,这种方法在不断发展的系统变化时提供了无限的价值. PHP和GoLang都提供了面向对象的功能,但是两种语言之间存在显着差异.

我花了很长时间习惯了隐式接口. 在GoLang中,实现所有方法后,类型将满足接口要求. 但是在PHP中,您需要显式定义类型所需的接口,然后开始实现它. 借助Go的这一功能,您无需事先考虑应用程序的界面,这与我对静态类型语言的理解相反.

不断发展的模型具有复杂的需求,领域驱动的设计可以满足这一需求. 为此,您需要许多面向对象的函数,而PHP确实提供了许多这样的函数: 特征,抽象方法和类,最终方法和类,魔术方法等. GoLang缺少这些功能,这是一个难以克服的条件. 因此,我认为GoLang仅适用于微服务或小型应用程序php开发语言,而PHP适用于所有微服务,小型,中型甚至大型应用程序.

测试

3e4e597effbfbe5f6a2337b01b10da37.png

我认为测试是确定项目质量的最重要任务: 单元测试,集成测试,功能测试,UI测试,性能测试等. 项目测试次数越多,交付质量越好. GO和PHP的单元测试框架非常出色. Go具有嵌入式测试包,而PHP具有PHPUnit. 它们都提供了丰富的功能集,可用于测试您的代码. PHPUnit比GoLang测试包具有更,因为PHP具有更. 两种工具都可以完成编程语言的工作. 但是,在执行高级测试时,PHP和Go的行为将大不相同.

首先,对于性能测试,Go的测试包具有许多用于性能测试的功能. pprof之类的许多库都可以使用这些功能来创建华丽的数据报告. 尽管PHP还具有一组可用于性能测试的库和技术,但是Go的使用更容易. 我相信这是静态类型语言的优点之一.

第二,对于高级测试技术(例如BDD,TDD和A / B测试),PHP具有更多的支持,更多的库和更大的社区. 例如,两种语言都实现Cucumber(或Gherkin),但是PHP的BEHAT实现支持40多种语言,完全基于独立组件构建,并且在GitHub上比Cucumber支持更多(更多分支,更多)给星星,等等. ).

最后,对于功能测试或UI测试,PHP具有更多的库并更好地支持现有工具. Selenium具有非常强大的PHP支持(超过3,000个跨浏览器测试,视频记录,文本和可视日志等),对于Go,只有一个驱动程序tebeka / selenium维护得不好(最后一次提交发生在5个月前).

其他差异

5df8106f6873152da4c302a632dcdd24.png

两种语言之间还有许多其他差异,重点包括:

最后一个想法

两种语言之间有明显的区别,并且很容易在两种语言之间进行选择. GoLang性能更好,具有本机异步功能和其他基本功能,非常适合需要频繁使用的小型应用程序和微服务.

但是,随着应用程序的不断增长和业务逻辑的复杂性的增加,PHP是自然的选择,因为您可以充分利用PHP的面向对象功能和社区支持.

原文:

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/jisuanjixue/article-251632-1.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值