Go有没有像Laravel一样优雅的框架,或者像Laravel Eloquent 的ORM?

用惯了php,感觉Laravel太方便了,
Go的几个框架太单一,要什么没什么

阅读 16.8k
9 个回答

优雅是个偏主观的口味,很难说你的优雅和我的优雅是一回事。

router层面,我觉得golang的很多框架都还蛮好,比如我就比较喜欢用chi这个框架,路由和中间件都有。

ORM这块,由于golang的OOP风格以及泛型的缺乏,的确没有类似风格的ORM实现,也许golang 2.0添加了泛型之后会有改观。社区比较流行的gorm也不符合我的口味,我目前也就是靠sqlx才能维持生活这个样子。

换语言,跨生态环境就这样,入乡随俗吧。

UPDATE:

有时候换了语言之后,老是想把原来习惯的那套东西弄到新语言这边来,但是这种做法是有坏处的,就是你可能最后搞出了一堆php味的golang代码而已。

越是抓住原先的习惯不放,就可能越难体会到golang的精髓。所以我经常会建议我那些转到golang的同事先试试把原先的那些东西忘掉,原汁原味的golang写多一点再说。

不破不立,有舍有得。

@TechLee 可以考虑下GoFrame:https://goframe.org/ 比较适合你的想法,我也是这样一路过来的。

GF(Go Frame)是一款模块化、松耦合、生产级、实战化的Go应用开发框架。提供了常用的核心开发组件,如:缓存、日志、文件、时间、队列、数组、集合、字符串、定时器、命令行、文件锁、内存锁、对象池、连接池、数据校验、数据编码、文件监控、定时任务、数据库ORM、TCP/UDP组件、进程管理/通信、 并发安全容器等等。并提供了Web服务开发的系列核心组件,如:Router、Cookie、Session、服务注册、配置管理、模板引擎等等,支持热重启、热更新、多域名、多端口、多服务、HTTPS、Rewrite等特性。

大而全、大而精。

可以尝试beego,一个大而全的golang框架,内置orm。session,cache都是开箱即用的。

Go目前的特点就是简单粗暴,思路都不一样,Laravel那套是java里来的,你要是喜欢这个风格,你应该选spring全家桶或者nodejs里的nest.js

可以看看 gorose : https://github.com/gohouse/go... ,

模仿 eloquent 写的go版本的orm

GoRose(go orm), a mini database ORM for golang, which inspired by the famous php framwork laravle's eloquent. It will be friendly for php developer and python or ruby developer. Currently provides five major database drivers: mysql,sqlite3,postgres,oracle,mssql.

我目前使用 gorose orm + gin框架 + jwt认证 + vue 开发

go不需要用框架

推荐试试 Goravel,可以让 Laravel 使用者 0成本迁移。
举个简单的例子,创建 APP_KEY:

go run . artisan key:generate

go就不需要用框架,组织好项目结构就可以了,用框架很笨重,不适合go的风格

写web还是php最合适

推荐问题
宣传栏