Go语言新手该怎么选择Web框架学习? |
您所在的位置:网站首页 › go语言的框架 › Go语言新手该怎么选择Web框架学习? |
![]() 所有初学Go语言的同学好像都会遇到一个问题: 该怎么选择Web框架学习? 我们建的交流群里面,新人问得最多的问题就是这个。 于是就有了这篇文章,我们详细来讨论下这个问题。 框架我们要聊框架,就先分析下 go 语言里面的框架。 如果你有一定基础,用过一些框架,比如 gin 这些,你会发现它和 java 的框架不太一样; 好像没有一堆的代码需要拉到本地,也不需要在固定的文件结构里面写代码。 你似乎感觉你用的不是一个框架,好像就是一个包。 对,就是像一个包。 你或许会怀疑,gin 是不是个例,其实不是,其他像 go 里面比较出名的微服务框架 go-micro 也是如此。 go 语言里面的大部分框架都是这样的,使用时都是像一个包一样,大部分框架都不会约束你的文件结构,你想怎么建文件结构,随你心情。 这样一来,对开发者的要求相对来说就会高一些。 你需要理解框架是怎么运行的,你才可能知道怎么去开箱使用框架。 不能像其他语言的框架,你只需要在指定的文件夹,写固定代码,然后 run 就好了,稀里糊涂的就启动了程序。 为什么 Go 语言的框架不像框架?不是说别的语言框架不好,也不是说 go 语言的框架就多好。 语言和框架都是时代的产物,一个框架的流行,必定和当时的技术趋势有关。 在微服务出现之前,大都是单体服务。 单体服务,需要处理很多问题,比如:页面渲染、数据流转、安全过滤等,每一个模块都需要顾忌到。 但是这些问题里面,大多数项目都是可以通用的,于是这部分就沉淀到了框架。 使用框架的人,就只需要去专心处理业务部分的代码即可。 所以,你会发现,之前的框架大都属于全家桶,大而全的风格。 但微服务概念出现之后,大家都不再喜欢开发大而全的服务了。 大家开始喜欢把不同的模块,独立成不同的服务。 这样渐渐的框架就开始往小而美的方向发展,尽量各司其职最好,互相依赖的越少越好。 试问现在做后端开发的,有多少同学还在用后端语言去渲染前端页面? Go 怎么选框架学习?最后我们回到主题,我们来列一下常见的 Web 框架,大致可以分为两个流派: 一个是大而全的,如:Beego 、Revel 等; 这类框架的特点是按 MVC 的方式去构建,如果要开发单体服务,或者需要渲染页面的服务,是比较好的选择。 另一个是小而美的,如:Gin 等; 这类不太像框架的框架,你也可以说他就是一个路由包,这类框架他非常适合去开发纯 API 的服务,他封装的功能非常有限。 是不是这么一分之后,再去选框架就容易多了! 尽管分类了,但是还是有这么多框架,该怎么学呢?不可能全部挨个学吧? 答案是否定的,如果你确实时间够多,全部挨个学也可以。 如果没有那么多精力的同学,就需要反复思考这句话了:框架是时代的产物! 所以选择框架学习时: 一、首先考虑学习框架的动力 学习和工作,是两个领域。 学习的技术不一定是为了工作,但是工作的技术你必须学习。 二、考虑你当前所处的技术环境是怎么样的? 如果你所处的技术环境还在单体服务,那就干大而全的框架。 如果你的技术环境已经开始往微服务跑了,最好是干小而美的框架。 如果你不知道自己当前所处的技术环境,精力也有限,那就从小而美的框架开始学习,搞定小而美的框架,再去搞一搞大而全的框架最稳妥。 你学废了么? |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |