目录
一、Go简介
go语言是由google发布的开源编程语言,有个好爹。
特点:
- 静态编译,会生成机器码,支持类似plan9汇编;
- 没有虚拟机
- 可以制作动态链接库,供Go或C程序使用;
- 可以调用C语言生成的动态链接库;
- 天然具有并发性(协程支持);
- 协程间通信,通常使用channel;
- 具有丰富的网络、数据库等方便服务器开发的标准库;
典型应用:
- 微服务、容器、服务器
二、Go框架
初步探索Go程序开发,作为一种比较新型的语言,在框架方面还没具有较好的生态,所出的一些框架发布版本较低(例:v0.x 1.x)。今天(2020年5月31日)初步研读了几个框架的官方文档和网友分享文章,给大家分享一下:
WEB框架:
Beego框架是国人开发的比较早出来的一款web框架,具有几个成熟的模块可用(orm模块的评价褒贬不一),研读了几篇分析文档,我认为比较客观的评价是,这款框架很适合小白入门学习,快速体验成果,也很适合一部分专注业务的研发项目,beego能够提供较为成熟的基础架构,从而降低人员要求,专注业务开发。但是,更多人认为beego过于庞大复杂,不符合go语言的发展生态,对应专业的程序员来说,更喜欢go的定制开发和轻量级框架的使用,例如需要orm就是用gorm、xorm框架,需要其他现成模块再集成其他框架。这样做到灵活开发和轻量级(代码量少)的合理平衡。
Gin框架,专注于解决web框架方案,比Beego要轻量的多,更受专业程序员喜欢。
ORM框架:
同样研读了几篇文章和官方文档,目前gorm、xorm应用广泛,gorm文档更加全面一些,我阅读后也感觉比较舒服,所以也更喜欢gorm这个持久化框架。
三、个人感悟
综合分析,个人感觉Go语言具有开发快、代码量少、更贴近底层、运行简单等特点。它更适合API应用开发、网络应用开发,如果开发web应用,使用前后端分离技术更为合适,可是与vue、angular合理搭配,发给各自优势。在项目架构方面,个人认为Go的项目目前不建议使用过于臃肿的框架(小白学习除外),而应该根据具体问题寻找对应的解决方案,从而保持它“轻巧、简单、易于维护”的特点。