现在上手 GO 得自己造框架吧 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
/span> Go Playground
Go Projects
Revel Web Framework
jss
V2EX    Go 编程语言

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

  •  
  •   jss 2019-05-13 21:53:07 +08:00via iPhone 9397 次点击
    这是一个创建于 2392 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有什么 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
    全都是垃圾。
    fengyj
        25
    fengyj  
       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 调用会很头疼。
    table cellpadding="0" cellspacing="0" border="0" width="100%"> 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     Solana     936 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 23:31 PVG 07:31 LAX 15:31 JFK 18:31
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86