The Go Programming Language
› http://golang.org/
› Go Playground
Go Projects
› Revel Web Framework
ginakira

[2024 年] 有哪些大家觉得好用的 Go Web 框架/脚手架?

  •  
  •   ginakira ·
    Ginakira · Nov 27, 2024 · 9224 views
    This topic created in 706 days ago, the information mentioned may be changed or developed.

    在仅考虑 HTTP API 开发的前提下,大家有什么推荐的 Golang Web 框架或脚手架吗?

    如果不使用框架/脚手架自己组合的话,常用组件大家是如何选型的呢?

    43 replies  •  2024-12-28 17:08:48 +08:00
    javalaw2010
    javalaw2010
    Nov 27, 2024❤️5
    2
    没一个好用的,就算做好了心理建设接受了有些残疾的脚手架,后面还得去接受残疾的 ORM ,我觉得人生苦短,不应该在这上面浪费时间,最后还是决定不用 golang 作为业务层了,只用来做一部分非常边缘且简单的服务。
    Hellert
    Hellert
    Nov 27, 2024❤️3
    3
    echo
    fgwmlhdkkkw
    fgwmlhdkkkw
    Nov 27, 2024❤️1
    4
    额,我正在搞一个,刚开始。

    - 不写 tag 的 binding 和校验
    - 自动的路由注册和导入(一点点代码生成,且不需要额外的命令)
    - 自动的 api 文档生成
    fgwmlhdkkkw
    fgwmlhdkkkw
    Nov 27, 2024
    5
    @fgwmlhdkkkw sql 层面确实很难抽象,我还在想怎么做。
    wudiiiii
    wudiiiii
    Nov 27, 2024
    6
    @fgwmlhdkkkw 我不用 orm ,只用 db/sql
    windcode
    windcode
    Nov 27, 2024❤️1
    7
    gowk
    gowk
    Nov 27, 2024❤️1
    9
    用 Go 做业务开发/后端 API ,唯一的劣势就是没有一个统一的标准,没有好用的脚手架
    Java 有 Spring Boot ,.NET 有 ASP.NET/Entity Framework ,Python 有 Django
    Go 现在也进入主流开发视野了,但这方面还是挺残废的,写业务没有其他语言好用
    snxq1995
    snxq1995
    Nov 27, 2024❤️1
    10
    kratos 习惯了依赖注入后就挺不错的。还有就是未开源的 tRPC 生态非常好用。
    aleimu
    aleimu
    Nov 27, 2024❤️1
    11
    kratos 和 go-zero 都支持了脚手架创建 http 和 grpc 的代码,但是太抽象了,定位问题和接口时要跳转很多次才能看到重点....我现在还是再用 gin+wire
    qq135449773
    qq135449773
    Nov 27, 2024
    12
    在 go 里写 DI ,理由是什么...
    fffq
    fffq
    Nov 27, 2024
    13
    go 里面加 Wire 太恶心了。。。
    codersdp1
    codersdp1
    Nov 27, 2024
    14
    蹲一个答案,主要是 orm 这块
    mightybruce
    mightybruce
    Nov 27, 2024❤️1
    15
    中小型公司没必要用什么 DI, 另外 DI 这种东西说实话就是为了控制人的,好让你们成为像 Java 那样的 curd boy ,
    DI 的确也有好处,项目模块化更明显,剥离出业务逻辑,使得分工更明确。

    不过我想说这种脚手架真的没必要学,因为你到一个自研实力还不错的公司,这种东西都会有核心成员研发的,然后让其他人成为工具人,哈哈。

    几个 web 框架比如 gin, echo, beego 要会点,其他的都可以自己造的。
    xsen
    xsen
    Nov 27, 2024❤️1
    16
    go-zero 重度用户
    楼上 n 多人还在纠结 orm ,真的大可不必——gpt 类出来就是节省这些方面的时间的

    可以自动生成 http/grpc 框架代码,若喜欢一样可以生成 model 代码。这就够了
    rust
    rust
    Nov 27, 2024❤️1
    17
    GoFiber + Ent 吧
    me1onsoda
    me1onsoda
    Nov 27, 2024
    18
    @mightybruce DI 是什么? dependency injection ?
    uds9u32br
    uds9u32br
    Nov 27, 2024❤️1
    19
    如果是很大型的项目确实有点头疼,一般的 web 应用搞个 httprouter 都行,又不是非要什么 spring 一样的东西
    ginakira
    ginakira
    OP
    Nov 27, 2024
    20
    @fgwmlhdkkkw 不写 tag 的 binding 和校验听起来很有趣,请问是通过什么方式做呢
    mightybruce
    mightybruce
    Nov 27, 2024
    21
    @me1onsoda 是的, 这方面 go 有好几个, 一些业务团队会把 DI 用到各个 web 框架上并组成自己的脚手架,

    常见的 DI 有 google/wire(代码生成), uber-go/dig (反射)
    GopherDaily
    GopherDaily
    Nov 27, 2024
    22
    紫薇,答应我,不要为两抽象而抽象,好吗?
    i4color
    i4color
    Nov 27, 2024❤️1
    23
    gin+xorm
    sofukwird
    sofukwird
    Nov 27, 2024 via Android❤️1
    24
    chen11
    chen11
    Nov 27, 2024
    25
    难受,java 转的 go 。感觉 go 是一个项目一个规范
    johng
    johng
    Nov 27, 2024❤️4
    26
    yifeia
    yifeia
    Nov 27, 2024❤️1
    27
    gozero 开发中用的比较多
    字节的 hertz 和 Kitex 文档看着还可以,用了一下感觉也能用
    ZxykM
    ZxykM
    Nov 27, 2024❤️1
    29
    只自己用的话,pocketbase 是个不错的项目,我现在正在用
    tbxark
    tbxark
    Nov 27, 2024❤️1
    30
    自己撸了一个 https://github.com/TBXark/sphere, 基于 proto 定义,生产 go 代码和 api 文档,没事就往里面加点东西。
    wen20
    wen20
    Nov 27, 2024❤️3
    31
    gin+gorm
    FrankAdler
    FrankAdler
    Nov 27, 2024❤️1
    32
    echo+entgo
    Breacher
    Breacher
    Nov 28, 2024 via iPhone❤️1
    33
    ORM 只用 SQLBoiler, 最大的特色是 db schema first 和 100% type safe. 公司里从弱类型语言转 Go 的同事喜欢用 gorm
    fgwmlhdkkkw
    fgwmlhdkkkw
    Nov 28, 2024❤️1
    34
    @ginakira 指针偏移……
    qloog
    qloog
    Nov 28, 2024❤️1
    35
    框架: https://github.com/go-eagle/eagle 支持 http 和 gRPC, 关键是有脚手架,各种代码不用自己 copy 后再去修改了

    数据库:gorm 使用 gorm/gen 可以链接 db 生成 model 和基础的操作方法,避免 SQL 注入,关键是可以通过自定义 sql 生成代码,比如复杂的 多条件 sql 查询
    layxy
    layxy
    Nov 28, 2024❤️1
    36
    gofiber+ent
    Dogtler
    Dogtler
    Nov 28, 2024❤️2
    37
    tomaple
    tomaple
    Nov 28, 2024
    38
    @javalaw2010 #2 想问一下,那业务层目前你是用哪个呢
    IIInsomnia
    IIInsomnia
    Nov 28, 2024❤️1
    39
    gvison
    gvison
    Nov 28, 2024❤️1
    40
    集成 gin+gorm 的开发框架 https://github.com/zhufuyi/sponge ,生成代码功能非常强大,如果开发只有 CRUD api 服务,不需要编写任何 go 代码就可以编译并部署到 linux 服务器、docker 、k8s 上。sponge 提供了一站式项目开发(生成代码、开发、测试、api 文档、部署),大幅提高了开发效率和降低了开发难度。
    feikeq
    feikeq
    Dec 4, 2024
    41
    iris 就不错呀。
    pike0002
    pike0002
    Dec 17, 2024
    42
    gin + gorm
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2189 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 88ms · UTC 16:02 · PVG 00:02 · LAX 08:02 · JFK 11:02
    ♥ Do have faith in what you're doing.