我的视野开始慢慢变得清晰,我的目标也渐渐变得明确,我想要通过自学来掌握如何开发网站。可在浩瀚的技术海洋里,我该选择何种比较适合我的工具来实现这个目标呢?直到我碰见了它,它的到来,犹如在黑暗中即将迷失航向的时候,遇到了明亮灯塔,那一束光,指明了方向,Go语言,就你了。
在此之前,我也尝试学习过其他建立web工程的语言,像php、python、java,但学完之后并不经常用,基本都不熟练,其中php我现在都忘了它长什么样子了。python虽然偶尔用一下,但我始终不喜欢它的缩进风格。java似乎是一个不错的选择,生态也完善,学习资料蛮多,市场占有率也高,遥想过去,在13年的时候,我当时还特意学习了java,我记得当时学习三大框架的时候,是Spring、Hibernate和Struts,但是我学习的过程中很快我就发现,我渐渐有点学不明白了,java语法倒好说,但一涉及一些javabean,jsp,三大框架等等的概念,云里雾里,都快睡着了,所以java当时基本就放弃了,老老实实的做c++了。直到去年23年的时候,突然心血来潮,又重新的开始学习起来java,从B站上找的学习视频,发现java的变化也很大,学了一圈之后,总感觉学习的量比较大,不太容易消化,在加上工作中根本不用,疏于复习,所以23年学java走上了和13年学java一样的路,有种天道轮回的感觉,令人唏嘘啊......
今年,工作的项目有一个模块用Go语言来进行开发,以前我就听同事说应该学学Go语言,但我并没有放在心上,但现在工作的需要,我也开始研究起了Go语言,这一研究不要紧,我发现Go语言是一个宝藏语言啊,其中有一点吸引了我,用Go语言也适合搭建Web项目,这让我如获至宝,我开始向这个方向研究,那我为什么要用Go语言来实现Web项目呢?原因如下:
1. Go语言的学习成本较低,如果你是一位c或c++的开发人员,那么学习Go语言的基本语法不会超过一周的时间,我就是在网上看视频3天掌握了这门语言的语法。简单易用,适合我这种学习时间少的人。
2. Go语言同样跨平台,可以在Linux平台上开发运行,也可以在Windows平台开发运行,而且Windows编译的程序可以在Linux平台上直接运行。这样不用纠结不同的平台用不同的代码。
3. 不同于解释型语言,Go语言是编译型语言,和c语言一样,编译型语言的性能要高一些,省去了解释型语言需要解释的过程。
4. 代码有统一的风格,我们在开发代码的时候不管有多乱都不用操心,gofmt会将代码格式化到标准风格,所以开发的时候不用纠结于空一行还是空两行,gofmt自动帮你解决了代码风格的问题,可以用心编码。
5. 并发机制出众,Go语言提供了比线程级别还小的协程。
6. 丰富的社区学习资源,丰富的库,程序员最不应该做的就是重复发明轮子,目前Go语言有很多库可以让开发人员直接使用,让我们直接面对业务,没有其他的后顾只有。
7. Go语言由谷歌公司这样的大公司进行开发维护,更新有保证,功能会更强大。
8. 部署简单,Go语言最终会编译成一个可执行程序,在项目部署的时候,直接运行可执行程序即可。
总结一下,以上就是我想通过Go语言来实现Web项目的原因,就是因为简单和方便易用,另外针对于Web框架也有很多,这里列举下面几个:
1. beego,网址:https://github.com/astaxie/beego
2. gin,网址:https://github.com/gin-gonic/gin
3. echo,网址:https://github.com/labstack/echo
4. Iris,网址:https://github.com/kataras/iris
5. goframe,网址:https://goframe.org
其中上述的框架都是很好的学习资料,我采用了goframe作为了我的开发框架,里面的开发文档丰富,可以用于Web开发,但不止于Web开发。
另外对于正准备学习Go语言的朋友,我推荐以下几个学习资料:
1. 如果是c语言或者java语言的开发者,可以看B站的视频,8小时转职Golang工程师(如果你想低成本学习Go语言)_哔哩哔哩_bilibili
2. 如果之前没有学习过编程语言,Go语言是第一语言,我推荐看《Go程序设计语言》这本书。
3. 如果学习goframe框架的话,可以直接去官网https://goframe.org,里面的学习资料真的非常非常棒。