关于 go 语言选型的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
xiaottt
V2EX    程序员

关于 go 语言选型的问题

  •  
  •   xiaottt 2018-07-27 09:30:06 +08:00 5821 次点击
    这是一个创建于 2642 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大家好。
    公司可能部分业务要慢慢用 go 来搞了,之前 C++攒了好多库和自己的轮子,用久了也挺可靠的,但是 go 一点也不熟悉。虽然说语法简单,上手容易,但是大量的第三方库也不知道该如何选型。
    请熟悉的大佬推荐一下,少踩点雷。

    谢谢。

    Http(除了 go 自带,有没有更好的)
    RPC
    MQ(比如 RabbitMQ)
    MySQL
    Redis
    log
    Json XML
    SSL

    21 条回复    2018-07-28 16:27:25 +08:00
    freehere
        1
    freehere  
       2018-07-27 09:35:51 +08:00
    reus
        2
    reus  
       2018-07-27 09:36:39 +08:00
    https://godoc.org/

    选搜出来的第一个
    Narcissu5
        3
    Narcissu5  
       2018-07-27 09:40:39 +08:00   4
    我就想知道为什么这么多公司对 go 一无所知还敢转过去,因为流行么
    saberpowermo
        4
    saberpowermo  
       2018-07-27 09:51:52 +08:00 via Android
    @Narcissu5 赞同。。。
    fatedier
        5
    fatedier  
       2018-07-27 09:55:32 +08:00
    @Narcissu5 必然是因为有一些吸引人的特性,期望换成 Go 后在某些方面能有改善,流行的话为什么不选 java。
    nullen
        6
    nullen  
       2018-07-27 10:11:15 +08:00
    第三方库的选型策略:去找知名的 Go 项目,看看里面引用的是什么类库。
    gowk
        7
    gowk  
       2018-07-27 11:22:36 +08:00   2
    能不用 orm 就不用 orm,避免不必要的复杂性
    sqlx 加一个 sql builder 足矣,可以考虑滴滴的 gendry,或者自己造轮子
    http 随大流选择 gin 吧
    log 可以考虑 uber 的 zap
    rpc 选择标准的 grpc 吧
    Narcissu5
        8
    Narcissu5  
       2018-07-27 11:23:09 +08:00
    @fatedier
    第一:java 不潮,干久了才发现编程也是个赶流行的行业,比如 jquery 在很多需求面前仍然是最好的工具,但这年头你都不好意思说自己前端是用 jquery 写的
    第二:java 积累了这么多年,每个三五年升不到高级开发,go 一两年就可以了,毕竟新语言,没有那么多老鸟压在头上
    gowk
        9
    gowk  
       2018-07-27 11:26:12 +08:00
    @Narcissu5 我想是因为 Go 简单,代码已读,熟悉 Java 或其语言的可以快速上手,但你可能要问直接用 Java 就好了,干嘛要换 Go,Java 刚出来的时候别人也是这么想的。软件行业在发展,编程语言也在发展,总会出来新的东西来替换旧的东西,这就是历史发展的自然规律
    askfilm
        10
    askfilm  
       2018-07-27 11:44:06 +08:00
    @Narcissu5 我也赞同, 我认为应该用最稳定,最熟悉的东西, 尤其对工作上的开发, 这是一种负责。 再说了新东西不一定是好东西, 会过多消耗公司资源, 自己和团队的精力! 尤其可以拖慢公司的业务速度, 是中小公司大忌!
    askfilm
        11
    askfilm  
       2018-07-27 11:45:51 +08:00
    大公司就喜欢搞出来一些新玩意,来折腾中小公司, 玩腻了就扔了 (个人观点)
    fuxiaohei
        12
    fuxiaohei  
       2018-07-27 11:46:49 +08:00
    既然是慢慢用 go 搞,可以从边缘业务、小工具层面做起,体验一下各种库好了。少踩雷是想得美。
    rrfeng
        13
    rrfeng  
       2018-07-27 11:47:21 +08:00 via Android
    楼上几位说的都对
    但我认为本质的问题是,楼主提出来的这个问题本应该自己通过搜索、分析、源码阅读等判断得到结论。如果只想到来问,那么一定转型不顺利。
    owenliang
        14
    owenliang  
       2018-07-27 11:50:25 +08:00
    尽量不用第三方库,如果用非得用就用吧,我是没碰过什么问题。
    notreami
        15
    notreami  
       2018-07-27 14:50:43 +08:00
    @gowk 这个布道,是在太低劣了。rust 比 go 新,要不把 go 扔了吧。软件行业在发展,编程语言也在发展,总会出来新的东西来替换旧的东西,这就是历史发展的自然规律
    mengzhuo
        16
    mengzhuo  
       2018-07-27 14:57:27 +08:00
    >> 之前 C++攒了好多库和自己的轮子

    难道是我厂……
    prondtoo
        17
    prondtoo  
       2018-07-27 17:04:24 +08:00
    https://gokit.io/
    微服务全家桶啊,再上 K8S 部署。
    y835L9DyC5XD09kq
        18
    y835L9DyC5XD09kq  
       2018-07-27 18:06:02 +08:00
    github 上有个叫 awesome-go 的项目,推荐看下
    zhangtao
        19
    zhangtao  
       2018-07-27 19:40:24 +08:00
    @gowk 握个抓,跟我的选型基本一致
    tianzx
        20
    tianzx  
    PRO
       2018-07-27 22:30:21 +08:00 via Android
    mark
    tt67wq
        21
    tt67wq  
       2018-07-28 16:27:25 +08:00
    我司的 webframework 用的 beego,感觉轻重比较适中,其他的没用过
    orm 是主程自己撸的。。。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2886 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 13:55 PVG 21:55 LAX 06:55 JFK 09:55
    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