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

Go 语言的 Web 开发处在什么地位了,有没有大厂开始用 Go 开发服务器了。

  •  
  •   Hanggi · May 23, 2019 · 20214 views
    This topic created in 2728 days ago, the information mentioned may be changed or developed.
    如果与 Nodejs,Python Django,Java Spring 等热门服务端开发技术相比,处于什么地位呢?
    有没有比较新比较直观的比较?
    105 replies  •  2019-06-16 01:46:43 +08:00
    1  2  
    ❮ ❯
    SurfaceView
    SurfaceView
    May 23, 2019❤️1
    1
    知乎 从 python -> go
    messyidea
    messyidea
    May 23, 2019❤️1
    2
    字节跳动也是主 golang 了
    lazypu
    lazypu
    May 23, 2019
    3
    b 站, 虽然不知道以前是啥
    a7029508
    a7029508
    May 23, 2019
    4
    bilibili 泄露的 go 用来做什么的代码
    f1ren2es
    f1ren2es
    May 23, 2019
    5
    火星救援,幻电重工对 Go 开源界做了很大贡献
    coolbit
    coolbit
    May 23, 2019
    6
    根据对外发布信息的了解,BAT 中均有核心应用使用 golang 作为开发语言,分布在流量入口 API 网关(B 的 BFE),RPC 框架,容器以及容器调度等领域
    cookey39
    cookey39
    May 23, 2019❤️3
    7
    emm......我个人虽然不看好 go,但它的确一点点蚕食 java 和 c++ of web 的份额
    七牛和哔哩哔哩的主要就是 go 写的吧,b 站用 go 重构之后的确晚上八点之后服务器再也没挂过,虽然用 java/scala 重构效果也一样吧........可是至少证明 go 在工程领域和 java/scala 是一样可用的....
    supuwoerc
    supuwoerc
    May 23, 2019
    8
    前段时间的 B 站泄露啊,七牛什么的都是吧,最近也在学习 Golang
    yuankui
    yuankui
    May 23, 2019
    9
    还是 Java+Spring+Reactor+Netty 香~
    araraloren
    araraloren
    May 23, 2019❤️1
    10
    别用了,改天美国就发禁令让谷歌禁止我们使用 go 了 :D
    lhx2008
    lhx2008
    May 23, 2019
    11
    B 站,知乎,字节跳动,网易娱乐( Web 后端),腾讯(很多新业务已经用 Go 替代 C++),阿里中间件,七牛
    lihongjie0209
    lihongjie0209
    May 23, 2019❤️7
    12
    你用的 go 和大厂用的 go 是两个概念
    yemoluo
    yemoluo
    May 23, 2019
    13
    人家字节跳动的飞聊都用上 Rust 了
    Yoock
    Yoock
    May 23, 2019 via iPhone❤️1
    14
    @f1ren2es 好奇火星救援是哪家公司?
    SimbaPeng
    SimbaPeng
    May 23, 2019
    15
    @lihongjie0209
    你用的所有语言都和大厂是两个概念
    DomonLee
    DomonLee
    May 23, 2019
    16
    前两天泄漏的是哪家?
    windyboy
    windyboy
    May 23, 2019
    17
    了解下 k8s
    askfilm
    askfilm
    May 23, 2019
    18
    你用的 go 和大厂用的 go 是两个概念 +1
    66beta
    66beta
    May 23, 2019 via Android
    19
    美团
    passerbytiny
    passerbytiny
    May 23, 2019
    20
    @cookey39 #7 c++ of web 是个什么鬼?另外没事别乱下结论,java web 不用蚕食,原本就没份额。
    version
    version
    May 23, 2019
    21
    go 处理特定需求才会使用的了..语音.socket.高 io 的等
    普通业务哪个语言快还是哪个..中间老早是网关串联.rpc
    低成本快速开发.就是 nodejs + php +第三方服务 也是未来趋势
    别看那么多吹逼的..在国内还是很多小团队.小企业.的..不是哪个企业都能支撑几百的开发人员..每月 100 万的技术部工资..和高并发..
    哪个省钱易迭代就是趋势..只有技术高低的开发人员.没有语言上的高低之分..
    chikang
    chikang
    May 23, 2019
    22
    google 开始对国内禁用 go.... 或者对国内收费
    全都得完
    testeststs
    testeststs
    May 23, 2019
    23
    @cookey39 不看好的理由能说下嘛
    kevinlm
    kevinlm
    May 23, 2019 via iPhone
    24
    @chikang java 好像 9 版本以上,已经收费了。
    fengyj
    fengyj
    May 23, 2019 via Android
    25
    @messyidea 字节跳动主 rust 的吧
    mikulch
    mikulch
    May 23, 2019
    26
    go 这个语言现在有没有出现各种应用层面的最佳实践?要是没有最佳实践,那写起来维护起来很累的。
    qianyiyu98
    qianyiyu98
    May 23, 2019
    27
    @kevinlm OpenJDK 不收费,OracleJDK 收
    Muninn
    Muninn
    May 23, 2019
    28
    用过都说好。

    看看上个月 gopher china 的赞助名单。 在中国大厂小厂用 go 的真的是很多了。

    当时比较惊奇的是 滴滴也是大量使用 go 了。

    东南亚那个 grab,基本全是 go 写的。

    用 golang 在 web 方面,已经是很成熟了。大数据和人工智能还是没干过 python+c+java ,轮子都还是残的。
    impl
    impl
    May 23, 2019 via Android
    29
    go 简单,上手容易,好招人,估计以后满大街
    Weixiao0725
    Weixiao0725
    May 23, 2019
    30
    @GTim 这个厉害了,是真的吗
    blless
    blless
    May 23, 2019 via Android
    31
    我觉得 php 要凉
    messyidea
    messyidea
    May 23, 2019
    32
    @huiyifyj 我在上海这边,主要用的 go,其它部门不清楚
    heimeil
    heimeil
    May 23, 2019
    33
    @Muninn 滴滴早就把 Go 作为主力了,之前有一次的 GopherChina 就说过他们公司有 2000 多位 Go 开发人员
    ericgui
    ericgui
    May 23, 2019
    34
    @mikulch 连个依赖管理都没搞好,确实太累
    abcbuzhiming
    abcbuzhiming
    May 23, 2019
    35
    你熟悉 go 后就会发现 go 这玩意开发起来的手感就像 C,不过比 C 还简单。不过我个人觉得这东西目前还是不适合做 web,适合做更核心一点的功能,而不太适合业务层,因为没有包管理。所用的引用都是源码编译
    rogwan
    rogwan
    May 23, 2019 via Android
    36
    @linxl b 站 PHP - node -JAVA - go 一路改过来的
    qiaobeier
    qiaobeier
    May 23, 2019
    37
    go 做 RTB 服务器,业务还是 php
    lincanbin
    lincanbin
    May 23, 2019 via Android
    38
    腾讯的一些部门也开始 cpp 转 go 了,不过目前还在重构期,一些部门倾向于招两种都会的。
    mikej
    mikej
    May 23, 2019
    39
    嘿嘿,打个广告,我司也用 Golang 来构建核心的后端服务,现在急缺靠谱的 Gopher,传送门: https://www.v2ex.com/t/553629
    iwtbauh
    iwtbauh
    May 23, 2019 via Android
    40
    有,google 自家

    dl.google.com

    国内唯二能直接访问的 google.com 网站之一
    fancyhan
    fancyhan
    May 23, 2019
    41
    bilibili,连代码都开源了
    SwagXin
    SwagXin
    May 23, 2019
    42
    华尔街见闻用 go 重构,不过不算大厂
    zjsxwc
    zjsxwc
    May 23, 2019
    43
    Go 语言的 Web 开发仍旧处在小众地位,

    有大厂开始用 Go 开发服务器了
    looking0truth
    looking0truth
    May 23, 2019
    44
    不知道大厂怎么衡量 上海那边头条,bilibili,滴滴,各种云,中通(偶然发现的 这个应该不算互联网公司吧 /手动滑稽)
    guyeu
    guyeu
    May 23, 2019
    45
    @araraloren #10
    @chikang #22
    怎么禁止一个国家的人使用一个开源项目呢,如果可以的话,已经不单单是 go 的问题了,绝大多数软件基础设施都会有问题。
    AndyMephisto
    AndyMephisto
    May 23, 2019
    46
    我这里 python + go python 做应用 go 做数据库
    AX5N
    AX5N
    May 23, 2019
    47
    @chikang 那真是太好了,求之不得。
    usingnamespace
    usingnamespace
    May 23, 2019 via iPhone
    48
    @huiyifyj 不 rust 没有基本 完全主 go
    usingnamespace
    usingnamespace
    May 23, 2019 via iPhone
    49
    @looking0truth 估值超过百度就行 哔哩哔哩不行 估值起码得 700 亿以上
    iPhoneXI
    iPhoneXI
    May 23, 2019
    50
    小公司 主 python,java,有一些服务用 go
    flxxy
    flxxy
    May 23, 2019
    51
    因为 gin 好用啊 (逃
    libook
    libook
    May 23, 2019
    52
    旧有的特别是大型的项目往往迁移成本高,所以现在用 Go 的一般都是新项目,特别是新成立的企业用的比较多。

    https://en.wikipedia.org/wiki/Hype_cycle

    个人感受是 Go 是在第二阶段到第三阶段之间,过了第三阶段应该就会有越来越广泛的应用了(也可能不会)。

    我们公司 2013 年成立,现在 500+员工,目前是多半 Node.js+少半 Go,也有其他语言的项目。

    字节是新厂,扩张超快,听说是主 Go,不过也在招聘 Node.js 和 Rust,其实没有任何一门语言是万能的,一家成熟的公司的业务也不可能只靠一种技术栈支撑,比如一家企业是 Web+人工智能+大数据,那至少同时在用 3 种语言。

    Rust 目前处于第一阶段,生态和特性远不及 Go,不过先天条件很好(给人非常“现代化”感觉的一个语言),坐稳系统开发的阵地,未来在 Web 服务、中间件和 DevOps 领域可能可以和 Go 竞争(也可能不会)。
    releaseme
    releaseme
    May 23, 2019
    53
    新时代的 php
    rockyou12
    rockyou12
    May 23, 2019
    54
    web 层,rest 接口这些小公司还是别用,一没这个性能需求,二开发难度比 java+spring 还是 php 那些差太多。如果 go 以后能有 java 的注解这种东西(可能不会有,毕竟会多很多魔法),包管理做好一点,也许能成为 web 开发一哥
    cookey39
    cookey39
    May 23, 2019 via Android
    55
    @passerbytiny 我看了下您之前评论,净是抬杠的,所以本来我不想回复你。我说的 c++ of web 是 c++的 web 编程,可不要说你不知道 c++的 web 编程。还有您的表达,java 在 web 领域没有市场份额,那纯粹就是为了满足你自己为喷而喷的欲望而胡扯了。还有这不是我下的结论,很多公司在高并发都换成了 go,选择性失明?
    brust
    brust
    May 23, 2019
    56
    java 有 spring,请问 go 有什么惊艳的框架吗
    cookey39
    cookey39
    May 23, 2019 via Android
    57
    @releaseme 新时代的 php 是 python,go 这种编译语言可能勉强算是新时代的 java 吧
    BCy66drFCvk1Ou87
    BCy66drFCvk1Ou87
    May 23, 2019 via Android
    58
    用过都说好
    BCy66drFCvk1Ou87
    BCy66drFCvk1Ou87
    May 23, 2019 via Android
    59
    @brust gin、iris、beego ……
    brust
    brust
    May 23, 2019
    60
    @blless 私活利器 php
    passerbytiny
    passerbytiny
    May 23, 2019
    61
    @cookey39 #53 如果你这个“ Web ”,指的是网络编程,那跟 C++、Java 一起说是没问题的。问题是:你前面和你举的例子——知乎、字节跳动、b 站、七牛——对应的 Web 可不是网络编程,是网站或网站的后台程序的编程,这个范围 C++ 、Java 都是类库级别的,做比较太掉价。

    还有,我所有的话都是在反驳你“但它的确一点点蚕食 java 和 c++ of web 的份额”这一点。网站或网站的后台程序的编程,Java 和 C++ 根本就不屑于比较份额。既然你的理解是网络编程而不是网站编程,那么我就换一种说法:网络编程是一种技术,哪里有份额的说法?

    最后再问你一句,你说我选择性失明,那你倒是说一些从 Java 或 C++ 换成 go 的案例出来。
    vanxy
    vanxy
    May 23, 2019
    62
    @chikang #22 golang 是开源的
    Hanggi
    Hanggi
    OP
    May 23, 2019 via iPhone
    63
    我只想知道选择 Go 语言开发的优势是什么。跟其他主流 web 服务语言相比,在开发,维护,扩展大项目有什么优势。
    gxm44
    gxm44
    May 23, 2019
    64
    感觉大部分都在用 Go 做微服务,前面挂 Restful 的 API gateway, 对于大型 Web App 这个领域,Java 现在应该是绝对的王者吧。
    Actrace
    Actrace
    May 23, 2019
    65
    Go 一般用来做中间件不错。PHP 适合开发网站和处理复杂业务。Python 是科学计算以及时下热门的机器学习。
    各种各样的生态圈,决定了各种各样匹配的场景。
    作为架构师或者软件工程师,一定要明白什么语言适合用在什么场景,而不是用喜欢的语言做所有的事情。
    undefined8
    undefined8
    May 23, 2019
    66
    @linxl b 站以前用 php 一个 cms 系统改改就弄出来的,后来转成 go 的
    chenhui7373
    chenhui7373
    May 23, 2019
    67
    @version 为什么不是 php + golang,或者 node + golang ?
    skadi
    skadi
    May 23, 2019 via iPhone
    68
    go 求个高级坑位
    nonprocoder
    nonprocoder
    May 23, 2019
    69
    @passerbytiny 不用咬文嚼字了,你说网络编程是一种技术,这种技术也有很多实现方式,可以是 Java、c++、go,现实情况就是用 go 的公司越来越多了,本来只能用 Java 或 c++的,现在可以用 go 了,不一定非要从 Java 或 c++转成 go
    mritd
    mritd
    May 23, 2019 via iPhone
    70
    @chikang #22 这么想...我们都得去用 易语言
    mangogeek
    mangogeek
    May 23, 2019
    71
    @chikang 哪天 x86 指令集和 windows 不让你用了不也得玩完?别说这些没用的。
    hareandlion
    hareandlion
    May 23, 2019 via Android
    72
    golang 这种没有通用的编程规范,相同的功能不同人写出来的代码可能完全不同吧
    picone
    picone
    May 23, 2019
    73
    百度接入层网关用 Go
    zhixuanziben
    zhixuanziben
    May 23, 2019
    74
    @huiyifyj 字节跳动主力语言是 go,rust 很少,没怎么见过人用。
    zwh2698
    zwh2698
    May 23, 2019 via Android
    75
    关键是 godoc 上很多库都是 bug 一堆,和 c 的标准库的质量没有办法比。这是我纠结的地方。
    mornlight
    mornlight
    May 23, 2019
    76
    @hareandlion #72 你这个应该是理解反了,对 Golang 熟练工们来说,同样的逻辑写出来的代码几乎一致。
    两个原因:Go 自带一套略强迫症的代码规范;一个功能往往只有一种最佳实现方式。
    agdhole
    agdhole
    May 23, 2019 via Android
    77
    golang 做 web 相比 java dotnet core 有点在哪里?无脑 allin ?
    acehow
    acehow
    May 23, 2019 via Android
    78
    golang 现在发展的挺好的。简单,高效,代码格式统一。而且也有比较完善的生态。k8s 和 docker 都是用 go 开发的。语言层面有天然的并发优势,很适合做互联网后台开发。
    blless
    blless
    May 23, 2019 via Android❤️4
    79
    @Hanggi
    对比 php python js go 是静态编译语言,安全性高,性能强,原生并发,开发效率差但也不低
    对比 c++ 就是自带 gc 开发效率高,性能也能接受,不用管理内存
    对比 rust 我觉得语法简单很多,门槛低
    对比 java c#就是静态编译了,不需要环境

    然后就是对以上所有语言来说,go 编码规范工具链几乎都有官方约定,工程性相当不错,项目管理需要的组件几乎都自带了。
    就像前面说的,其他语言能写出多样的代码,go 基本只能写出一种,比如循环,大家写出的都是类似的。

    扩展性的话,因为接口没有显示继承,所以如果模块都以接口实现,我觉得解耦跟扩展都不错。

    我个人还觉得 go 写的代码跨平台是最舒服的…几乎没遇到平台性 bug …以前写 python 有些库 win 上装起来真的是吐血
    abcbuzhiming
    abcbuzhiming
    May 23, 2019
    80
    @blless 我觉得 go 什么时候能把包管理解决了,它就没啥缺点了,目前那个 src path 真是让人很不舒服
    abcbuzhiming
    abcbuzhiming
    May 23, 2019❤️2
    81
    @agdhole java 做 web 现在眼光看,真 tm 重。
    .net core 我觉得目前发展的挺好,做 web 非常舒服
    go 目前的开发流程,还是更接近 C 这种纯粹编译源码的方式,虽然它确实编译快。但是应用级的开发,其实是很依赖包管理器的。所以我个人觉得 go 目前还是更偏向靠后一点的地方,现在大部分公司用它也是做中后台的 rpc 服务,并没有让它用在直接面对前端的前台。
    herozzm
    herozzm
    May 23, 2019 via iPhone
    82
    好不好我不敢断言,我只问一个问题 gp web 的模版真的 tm 难用,和 php 直接嵌入 php 语法不是一个档次,有好用的推荐吗?
    scnace
    scnace
    May 24, 2019 via Android
    83
    @Hanggi google “ why go ”
    scnace
    scnace
    May 24, 2019 via Android
    84
    @blless 只是你没遇到罢了 os 包里面很多对 win 支持都不好(所以会有很多 build 都指定 GOOS
    scnace
    scnace
    May 24, 2019 via Android
    85
    从我刚来 v 站的时候 v 站开始有 go 的节点 现在我已经连续签到满 1000 天了(
    meteor957
    meteor957
    May 24, 2019 via Android❤️1
    86
    同问 go 有什么类似 spring boot 之类的框架吗 或 最佳失恋?难道都是 gin
    meteor957
    meteor957
    May 24, 2019 via Android
    87
    同问 go 有什么类似 spring boot 之类的框架吗 或 最佳实践?难道都是 gin
    Wolfsniper
    Wolfsniper
    May 24, 2019
    88
    我记得七牛是用 Go 写的吧?以前印象中,七牛的人主导了国内的 Go 社区,经常做布道
    aristotll
    aristotll
    May 24, 2019
    89
    @HuasLeung #59 这些和 spring 比还是差远了了
    lxml
    lxml
    May 24, 2019
    90
    @abcbuzhiming #80 go mod 挺好用的啊,go 1.13 马上就设置成默认模式了,现在 go 1.12 也足够好用
    lxml
    lxml
    May 24, 2019
    91
    @meteor957 #86 一个还没完全成熟的 go-micro 可以看一看
    kiddingU
    kiddingU
    May 24, 2019
    92
    @abcbuzhiming go mod 了解一下
    lj3lj3
    lj3lj3
    May 24, 2019
    93
    Go 的包管理 mod 已经不算难用了 不要求放到 GOPATH 里
    语法层面的 goroutine 很方便支持并发 而且开销很小 channel 同步 goroutine 太顺手
    语法简单 只是不是纯面向对象( struct )的 写法很多 这点有利有弊
    编译之后直接放到客户那就可以跑 可以不需要 docker 上线

    Web 框架 ORM 百家争鸣 IOC 貌似没有发现和 Spring 相并论的?( Google 的 wire ? Uber 的 dig ?请赐教)
    Java 一把梭 PHP 一统天下 Go 暂时还没有这么强大的利器

    Nodejs,Python Django 看过一点 不熟悉
    Java Spring 生态没得说 Java 写起来有点啰嗦 Kotlin 还好点 再好像也挑不出啥大问题 就是感觉没啥激情

    目前 Go 写 RESTful PHP 写管理后台 JS ( Vue )写前端
    mengzhuo
    mengzhuo
    May 24, 2019
    94
    深圳某鹅:
    你们能见到的不少产品已经是 Go 在支撑了,只是现在各个部门都热衷于造框架轮子(日常赛马+蜜汁框架热情
    Python 类框架一般做后台管理工具、脚本这类
    Java 系的有少数部门在用,不过也在迁 Go
    -----------------------
    但大多数是祖传 C++, 谁叫我厂蜜汁热爱 C++(摊手
    tinybaby365
    tinybaby365
    May 24, 2019❤️3
    95
    曾经做得一个比较失败的决定是:团队选择 Golang 和 Java 谁作为标准语言的时候,我投了 Golang 一票。结果时大家老是造一些 Java 10 年前已经有的轮子……

    * 没有泛型,和 C++比没 STL,和 Java 比没 Collections,没类似 Guava 这样的增强库
    * 反射太弱了,没有注解,造轮子也不方便,有的时候还要用 AST
    * cgo 看起来很美好,因为语言设计得太简单,C 的代码是要写在注释里面的……
    * 工程结构都没有一个强约束,结果是业务项目各自独立 GOPATH,内部公共库又是开源风格
    * dep,govendor,还有 go gradle ……,到达哪个是事实标准?
    * 最大的问题:要靠自我约束才能写出看起来不乱的代码,不同水平的程序员没法写出相似水准的代码

    我现在的认识,golang 适合做基础的,面向实现的领域,如:云原生平台的实现,取代 C/C++程序,或扩展 C/C++程序,未来还要看 Rust 的脸色,例如:TiDB 里面的分布式 KV 存储。

    语言没有贵贱高下,只有在当前场景是是否合适之说。
    webjin1
    webjin1
    May 24, 2019
    96
    @brust 私活利器 应该是易语言,很多外挂是易语言写的
    CuChulainn
    CuChulainn
    May 24, 2019
    97
    写 java 的发现 go 似乎没有那种 ioc 框架..为啥?
    blless
    blless
    May 24, 2019 via Android
    98
    @CuChulainn go 语言反射有点弱鸡,不能通过类名反射,接口没有显示继承,所以依赖注入很麻烦。
    fairyto2
    fairyto2
    May 24, 2019 via iPhone
    99
    @mangogeek 那到不至于吧,现在 web 为王的趋势下,没什么必须是 windows 了,autocad 都有 web 版了
    toma77
    toma77
    May 24, 2019
    100
    @linxl b 站以前是 php
    1  2  
    ❮ ❯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1481 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 146ms · UTC 16:40 · PVG 00:40 · LAX 08:40 · JFK 11:40
    ♥ Do have faith in what you're doing.