-
有哪些go语言的优秀项目?
-
go相关的资料及书籍推荐
-
学习方法
-
- 1. 36循环系统
-
2. 复盘
-
3. 思维导图
-
总结
这些年我学过很多编程语言,从最开始的java,到后来的php,shell,Python,go。 编程这东西就是越学越简单,只要你会了其中一门编程语言,其他的学起来倒也得心应手。
很长时间以来,我一直在教shell, shell作为一门动态语言,学习起来难度不大。 但如果对于Linux命令不熟,就显得超级难学。
我用shell脚本带大家一起写过购物车模块,写过系统巡检模块,甚至仿写过zabbix监控的所有功能,也用shell脚本写过爬虫。
总体来说,虽然shell可以做的事情很多,但这门语言的志向并不在此。
在云原生领域,随着docker,k8s的普及,go越来越火;使用go对分布式存储,云计算产品进行二次开发,也是大势所趋。
但纵观现在培训机构的课程,动辄就是两三万,着实有点贵了, 所以新开一个go语言学习专栏,一起来探讨这门编程语言的奥秘。
Go语言诞生于2007年由谷歌公司研发,2009年开源,2012年推出1.0版本,大多数公司选择使用golang的主要原因是: golang和c++ 相比有GC, 和java相比更简洁,与Python相比更快。
当年我们公司的主打语言是C++ ,但是总出现内存泄露或者crash, 改成Python之后,总是在重构,不堪其扰,于是就想着换门新语言,或许能解决这个问题。
的确使用go之后,之前的代码问题全部都没有了,但这并不是go语言的功劳,而是因为原先老的代码一团浆糊,用新的代码重构,屏弃掉了写老代码程序员的陋习,让代码更规范。
能够解决代码问题的不是语言本身,而是人。
现如今很多程序员,从来没有深入去钻研过软件工程的规律和技术,也没有深入去学习过一门编程语言的特色,写代码完全凭心情。 就像开车一样,有交通规则你不遵守,最终出问题,你又怪车或者路不好。
go属于静态强类型,编译开发型语言,语法和C相近,每个语言都有一个吉祥物,go也不例外,go的吉祥物是: 金花鼠
动态类型语言和静态类型语言的区分:
动态类型的语言:
动态类型语言和动态语言是完全不同的两个概念。
动态类型语言:是指在运行期间才去做数据类型检查的语言,说的是数据类型,
动态语言:说的是运行是改变结构,说的是代码结构。 动态类型语言的数据类型不是在编译阶段决定的,而是把类型绑定延后到了运行阶段。
动态主要语言:Python、Ruby、Erlang、JavaScript、swift、PHP、Perl。
静态类型语言
静态语言的数据类型是在编译期间(或运行之前)确定的,编写代码的时候要明确确定变量的数据类型。
主要语言:C、C++、C#、Java、Object-C。
Go 语言是一种静态类型的编程语言,所以在编译器进行编译的时候,就要知道每个值的类型,这样编译器就知道要为这个值分配多少内存,并且知道这段分配的内存表示什么。
提前知道值的类型的好处有很多,比如编译器可以合理的使用这些值,可以进一步优化代码,提高执行的效率,减少 bug 等等。
目前在boss直聘上,go语言的招聘岗位还是蛮多的:
从上图可以看到,想要招go的工作,必须要懂docker和k8s,这其实也是为什么要在云原生的后面才开始学习go的原因。
Go语言是Google公司创造的语言,也是Google主推的语言。国外如Google、AWS、Cloudflare、CoreOS等,国内如七牛、阿里、小米、等都已经开始大规模使用Golang开发其云计算相关产品。
很多大公司的项目,比如腾讯的蓝鲸平台,百度的BFE项目,阿里的CDN以及其他系统部门,京东的推送系统,云存储,以及京东商城,都在使用go
而对于运维来说,可以使用go语言做运维,甚至开发一些k8s控制节本
为什么大家都热衷于使用go语言呢?
因为,安全性高,而且能提高开发人员的生产力,并发性比较强。
-
docker,golang头号优秀项目,通过虚拟化技术实现的操作系统与应用的隔离,也称为容器;
-
kubernetes,由google开发,简称k8s,k8s和docker是当前容器化技术的重要基础设施;
-
etcd,一种可靠的分布式KV存储系统,有点类似于zookeeper,可用于快速的云配置;
-
codis,由国人开发提供的一套优秀的redis分布式解决方案; tidb,国内PingCAP 团队开发的一个分布式SQL
-
数据库,国内很多互联网公司在使用; influxdb,时序型DB,着力于高性能查询与存储时序型数据,常用于系统监控与金融领域;
-
cockroachdb,云原生分布式数据库,继NoSQL之后出现的新的概念,称为NewSQL数据库;
-
beego,国人开发的一款及其轻量级、高可伸缩性和高性能的web应用框架; caddy,类比于nginx,一款开源的,支持HTTP/2的
-
Web 服务端; flynn,一款开源的paas平台;
-
consul,HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置;
-
go-kit,Golang相关的微服务框架,这类框架还有go-micro、typthon;
-
go-ethereum,官方开发的以太坊协议实现; couchbase,是一个非关系型数据库;
-
nsq,一款高性能、高可用消息队列系统,每天能处理数十亿条的消息;
-
packer,一款用来生成不同平台的镜像文件的工具,例如VM、vbox、AWS等;
-
doozer:高速的分布式数据同步服务,类似ZooKeeper; tsuru:开源的PAAS平台,和SAE实现的功能一模一样
-
gor:一款用Go语言实现的简单的http流量复制工具;
-
go语言中文网 算是一个比较全的网站了,汇集了go相关的学习资料与技术文章
-
GO技术交流论坛 目前活跃度还算可以,整体来看用户不是很多,毕竟go也属于小众语言,能够理解
-
Go语言知识图谱 为打造个人体系做参考
-
推荐书籍: 《Go语言趣学指南》《Go语言入门经典》《Go语言编程》《Go语言高级编程》《Go语言并发实战》《Go Web编程》《Go学习笔记》
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Go语言工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Go语言全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Golang知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Go)
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Go)
[外链图片转存中…(img-4Uji8q4H-1712924181269)]
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!