为什么?
和PHP的Laravel简直太像了,用起来太香了,很顺手。
为什么不火?
对新手不友好,有门槛。
GoFrame特点
优势:
- 模块化
- 高性能
- 企业级
劣势:
- 有学习门槛
- 版本兼容性不好
- 暂不支持微服务
框架选型
谁适合用GoFrame
- PHP转Go(Laravel的同学会用起来很爽)
- Java转Go (Spring Boot的同学会用起来很爽)
- 比较复杂的企业级单体项目 (很规范,维护成本低,少踩很多坑)
谁不适合用GoFrame
- 编程小白(容易被劝退)
- 特别简单的项目用gin等轻量级框架(杀鸡焉用牛刀)
- 非常复杂的分布式微服务项目用go-zero等微服务框架(没有任何一款框架是万能的)
GoFrame框架设计思想
这些不作为本期内容的重点,大家可以直接阅读官方文档。
我也有计划录制视频,结合我们的商业项目,站在使用者的角度去分享使用GoFrame的感受,如何理解框架的设计思想。
开发流程
我梳理的 GoFrame V2最新版的开发流程
从0到1
- 设计表结构
- 使用gf gen dao 生成对应的 dao/do/model
- 编写api层:定义业务侧数据结构,提供对外接口的输入/输出数据结构
- 编写model层:定义数据侧数据结构,提供对内的数据处理的输入/输出数据结构
- 编写logic层,自动生成service层代码。(通过配置goland File Watcher自动生成,也可以通过gf gen service手动执行脚本生成,建议前者)
- 在service层代码生成RegisterXX()方法后,在对应的logic模块注册服务(每个模块只需要写一次)
- 编写controller层,接收/解析用户输入的参数,调用service层的服务。
- 注册路由,对外暴露接口,比如这个项目是编写cmd.go文件。
- 在main.go中 加入一行 _ “project-name/internal/logic” (只需写一次)
- 在main.go中加入一行 _ “github.com/gogf/gf/contrib/drivers/mysql/v2” (如果你使用的是mysql;只需写一次)
核心步骤
- 编写api层:定义业务侧数据结构,提供对外接口的输入/输出数据结构
- 编写model层:定义数据侧数据结构,提供对内的数据处理的输入/输出数据结构
- 编写logic层,自动生成service层代码。(通过配置goland File Watcher自动生成,也可以通过gf gen service手动执行脚本生成,建议前者)
- 编写controller层,接收/解析用户输入的参数,调用service层的服务。
- 注册路由,对外暴露接口,比如这个项目是编写cmd.go文件。
总结
没有一个框架是万能的,也没有一个语言是万能的。
结合自己的需求去选择合适的框架,合适的开发语言。
不要被眼前暂时的得意或者失意“一叶障目”,结合实际情况,实事求是,拥抱变化,不断学习,才能“见泰山”。
面向“养家糊口”编程,能稳定赚钱的职业才是好职业。
视频
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Go语言工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Go语言全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Golang知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Go)
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
图片转存中…(img-VV29wsVf-1712980428177)]
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!