共计 1999 个字符,预计需要花费 5 分钟才能阅读完成。
在过来几年,有一门崛起的新语言:Go 或者 GoLang。没有什么比一门新的编程语言更令开发者兴奋了,不是么? 自从我开始学习 golang 后,我便放弃了我的 php 大业,尽管 php 号称“php 是世界上最好的语言”,然而通过实战证实,golang 更香甜。
为什么要学 go 语言?
扯太高大上的劣势我也说不上来,我就从我切身经验的几个方面说说我为什么学 golang 吧。这些都是实在的需要比照,它制约着我后退的步调。
在 php 开发的时候,我常常遇到一些不太好解决的问题:
- php 只能单线程执行工作,在比方在采集工作中,它须要抓完一个网页,再接着抓第二个网页,这效率重大低下,无法忍受之痛。尽管在服务器上跑能够应用打算工作开多个 php 过程,然而内存开销又变得太大了。
- 在用 php 开发的网站中,url 申请的内容只能等服务器端执行结束能力响应给客户端,无奈异步执行。这个问题比拟头疼,比方提交的连贯要查看页面状态,提交的时候间接查看的话,就须要用户期待较长时间,尽管能够变相应用打算工作配合执行,然而究竟不完满,并不是我想要的解决方案。
- 在 php 中,如果程序有比拟多 curl 申请网络工作,并且连贯迟迟没完结的话,它很容易就导致网站呈现 502 的问题。尽管能够通过设置 curl 超时工夫来升高产生频率,然而它始终是一个悬在头上的问题。
- 大佬公司都在转 go,七牛、阿里、百度、腾讯、头条、京东、哔哩哔哩等。跟上时代步调,才不会被时代淘汰。
- 执行速度问题,我只想让网站更快的展现给用户。
以上的种种,导致了我要寻找一门语言去克服它。通过多方比照后,golang 能够完满解决我遇到的问题,所以,我就开始了学习 golang 之旅。
golang 的劣势有哪些?
网上很多对于介绍 golang 劣势的文章,无异于都是在说硬件局限性问题、goroutine、间接在硬件上跑、易于保护、google 背书等。这些劣势我就不再一一反复了,因为大家搜寻答案的时候,曾经屡次看到了,我再补充一些其余劣势。
- 简略好记的关键词和语法。golang 语法简略,这个是真的简略,即便素来没接触过过编程的用户,都能够轻松上手,比 c ++、java 更简略易学,甚至比 php 学起来都轻松。与同为强类型语言的比 c ++ 比,更是简略得多。尽管简略,然而实现起性能来,一点也不含糊。
- 更高的效率。更快的开发效率、更高的编译速度。比 java、c++ 编译速度上快了 N 个数量级,golang 领有靠近 C 的运行效率和靠近 php 的开发效率。
- 网络库十分弱小,个别大块的性能实现,都有现成的库能够间接应用,不晓得库地址都不要紧,你想要什么性能的实现,用浏览器关上 github,或网速慢的用户关上 gitee,搜寻你想要的性能的关键词,抉择 go 我的项目,基本上都能找到你想要的性能,而后,间接将他的库拉下来应用就能够啦。
- 严格的依赖治理,自身禁止循环依赖,依赖的治理命令也很简略,go mod 命令就能够解决所有依赖。Go 领有弱小的编译查看、严格的编码标准和残缺的软件生命周期工具,具备很强的稳定性,稳固压倒一切。编译的时候就将可能埋雷的中央给掐死了,释怀,这是一个很好的查看,能够让你的代码更标准。
- 跨平台穿插编译,间接生成可执行二进制文件公布,比方我只有 Windows 零碎,我仍然能够间接编译出在 mac、linux 上可执行的程序,是不是很爽,省钱能手,还省去了别离部署环境的问题。当然更重要的是,代码不会裸露了,对于商业爱护来说,特地是开发 php 我的项目,想要代码不被破解,几乎是难于登天。这样一下子好了,公布一个执行文件,平安。这一点是很多人抉择 Go 的最大理由,因为部署太不便了,所以当初也有很多人用 Go 开发运维程序。
- 并发和异步执行不要太简略,一个 go 关键词就搞定了。前台提交了个 url 须要检测,go checkUrl(link) 开启一个 goroutine 让它缓缓跑吧,不要堵住主过程。须要采集的网页数量有点多,一个个循环采集那是要等到何年何月能力采集完啊,开 100 个 chan,100 倍的速度跑起来,只有你的带宽足够大,就不怕它跑不快 (此处倡议拉一根 500M 带宽的网线)。
- 严格的语言标准。变量肯定要申明,用不到的包不能引进来,大写字母结尾的函数、构造体变量是公开拜访的,小写的是公有的,没有三目运算,严格的变量类型转换。所有写 go 的程序员都对立一样的标准,你只能依照这些标准来写代码。从此不再有为规范思前想后、争来吵去了,代码清晰了,可读性高了,可维护性天然就好了。
golang 总结
golang 的背地,真的是 google,go 的创始者都是大牛,他们开发和开源 go 进去,就是为了解决已有的老语言无奈更高效的为软件开发工作的问题,golang 实现了媲美 c ++ 的执行速度,比 java 更简略的语法特点、编译速度靠近 php 语言等,让他成为开发语言中的一个新贵。它让开发变得更加简略。做开发,不就是要谋求易学易用嘛。golang 再适合不过了。
正文完