V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
jss
V2EX  ›  Go 编程语言

现在上手 GO 得自己造框架吧

  •  
  •   jss · 2019-05-13 21:53:07 +08:00 via iPhone · 9041 次点击
    这是一个创建于 2025 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有什么 Go 框架推荐一下吗?
    37 条回复    2019-05-17 19:05:39 +08:00
    fengjianxinghun
        1
    fengjianxinghun  
       2019-05-13 21:57:01 +08:00 via iPhone
    gin echo 满大街框架…
    marsgt
        2
    marsgt  
       2019-05-13 22:13:41 +08:00
    可以看看这个:
    https://github.com/the-benchmarker/web-frameworks
    Web 框架速度横向对比。。Full table 里找 Language 是 Go 的就可以了。。


    而且就算真没的选,B 站不是还开源了一个叫 Kratos 的微框架么。。🌚
    lovejoy
        3
    lovejoy  
       2019-05-13 22:32:07 +08:00   ❤️ 1
    k8s 风格 https://github.com/caicloud/nirvana 感兴趣,没用过。
    icy37785
        4
    icy37785  
       2019-05-14 01:07:16 +08:00 via iPhone
    @marsgt 是的,b 站的开源框架配合 b 站源码这个实例,体验极佳。
    neoblackcap
        5
    neoblackcap  
       2019-05-14 01:30:31 +08:00   ❤️ 1
    要啥框架,Go 自己就一框架。http parser 都自带了,觉得性能不够高,上个更高性能的路由就可以了。要啥自行车
    skiy
        6
    skiy  
       2019-05-14 02:38:07 +08:00 via Android
    gin 第三方依赖太多太多了
    songjiaxin2008
        7
    songjiaxin2008  
       2019-05-14 02:51:01 +08:00
    chi + go-playground/validator
    acehow
        8
    acehow  
       2019-05-14 07:43:45 +08:00 via Android
    直接用 b 站之前开源的 blademaster 当 web 框架就好了,好歹也是经过互联网并发考验的。
    jss
        9
    jss  
    OP
       2019-05-14 08:52:51 +08:00 via iPhone
    @neoblackcap 刚上手,看看别人写的框架,提升自己
    jss
        10
    jss  
    OP
       2019-05-14 08:55:01 +08:00 via iPhone
    @acehow 新手刚上路,B 站不是被和谐了吗,哪里有
    jss
        11
    jss  
    OP
       2019-05-14 08:56:47 +08:00 via iPhone
    @marsgt 新手刚上路,B 站的找不到了,另外想看看别人写的框架,参考学习借鉴
    ZavierXu
        12
    ZavierXu  
       2019-05-14 08:57:41 +08:00
    刚上路就不要想着学别人写框架了,先解决会用的问题……
    chenset
        13
    chenset  
       2019-05-14 09:06:06 +08:00
    现在什么语言都有一个 awesome-XX 项目.

    https://github.com/avelino/awesome-go
    KurakiMai
        14
    KurakiMai  
       2019-05-14 09:13:17 +08:00 via iPhone
    gin+1
    southwolf
        15
    southwolf  
       2019-05-14 09:14:36 +08:00
    除了路由匹配 其实基本不怎么需要框架吧,原生 http 随便讨个 gorilla/mux 之类的路由就够了
    a719114136
        16
    a719114136  
       2019-05-14 09:30:58 +08:00 via Android
    虽然在用 gin 但还是更推荐 beego
    janxin
        17
    janxin  
       2019-05-14 09:36:59 +08:00 via iPhone
    why ?
    chenhui7373
        18
    chenhui7373  
       2019-05-14 09:43:12 +08:00
    php 转 go 还是 beego 最佳选择。

    java 转 go 选择 iris


    建议用 gin,官方响应快、中间件多。
    微服务用 b 站开源的,还有实战源码可以学习。从构建工具...


    自己研究微服务 看 go-chassis,虽然之前闹过开源,但仍然是整合度最高(集众长)的项目。
    单体应用可以是,php + golang 组合
    ylsc633
        19
    ylsc633  
       2019-05-14 09:48:25 +08:00
    我个人推荐 gin

    我用过 beego 和 gin

    beego 虽然很方便.. 但是那个 orm 让我很痛苦.. 除非你已经吃透了文档..

    比如关联关系, 比如 user 表和 post 表关联. 那么关联表 你必须建成 users_postss 这种名字.. 然后 其他关联关系,比如 post 表里有个 作者,关联 user 表,你必须得写成 user_id 如果你的表不叫 user. 那么 post 里是不能写成 user_id 的.. 当然了.你可以硬写.. 否则你是用不了 relations (已有项目重构不太建议这个... 就因为这个关联关系.我吃过亏)

    beego 表单校验还挺好用的

    我现在自己用的话 是 gin+xorm (xorm 貌似没有关联关系...得生写)
    自己用的自己写的 https://github.com/izghua/zgh
    这是这个包 用到的 https://github.com/izghua/go-blog

    不习惯可以自己用 原生写,要啥自己加啥! 如果都没搞过.. 建议还是用 beego 吧.毕竟里面东西很常用.且中文文档爽歪歪!
    lepig
        20
    lepig  
       2019-05-14 10:03:42 +08:00
    @a719114136 求解。目前主要写 PHP,最近也在入门 Go
    leopku
        21
    leopku  
       2019-05-14 11:38:36 +08:00
    虽说市面上框架很多,但实际到项目中仍然需要非常非常多的额外工作
    比如,普通 Web 项目用 gin,加上 orm、DI、DDD、测试相关,七七八八下来的代码量相对业务的代码量,很喜感

    下一步打算把这些做成模板,新建项目的时候按模板重建,提高复用
    leopku
        22
    leopku  
       2019-05-14 11:40:29 +08:00
    补充一下
    普通 Web 项目推荐:gin + gorm/xorm
    微服务推荐:go-micro
    mywaiting
        23
    mywaiting  
       2019-05-14 11:42:46 +08:00   ❤️ 1
    要用啥框架,真是用框架用出毛病了,go 自带的这套挺好用的啊,唯一就路由差一点,搞个路由就可以开工了
    reus
        24
    reus  
       2019-05-14 11:58:47 +08:00   ❤️ 1
    全都是垃圾。
    huiyifyj
        25
    huiyifyj  
       2019-05-14 12:09:34 +08:00 via Android
    GitHub 关键词 go framework 搜索。
    个人推荐 gin 和 echo。
    dabaibai
        26
    dabaibai  
       2019-05-14 12:18:42 +08:00
    不用 要啥有啥
    tomoya92
        27
    tomoya92  
       2019-05-14 12:21:11 +08:00 via iPhone
    我用 beego 写的论坛 https://github.com/tomoya92/pybbs-go

    感觉挺好用的,不过模板真心不好用
    v2nika
        28
    v2nika  
       2019-05-14 13:15:12 +08:00   ❤️ 1
    go 做 UI 层不推荐,UI 层用脚本语言更灵活一点,service 层用 go 的话,直接 grpc 就好了,不需要框架,只要一个 orm 统计 db 层接口就好。另外要做的事情是约束好项目的目录结构,重点是要根据业务需求好好设计 API,不然前端 Node 或者 PHP 调用会很头疼。
    artandlol
        29
    artandlol  
       2019-05-14 13:47:42 +08:00 via iPhone
    @icy37785 可否私发一份源码
    marsgt
        30
    marsgt  
       2019-05-14 14:49:39 +08:00
    @jss 不是,我说这个是 b 站前几天开源的这个,https://github.com/bilibili/kratos
    虽然时间点比较奇怪,但确确实实是官方开源的东西。。
    kiddingU
        31
    kiddingU  
       2019-05-14 15:57:41 +08:00
    不嫌麻烦就自己造轮子咯,造轮子也简单,嫌麻烦网上一堆框架,什么 gin echo beego
    iPhonePKAndroid
        32
    iPhonePKAndroid  
       2019-05-14 16:12:11 +08:00
    许多人推荐 gin,你可以选择
    keepeye
        33
    keepeye  
       2019-05-14 16:21:05 +08:00
    目前在用 iris gin 也用过 iris mvc 方便点
    elone
        34
    elone  
       2019-05-14 16:26:47 +08:00
    前一个项目用 gin 写 restful,感觉不错。新项目统一上 graphql,就没有必要用 gin 了,统一用自带
    lxml
        35
    lxml  
       2019-05-17 00:37:10 +08:00
    @leopku go-micro 感觉有成为 go 社区的 spring 趋势
    praynise
        36
    praynise  
       2019-05-17 16:51:09 +08:00
    有个叫 go frame 的了解一下…一个大而全的框架,还包含了好多有用的功能,不管是不是 web 应用都用得上
    preach
        37
    preach  
       2019-05-17 19:05:39 +08:00
    gin beego 两个风格 看个人
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1043 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 22:08 · PVG 06:08 · LAX 14:08 · JFK 17:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.