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

go 语言提高 web 生产力

  •  
  •   zwnozhuce · Nov 26, 2021 · 10994 views
    This topic created in 1812 days ago, the information mentioned may be changed or developed.
    试了下 go 语言

    - 开发代码简洁
    - 编译部署简单
    - 心智负担较轻

    慢慢写一写工具,深入下
    Supplement 1  ·  Nov 29, 2021

    Rob Pike谈Google Go

    Go是系统级语言还是应用级语言?

    我们是把他设计为一种系统级语言,因为我们在Google所做的工作是系统级的,对吧?Web服务器和数据库系统、以及存储系统等,这些都是系统。但不是操作系统,我不知道Go是否能成为一个好的操作系统语言,但是也不能说它不会成为这样的语言。有趣的是由于我们设计语言时所采用的方法,Go最终成为了一个非常好的通用语言,这有点出乎我们意料。我想大多数用户并没有实际从系统观点来考虑过它,尽管很多人做过一点Web服务器或类似东西。

    Go用来做很多应用类的东西也非常不错,它将会有更好的函数库,越来越多的工具以及一些Go更有用的东西,Go是一个非常好的通用语言,它是我用过的最高产的语言。

    72 replies  •  2021-12-02 17:31:20 +08:00
    Bazingal
    Bazingal
    Nov 26, 2021❤️48
    1
    跟 java 比代码简洁,跟 rust 比编译速度,跟 c++比心智负担
    sagaxu
    sagaxu
    Nov 26, 2021 via Android❤️3
    2
    if err 和 json 加字段别名,可比 Java 啰嗦多了
    whwlsfb
    whwlsfb
    Nov 26, 2021 via Android
    3
    @Bazingal 哈哈哈,哥们一语道破
    wdwwtzy
    wdwwtzy
    Nov 26, 2021❤️5
    4
    别闹,go 真的不能提高生产力,尤其是业务系统的生产力
    hidemyself
    hidemyself
    Nov 26, 2021
    5
    go 能提高 web 生产了 😅
    VANHOR
    VANHOR
    Nov 26, 2021❤️3
    6
    公司之前是 PHP ,现在切到 Go 了,写业务代码,真不觉得 Go 有什么生产力。
    Numbcoder
    Numbcoder
    Nov 26, 2021❤️2
    7
    go 写一些网络组件工具挺好,用来写 web/业务系统怕不是脑子进水了吧,还生产力。。
    ikas
    ikas
    Nov 26, 2021❤️2
    8
    b 格有了,kpi 长了,领导升了,项目烂了
    ob
    ob
    Nov 26, 2021
    9
    借楼求个开源目录结构合理的 web 项目,参考下别人的优秀代码,现在的代码,都让我怀疑 go 到底哪里高效好用了。
    felixcode
    felixcode
    PRO
    Nov 26, 2021 via Android
    10
    年纪轻轻不去论资排辈,动不动还生产力,你把 Java 往哪放?退休前还有这么多年怎么办?
    macscsbf
    macscsbf
    Nov 26, 2021
    11
    尬吹?
    v2orz
    v2orz
    Nov 26, 2021
    12
    跟楼上一样
    DeWjjj
    DeWjjj
    PRO
    Nov 26, 2021❤️3
    13
    @ob go 的高效在于写微服务的时候一键打包,多服务器部署简易。
    Ayanokouji
    Ayanokouji
    Nov 26, 2021
    14
    为啥没人提 kotlin (服务端)
    aababc
    aababc
    Nov 26, 2021
    15
    @Bazingal 看破不说破
    rm0gang0rf
    rm0gang0rf
    Nov 26, 2021
    16
    跟 php 比啥?
    tt67wq
    tt67wq
    Nov 26, 2021
    17
    开发代码简洁?????
    conkke
    conkke
    Nov 26, 2021
    18
    不如 php 一根毛(狗头)
    INCerry
    INCerry
    Nov 26, 2021❤️9
    19
    C# 路过~
    Leviathann
    Leviathann
    Nov 26, 2021
    20
    @Ayanokouji
    我们在用,总体而言比较舒适,
    但和 spring 结合还是稍微有一点小坑,比如 springboot 必须要 2.4+才支持 dataclass 的 rowmapper ,在需要用到的地方需要手写一下从 resultSet 构造 dataclass 的 lambda
    然后 spring data jpa 的 entity 所有字段都要为 var ,因为底层也是用空构造器构造然后一个一个 set
    zhujq
    zhujq
    Nov 26, 2021
    21
    web 生产力?我大 spring 不同意
    xz410236056
    xz410236056
    Nov 26, 2021
    22
    @sagaxu #2 这不都 IDE 自动生成的吗。。。
    Ayanokouji
    Ayanokouji
    Nov 26, 2021
    23
    @Leviathann Ktorm 了解一下?
    Leviathann
    Leviathann
    Nov 26, 2021 via iPhone
    24
    @Ayanokouji 了解过 但是技术选型不是我做主。。
    123jiayue
    123jiayue
    Nov 26, 2021 via iPhone
    25
    喂你们最近是要黑 go 吗 怎么这么多这种😄
    Ayanokouji
    Ayanokouji
    Nov 26, 2021
    26
    @Leviathann 哈哈,我感觉 jpa 很不舒服
    xsen
    xsen
    Nov 26, 2021❤️4
    27
    @Numbcoder 我倒觉得动不动说人脑子进水的人脑子进水了

    我就是不明白,所谓的业务代码是都是指什么?不就是 curd 、还有业务逻辑么?难不成还有那些高深的业务代码
    xsen
    xsen
    Nov 26, 2021❤️2
    28
    不过只能说 go 或者真的戳到某些人的痛点
    像我们这边的,毕业 1-2 年的原先做 c++/java 或前端的同事,拿本书 1-2 周过一下,就可以用 go 写业务代码

    我是真的很想知道,楼上诸位说的业务代码,都是些什么业务代码?
    不就是数据库表 model crud 、api 设计实现;业务处理逻辑;第三方系统对接?

    难不成还有别的什么不成
    lyhapple
    lyhapple
    Nov 26, 2021
    29
    就算是用 go 写 CRUD, 我也觉得比用 java 写的爽.适合自己的,就是最好的 :)
    QingXuJiaZhi
    QingXuJiaZhi
    Nov 26, 2021❤️2
    30
    我非常喜欢 Go ,但我只用来写小项目。

    小项目,Go 的优势比较明显,但是大项目就没办法吹得太狠了,实事求是才能避免无谓的争论。

    比如代码简洁:小项目 Go 可以几个 struct 加几个函数直接开干,不用像 Java 那样考虑层层抽象。但项目大了还是需要层层抽象,需求经过几轮疯狂添加之后代码也很难说有多简洁了。

    又比如编译部署,小项目直接扔一个二进制可执行文件出去就行,当然方便。但是大项目的基础设施都搭建好了,一切都自动化滚动更新,此时 Go 的优势又不明显了。
    matrix1010
    matrix1010
    Nov 26, 2021❤️2
    31
    Go 写个能用的东西很快。甚至得益于 goroutine 的强大性能,写个能支持高并发的东西也挺快。但是要想写一个对开发者友好,具有一定通用性,方便扩展,易于维护的东西,就需要比较高的设计能力与品味了,而且很多时候必须要依赖代码生成,又进一步提高了门槛。另外个人感觉 Go 写测试的难度也比其他语言大些,国内用 Go 的公司写单元测试的比例估计很低
    nicebird
    nicebird
    Nov 26, 2021
    32
    @Bazingal 感觉没问题啊,优点很多
    zhady009
    zhady009
    Nov 26, 2021
    33
    用 go 写 erp (狗头
    lbp0200
    lbp0200
    Nov 26, 2021❤️2
    34
    在线人数小于 100 ,建议 PHP
    在线人数小于 1000 ,建议 Java
    最后考虑 go ,避免以下尴尬,一顿操作猛如虎,在线人数二十五
    mason961125
    mason961125
    Nov 26, 2021
    35
    @matrix1010
    > 另外个人感觉 Go 写测试的难度也比其他语言大些

    求解释
    balabalaguguji
    balabalaguguji
    Nov 26, 2021❤️1
    36
    你看下 go 跟 mongodb 的交互代码说不定就要放弃了,我就是
    matrix1010
    matrix1010
    Nov 26, 2021
    37
    @mason961125 从我的角度来看对比 Python/Ruby 肯定难写很多,很多时候非常难 mock 。举个例子 goroutine, 别人的代码里有一部分逻辑是 goroutine 完成的,而你的测试在 goroutine 没完成之前就结束了,线上这个东西没问题,但你的测试结果就是不对。而且测试轮子不多,比如类似 factoryboy/factorybot 的轮子就没看到让我满意的。
    F281M6Dh8DXpD1g2
    F281M6Dh8DXpD1g2
    Nov 26, 2021❤️1
    38
    - 心智负担较轻
    这是认真的么.....范型和异常都没有这负担还不重?
    wanguorui123
    wanguorui123
    Nov 26, 2021 via iPhone❤️1
    39
    CSharp 写 Web 最爽
    joesonw
    joesonw
    Nov 26, 2021
    40
    @sagaxu json 字段别名, java 不也是得加吗? 不加 json tag 也是可以的, 默认都是 camelCase
    jin7
    jin7
    Nov 26, 2021
    41
    go 语言有啥好的 库肯定没 java 丰富
    beneo
    beneo
    Nov 26, 2021❤️1
    42
    库都是 github 的,我第一感觉就是会不会不稳定
    jaywhen
    jaywhen
    Nov 26, 2021
    43
    第 n 届 v 站不定周期性语言大战开始!🍉
    QingXuJiaZhi
    QingXuJiaZhi
    Nov 26, 2021
    44
    @liprais 你可能不知道心智负担的意思,没有泛型和异常只能说体力上更累,但心智负担确实是减轻了。

    大多数情况下,越是抽象,心智负担越高,越是 verbose 则心智负担越低。
    iamv2er
    iamv2er
    Nov 26, 2021 via iPhone
    45
    日常 因为语言吵闹 好无聊 真的
    huigeer
    huigeer
    Nov 26, 2021
    46
    目前入坑,感觉实现一个 web api 框架好 easy 。看起来好透明,😋。真到实际业务的各种封装,还没体会到。
    sagaxu
    sagaxu
    Nov 26, 2021 via Android
    47
    @joesonw go 的导出成员首字母要大写,跟大多数公司的 API 规范不一样,只能挨个字段备注别名。Java 没有首字母大写的习惯,且可以在 class 级别或者 json 库全局级别设置不同的命名规则,大部分情况下不需要挨个字段指定。
    akyle
    akyle
    Nov 26, 2021
    48
    没必要,要开发效率就选 Java ,而且还可以本地化。
    cutchop
    cutchop
    Nov 26, 2021
    49
    node 天下无敌
    wonderfulcxm
    wonderfulcxm
    Nov 26, 2021 via iPhone
    50
    试过一段时间,简陋的语言,要啥没啥,写起来好累。
    ClericPy
    ClericPy
    Nov 26, 2021
    51
    all-in golang 的国内公司也不少了, 他们选择的理由够直白的了, 比如说
    solos
    solos
    Nov 26, 2021
    52
    go 堪称完美
    yxx1993
    yxx1993
    Nov 26, 2021
    53
    go 在 web 方面比 php 性能好,但是在 web 方面还是没有 laravel 这种专业 web 框架有生产力。个人见解
    windseekerjack
    windseekerjack
    Nov 27, 2021
    54
    @zhady009 之前公司还真写过,并没有什么问题,不是很懂有什么方面的业务对特定编程语言有难度
    Austin2035
    Austin2035
    Nov 27, 2021
    55
    @lbp0200 网站可以没有那么多访问人数,但一定要有百万级并发的架构。/doge
    heytap
    heytap
    Nov 27, 2021
    56
    用 go 写业务代码真滴痛苦
    mmdsun
    mmdsun
    Nov 27, 2021 via Android❤️1
    57
    go 写复杂的业务逻辑不如 Java ,生态差,也就是云原生和运维的优势。很多框架都是造 Java 重复的轮子

    那这样的话还不如用 C sharp 写,有 Java 优写业务点,云原生支持好。全球范围看 asp.net core 的 web 框架比 sping 都多。
    micean
    micean
    Nov 27, 2021
    58
    为什么一定要用 oo 思想写 java 然后怪 java 太繁琐???
    ericgui
    ericgui
    Nov 27, 2021
    59
    @wanguorui123 据说是的
    seakingii
    seakingii
    Nov 27, 2021❤️1
    60
    别炒了,做业务用 C#,JAVA 最合适
    hutoer
    hutoer
    Nov 27, 2021❤️1
    61
    - 开发代码简洁?其实远不如动态语言
    - 编译部署简单?编译不挂代理试试,死的心都有。现在大多是 docker 了吧,一个命令的事情
    - 心智负担较轻?不一定
    KevinBlandy
    KevinBlandy
    Nov 27, 2021
    62
    errlang 。
    undefine2020
    undefine2020
    Nov 27, 2021
    63
    事实上大部分 web 业务都不是大流量高并发的,上 php 足以。
    JasonFlink
    JasonFlink
    Nov 28, 2021 via iPhone
    64
    感觉它就是为了更快出货而存在
    xiaotianhu
    xiaotianhu
    Nov 28, 2021
    65
    这贴我渐渐品出当年 PHP 的味道了啊

    以后就是 "Go 是最好的语言",然后两边互喷了吧?
    fengjianxinghun
    fengjianxinghun
    Nov 28, 2021
    66
    @hutoer docker 也得挂代理,装个什么包先要改源。。。麻烦程度一点不少。
    yin1999
    yin1999
    Nov 29, 2021 via Android
    67
    @beneo 如果有人已通过 goproxy 拉取了某一版本的 package ,除非作者向 goproxy 提出删除 package 的要求,否则这个版本的 package 会一直被缓存在 goproxy 中(即使作者删除 GitHub 仓库),也就是说:这个版本的 package 会一直可用。
    kkstart
    kkstart
    Nov 29, 2021
    68
    我可能有点怀疑您有没有写过业务
    go 在 web 业务上根本谈不上生产力,甚至说是拖后腿的那个
    NBY
    NBY
    Nov 29, 2021
    69
    说得好!我用 python
    CasualYours
    CasualYours
    Nov 29, 2021
    70
    所以讨论了半天,还是最熟悉的才是最有生产力的
    panlatent
    panlatent
    Nov 30, 2021❤️1
    71
    个人愚见,go 会让简单的东西便得更简单,复杂的东西变得更复杂。
    Joker123456789
    Joker123456789
    Dec 2, 2021❤️1
    72
    你说这种生产力,java 有啊,很多年前就有了。 那会儿叫 servlet 。

    go 更适合跟 C 作比较,跟 java 比 web 还是差点意思

    这几天遇到很多槽点:

    1. 反射 必须事先指定类型,无法做到像 java 那样 仅凭一个字符串就能把方法给调用了
    2. json 无法转化成 map ,因为 interface{} 无法像 java 的 Object 那样 拆箱成任意类型
    3. 没有动态代理,没有泛型

    这些问题 衍生出了一个更大的问题,就是开发一些 通用的 工具包,框架 会非常难。 必须退而求其次

    这是个很严重的问题,会直接导致三方生态的薄弱
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   984 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 134ms · UTC 19:21 · PVG 03:21 · LAX 11:21 · JFK 14:21
    ♥ Do have faith in what you're doing.