目录
写在前面
- 说起编程,首先不得不提的就是操作系统,编译器,还有代码编辑器,当然还有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的语法语义学习
- 官方教学文档即可,分为在线或者离线
来源:https://www.cnblogs.com/laiyuanjing/p/10765337.html