• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

PHP和golang差异见解

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

PHP与Golang:

1、解释型语言相对编译型语言性能相对较差。当然我们可以借助opcode高速缓存去减低性能差异,另外opcode需要zend虚拟机,java也是有jvm虚拟机,在这方面一定程度可以说PHP是编译型。

如果按照编译是生成二进制码来讲,golang才是编译型。这里有个关键的问题如果没有虚拟机如果实现跨平台??https://juejin.im/post/5dccb05ee51d4510ba708ff1

2、弱类型语言(PHP7有类型限制,array很强大,上述两个方面带来的好处就是降低编程门槛,可以用较少的代码实现我们想要的功能。问题就是如果不遵循一定的编程规范,代码比较飘逸,可维护降低,另外由于要维护较为灵活的结构内存占用也会较大。

golang有较为严谨的语言风格检测,迫使我们统一风格,同时强类型使得我们编程的时候更加注重数据结构的设计,对于系统设计我的理解是有帮助的,当然也不那么易用。

3、同步编程模式带来性能的损耗,降低了实现成本,代码的可读性和维护性较好。异步多线程的场景还是挺多的,如页面展示请求多个接口或者异步通知或日志等,可异步的地方采用同步实现存在性能损耗是必然的,在异步方面我们也可以借助第三方插件(swoole、workerman)或者redis等消息队列的形式来协助实现,采用消息队列的形式来实现某些时候也会增大系统的复杂度。另外php的yeild关键字也可以实现协程的功能,但是实现和维护成本都比较高。

golang在这方面提供了原生的支持,对于协程异步逻辑的封装使得代码的可维护性也较高,性能也更好些。

4、无第三方扩展,某些项目不提供PHP的扩展,在这方面可以选择自己封装(有一定维护成本)或则选择其他同类型的开源项目,问题不是太大。

5、golang很多地方扩展采用多返回参数的形式返回error,时刻提醒开发者要关心异常,做好异常处理。

7、脚本执行完毕之后内存就回收了,连接无法复用也是PHP的一个问题。借助swoole可以实现一个简单的连接池。https://juejin.im/entry/5a5dceea51882573467cfabe

Golang

1、三目运算符不见了。

2、整型没有封装类型,接收json参数的时候定义类型有点严格,传了数字字符串解析报错。

关于不喜欢的地方,有各自见解吧。https://www.infoq.cn/article/1mtvFQX_6K2G3cfeAaRm

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
php输出年份发布时间:2022-07-10
下一篇:
【转】PHP通过类名查找这个类所在的文件路径发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap