V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xiaottt
V2EX  ›  程序员

关于 go 语言选型的问题

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

    大家好。
    公司可能部分业务要慢慢用 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 部署。
    kangkang
        18
    kangkang  
       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  
       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   ·   实用小工具   ·   4184 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 05:22 · PVG 13:22 · LAX 21:22 · JFK 00:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.