这是我参与「第三届青训营 -后端场」笔记创作活动的第3篇笔记,用来谈谈我对java和go的不同感受
首先,我觉得java是严格遵守类,也就是对象来使用的,所有功能都封装到了类里面,一般想要使用它的功能的话,就需要创建一个实例,在使用了springboot框架之后,我原本觉得java写web已经够简单了,但是在我使用了Go 之后,我发现Go的 配置还要简单得多,就比如,从链接中获取发送过来的参数,java需要用注解来表示对应,但是go直接使用(c *gin.Context)来获取所有参数,然后下面就可以通过c.Query("参数名字")来获取参数。
然后就是速度的差别,我虽然写的代码不是很难,按理说启动速度应该差别不大,但是,我还是能够感觉出Go语言的项目启动比java要快一些,这让我感到很爽,这样如何出错了的话,我就能不断改代码,然后调试,中间却不需要等太长的时间
在风格方面,我个人感觉java的更加严格,代码看起来也更舒服,但是写起来也更繁琐。而Go语言的风格我觉得有点类似C语言,不调对象,调用函数,用函数名首字母的大小来判断是否是共有或者私有函数。不过Go也可以用代码变成类那样的模式,就是通过代码函数创造单例对象,然后其它go文件通过调用函数来创造对象,印象深一点的就是数据库连接就是这样弄的
在,扩展方面,毫无疑问,是Go的扩展较强,java用的是maven来控制控制的,需要在配置文件里面配置。而go的话,用的是mod来控制,而且很多都是来自github上面的,这扩展性是在是太强了,而且导入包的语法也很简单
Go语言不能有没使用的变量,这也算是Go很大的一个特色了,我也不知道这个算优点还是缺点,因为他确实给我写代码带来了一些烦恼,因为有些变量是先写出来,后面用,但是在它之前我想先测试一个中间的代码有没有问题,Go就会报错,一般这个时候我就会用那个变量创一个空的判断语句来防止报错