php 程序员学golang,一个 PHP 程序猿学习 Go 的体悟

正文开头先来一口鸡汤

没有什么事情是一蹴而就的,要想取得成绩,那就努力吧。

- 敬“明天”

为什么想学Go

要谈论学习心得,首先就得谈谈我为什么要来学习Go语言了。

首先我总结了几点原因:

PHP并发支持不好,就算是有了swoole、workerman等扩展,依旧杯水车薪

PHP对微服务的支持不行

PHP在大型企业不能满足使用需要

Go语言最近几年火变国内外

Go原生并发支持

Go入门使用简单

Go第三方扩展丰富

好吧,看到这里的朋友,肯定会说我又在水文了,或者说我在挖PHP的坑。

首先声明,我没有说PHP不好,可能是我太菜,知识面太浅薄,勿怪。

Go作为一门新兴语言中的佼佼者,而作为一门新兴语言能在国内快速崛起和形成趋势,必然有它可取之处,作为新时代的程序猿,咱们不应该存有语言偏见,有好的咱需要了解和学习。

也是抱着这样的态度,我开始了Go语言的了解和学习历程。

首先讲讲不一样的地方

PHP和Go其实都算是或多或少的使用和保留了一部分的C语言痕迹,当然在其中,Go语言看起来更为明显,毕竟Go是一门强编译性语言,定义变量或者方法体时,需要严格的声明其类型,程序完成需要运行时,需要先进行代码编译,生成可执行的文件,然后再运行可执行文件,方可以查看程序运行结果。

然后我也总结了一下不一样的地方,如下:

(如有缺少,请大家补充说明)

文件后缀名不同

代码命名空间声明不同

引入第三方扩展不同

声明变量格式不同

变量类型也有不同

方法定义不同(请注意:Go中私有、公开、受保护定义方式)

流程控制和循环控制语句使用上也有些许不同

执行方式不同(上文说了,PHP是解释性弱语言,Go是强编译性语言)

好了,整了这么一大堆,我想大家看了也有点懵比和反诬,再想到底这门语言好学吗,或者说是PHP好不好转Go语言。

我想这个问题,我不需要回答,因为Go语言的现有程序猿里,可能有百分之40%是从PHP过渡的。

所以我想不需要解释说明什么了。

聊一聊OOP吧

本小节更新于:2020-4-11

phper们都知道,现如今PHP编程的核心思想就是面向对象(OOP),因为面向对象的思维和概念,给予了人们很多新鲜的思维和想法,可以把很多事物的共同体抽象出来,形成一种事物模型,在通过模型的封装、继承、多态来实现具体的实物模型功效,毫无疑问这是一件非常好切重要的概念或者编程思维。

但事实上,上帝给你打开一扇窗的时候,往往会在墙角挖上一个深坑,你要是不能好好地去思考与观察,就会毫无疑问的跳进坑里,以至于无法自拔,更无法怪及他人。

面向对象(OOP)在编程高手眼里是一个魔术师,可以化腐朽为神奇;但是在小白眼里这个只起到简单的聚合作用,甚至于在学习与观察时,因为初入时间较短,看不清形势,导致直接挖坑把自己埋了。

所以再好的东西,都是一把双刃剑,请注意你使用的方式,不要把自己放到深渊之内。

但请你也不要害怕犯错,要勇敢尝试新事物,不过这一切的前提是,你要分得清重要性。

go编程设计时,其实就充分思考过这个问题,因为上天虽然是独爱某些天资聪慧的人们,但也不会让没有天赋的人,毫无入门之路一说,所以go语言在设计时,就只保留了最简洁的类的概念,去掉繁琐OOP思想,只是为了让语言更简洁、更方便学习和阅读以及工作交流。

举个例子:

定义一个用户类,具有电话属性,以及一个打电话的功能,分别用PHP和GO实现。

PHP

class User{

public $phone;

public function calling(){

echo "我可以拨打电话";

}

}

GO

package main

type User struct {

phone string

}

func (U *User) calling(){

print("我可以拨打电话");

}

注解

划重点: Go 没有类似于 PHP 中的 Reflection相关的构思与实现。

虽然 GO 本身是没有做这方面的构思与实现,但是有很多扩展和第三方包通过反解析Go doc 来完成了此项功能。

以下举例:

这里只是说明以下内容实现了注解解析的内容。

Beego

Iris

swag

其实,在这一个点上,个人比较倾向于PHP哈,虽然没有JAVA的注解来的标准化,但是对于平民玩家更容易理解与构思哈,至少可以通过函数与类的实例,调取并解析注解的内容,而Go注解相关的解析成本就高的多了。

最后嘟囔一句:以上均为个人看法和理解,如有不同意见,请在评论区留下你的建议和指教。

待续

本文未完待续,因为旧梦也需要不断地学习,才能更好的更新….

后记

最后说一句:

有人的地方,就有江湖。有需求支配,才能迅速学习。

盼共勉,祝君荣登极道。

本作品采用《CC 协议》,转载必须注明作者和本文链接

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值