初识Go语言

拈花ヽ惹草 提交于 2019-12-24 13:58:31

写在前面

  • 说起编程,首先不得不提的就是操作系统,编译器,还有代码编辑器,当然还有IDE(integrated development environment 集成开发环境)
  • 对于编程环境的配置,官方文档有详细的说明,需要读者耐心去看去操作
  • 我本人试过linux和windows下安装
  • 我使用的linux发行版本是ubuntu,直接源码安装,也很方便,下载源码,解压,设置环境变量,重启一下就ok
  • windows推荐使用msi文件安装,这样直接自带离线教程非常方便
  • 至于其它的工具,这里暂时不提

Go的来源

  • 这里截取百度百科的内容
    Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。

  • 这里截取Go中文文档(http://docscn.studygolang.com/doc/)中的内容

    Go 编程语言是一个开源项目,它使程序员更具生产力。

    Go 语言具有很强的表达能力,它简洁、清晰而高效。得益于其并发机制, 用它编写的程序能够非常有效地利用多核与联网的计算机,其新颖的类型系统则使程序结构变得灵活而模块化。 Go 代码编译成机器码不仅非常迅速,还具有方便的垃圾收集机制和强大的运行时反射机制。 它是一个快速的、静态类型的编译型语言,感觉却像动态类型的解释型语言。

  • 感想:开源代表了它的源代码是可获知的,遇到瓶颈问题可以查代码;而后面的优点列举,有博众家之长的地方,特别对于那些要求高并发的应用软件友好,让人感觉不可思议,为此我去查了一下它的缺点(出自asta谢,链接https://www.zhihu.com/question/21409296/answer/18184584):

    以下缺点是我自己在项目开发中遇到的一些问题:
    Go的import包不支持版本,有时候升级容易导致项目不可运行,所以需要自己控制相应的版本信息
    Go的goroutine一旦启动之后,不同的goroutine之间切换不是受程序控制,runtime调度的时候,需要严谨的逻辑,不然goroutine休眠,过一段时间逻辑结束了,突然冒出来又执行了,会导致逻辑出错等情况。
    GC延迟有点大,我开发的日志系统伤过一次,同时并发很大的情况下,处理很大的日志,GC没有那么快,内存回收不给力,后来经过profile程序改进之后得到了改善。
    pkg下面的图片处理库很多bug,还是使用成熟产品好,调用这些成熟库imagemagick的接口比较靠谱

  • 通过他的缺点可知,用Go编写程序,要注意版本;需要良好的编程能力,不能做代码的堆砌,要不然很容易造成低效率;最好能清楚GC机制,编程可以避坑

关于Go的语法语义学习

  • 官方教学文档即可,分为在线或者离线
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!