V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
Hanggi
V2EX  ›  Go 编程语言

说 Go 语言写不了业务逻辑的请进

  •  
  •   Hanggi · 122 天前 · 10729 次点击
    这是一个创建于 122 天前的主题,其中的信息可能已经有所发展或是发生改变。

    并不打算引战,单纯出于好奇。

    https://github.com/gin-gonic/gin
    https://github.com/beego/beego
    https://github.com/labstack/echo

    把前几名的 Go 语言后端框架加一起都 10 万星了。

    https://github.com/spring-projects/spring-boot
    https://github.com/laravel/laravel

    Gin 6 万 1 ,spring-boot 6 万 2 ,laravel 7 万。
    虽然不能说明一且,但至少说明很多人在用。


    首先强类型语言灵活性肯定是不如脚本语言的,所以没必要争个高低,PHP 、Node.js 、Python 这类脚本语言写业务逻辑能力是最强的。

    但在可维护性上,强类型语言是比脚本语言好很多,所以 Typescript 的可维护性是远胜于 Javascript 的。


    回到 Go 语言,
    首先要明确的是 Go 语言是一种为了最大化编译速度而牺牲语言特性的一种语言。

    很多人说 Go 语言写起来痛苦,说的其实是那些理应支持的语法糖或工具函数在 Go 语言里并不提供,而需要自己去写所带来的痛苦。不提供不意味着无法实现,只是让你用最基础的语法结构去实现,换来的是更快的编译速度和非常低的阅读门槛。

    对于 if err != nil 只说一句,Error 是一种值。
    https://go.dev/blog/errors-are-values
    (过去也有人提议加入 Try Catch ,但都被否决了)


    最后,还是要看你的需求是什么,Go 语言写业务逻辑可能不是最佳选择,但确实很多人在用 Go 写业务逻辑,它的特性满足了一些人的需求,特别是在云原生领域。

    说写不了的,可以把你的场景细节分享出来,
    解决方案都是有的,接不接受是每个人自己的选择,但是光说 Go 语言写不了业务逻辑,又不说到底是什么场景。
    谁能知道到底是 Go 语言写不了业务逻辑,还是你的编码或理解能力上有不足呢?

    117 条回复    2022-11-04 15:17:06 +08:00
    1  2  
    luob
        1
    luob  
       122 天前   ❤️ 39
    冷知识,( )也是能吃的

    但是作为一个灵长类人科人属人种生物,实在没必要花大力气证明这件事,要不然会让大家怀疑你的身份。
    yedanten
        2
    yedanten  
       122 天前 via Android   ❤️ 17
    写不了业务 x
    写 curd 很痛苦√

    如果把写业务=写 web 应用,那确实可以说,不建议
    tairan2006
        3
    tairan2006  
       122 天前   ❤️ 12
    能用和好用不是一个概念,用 C/汇编啥都能搓出来。

    golang 在复杂业务这块生态缺失是很显然的,你连个好用的工作流引擎都找不到吧。
    BBCCBB
        4
    BBCCBB  
       122 天前
    c++也可以写 web, 但能用和好用是有区别的
    BeautifulSoap
        5
    BeautifulSoap  
       122 天前   ❤️ 3
    其他感觉还好,但 Go 写 Entity 到 DTO 之类的转换写到吐血是真的
    wangyzj
        6
    wangyzj  
       122 天前
    @tairan2006 #3 就工作流引擎这块
    所有语言的工作流找来找去最后还是 java 的 activiti 家族最好使
    虽然我也不明白为啥
    neteroster
        7
    neteroster  
       122 天前   ❤️ 3
    没人说写不了吧,都是图灵完备的啥业务逻辑不能写?关键是能写和能写得好,能写得快,能写出可读性高和可维护性好的代码中间是有距离的。
    Hanggi
        8
    Hanggi  
    OP
       122 天前
    @BeautifulSoap 一个结构体,定义好 tag ,一行映射不就解决了吗?
    Hanggi
        9
    Hanggi  
    OP
       122 天前
    @tairan2006
    @BBCCBB
    所以 Go 语言写业务逻辑是跟 C/C++/汇编是一个级别的是吗?
    那为什么 Go 语言写?用 C/C++ 写出来不是性能更好吗?
    Hanggi
        10
    Hanggi  
    OP
       122 天前
    @neteroster
    所以 PHP ,Python 能写出高可读和高维护性代码,Go 语言写不出来是吗?
    是语言问题呢,还是编写的人的问题呢?
    yuk1no
        11
    yuk1no  
       122 天前 via iPhone   ❤️ 3
    流量密码行哇
    Curtion
        12
    Curtion  
       122 天前
    不是在说写不了吧,任何一个图灵完备的编程语言只要想写都能写业务,只是区别在于合不合适。 说 Go 不适合是相较于其它的解决方案来说的。 至于说写不了的人,那肯定是乱说的,Go 是有一些特殊业务领域比较好用。
    tairan2006
        13
    tairan2006  
       122 天前   ❤️ 5
    @Hanggi 你要不要看你帖子里自己问了啥…最后一段。

    你这反问搞得我只想 block 你…你看你这回复的几楼,全是反问,攻击性这么强想干啥。
    lix7
        14
    lix7  
       122 天前   ❤️ 3
    开头说不打算引战,最后人身攻击,可以,block 了
    Mexion
        15
    Mexion  
       122 天前   ❤️ 3
    有人说过不能写吗,不都是说写的很痛苦吗?这么说 c 语言也可以写啊,为什么不用 C 语言写
    fkdog
        16
    fkdog  
       122 天前   ❤️ 4
    问一下,还花时间在编程语言这个级别上 battle 的,一般都是毕业几年的啊?
    XCFOX
        17
    XCFOX  
       122 天前   ❤️ 6
    我个人感触比较深的是 ORM 场景。C# 有 Entity Framework 、TypeScript 有 TypeORM 、MikroORM 、PHP 有 Eloquent 、Kotlin 的 Ktorm 。看过了以上 ORM 再看 Go 的 ORM 实践就很一言难尽。

    优雅的 ORM(TypeORM)是这样的:
    ```
    const article = await articleRepository.findOne({ title:"Tales of Ten Worlds",published:true });
    ```
    从 文字表里取一篇文章,取出来的变量直接从 findOne() 函数里传出来,非常顺畅。

    Go (gorm) 语言是这样的:
    ```
    var article Article
    db.Where(&Article{Title: "Tales of Ten Worlds", Published: true}).First(&article)
    ```
    先声明 article 为 Article ,再传指针到 First() 里,一下子打破了函数式编程的 「没有"副作用"」「不修改状态」的教条,这里将 article 的类型改为其他也不会有编译时错误。

    或者这样(ent)的:
    ```
    article :=client.Article.Query().
    Where(article.TitleEQ("Tales of Ten Worlds"),article.PublishedEQ(true)).Limit(1)
    ```
    这样确保了编译时类型安全但将查询条件改成了指令式的罗列,极大损失了简洁性。
    agdhole
        18
    agdhole  
       122 天前
    楼上提到了 ef core ,底层用 linq 去操作 sql 或者 list 等等,体验好太多了
    FreeEx
        19
    FreeEx  
       122 天前   ❤️ 1
    我感觉主要是因为写 web 应用没有一个最佳实践出来,写起来比较痛苦,尤其是新人进入团队去改之前的代码。

    例如

    目录结构怎么划分?
    是搞全局函数还是结构体挂方法?结构体挂方法的话如何实例化?结构体直接有依赖关系怎么实例化?
    db 是全局的还是通过参数传递?
    需不需要分层 ApiHandler 、Service 、Repo ?
    ...

    问题太多了,不说每一个公司吧,就说每一个项目,都可能是不同的项目结构,百花齐放,I am happy :)
    wonderfulcxm
        20
    wonderfulcxm  
       122 天前 via iPhone   ❤️ 6
    > 很多人说 Go 语言写起来痛苦,说的其实是那些理应支持的语法糖或工具函数在 Go 语言里并不提供,而需要自己去写所带来的痛苦。不提供不意味着无法实现,只是让你用最基础的语法结构去实现。换来的是更快的编译速度和非常低的阅读门槛。

    恭喜你找到了痛苦之源,而且你那么痛苦实现的功能,人家语言就自带了,质量还更好,你说气不气人吧,如果喜欢自虐,欢迎使用 go 语言。
    coderluan
        21
    coderluan  
       122 天前
    正文写的挺好,怎么起了这么个烂标题。
    charmToby
        22
    charmToby  
       122 天前
    语言之争有没有尽头。
    nine
        23
    nine  
       122 天前
    想用你就用呗。

    至于 Star 的数量问题。你可以搜一下,什么叫“劣币驱逐良币”。

    你觉得 10 块钱的冰淇淋币 2 块钱的好吃,可能是因为你压根没有听说过有 100 块钱的。
    Mrun
        24
    Mrun  
       122 天前
    @wonderfulcxm #20

    我觉得也是,大部分都是 curd boy ,为什么要在这上面给自己找虐?其他语言有成熟的语法糖,你天天秀我性能好,有个锤子用,大部分项目难维护是性能原因么?
    q1angch0u
        25
    q1angch0u  
       122 天前
    我的编码或理解能力上有不足。
    musi
        26
    musi  
       122 天前
    这都能骂起来,还是前端好,只能运行 JavaScript
    RubyJack
        27
    RubyJack  
       122 天前
    javaboy 马上赶到战场
    Oktfolio
        28
    Oktfolio  
       122 天前
    第 1 点,因为 go 使用 github 作为依赖仓库,所以 repo 的 star 数普遍偏高。

    go web 框架普遍使用 :param 作为路径参数([API design guide - Google Cloud]( https://cloud.google.com/apis/design/custom_methods)),比如你上面说的 gin ,所以我 star 了 gin 但不用它。
    Leviathann
        29
    Leviathann  
       122 天前
    @XCFOX 这么看起来这个 gorm 好野鸡啊,连最基本的类型安全都没了,而 ent 做为 FP 大厂的作品观感上就强不少,不愧是创造了 react 的公司
    Morii
        30
    Morii  
       122 天前
    写不了 = 考虑效率 、心智负担后,不选择 go

    在这个为前提上讨论,我觉得没问题呀

    如果是 crud boy 的话,不选择 go 我觉得没问题。。
    Morii
        31
    Morii  
       122 天前   ❤️ 2
    >>> 很多人说 Go 语言写起来痛苦,说的其实是那些理应支持的语法糖或工具函数在 Go 语言里并不提供,而需要自己去写所带来的痛苦。不提供不意味着无法实现,只是让你用最基础的语法结构去实现。换来的是更快的编译速度和非常低的阅读门槛。

    这点真的有人赞同吗?

    接手一个项目还要去看前人封装的数据结构。以及对应的 api ,换一家公司还要重新熟悉
    lvluo200711
        32
    lvluo200711  
       122 天前
    我写 go 跟写 php 一样,平时就 curd 多,现在一年下来了,内部积累的代码有时候可能比 php 还快了。
    贴一段 go 代码, 有差别吗
    ~~~~
    // 读取列表数据 select * from users where id > 1 and create_ed >= now() limit 16
    users := NewOrmUsers().WhereIdGt(1).WhereCreatedAtGte(database.Now()).Limit(15).Get()
    fmt.Println(users)
    ~~~~

    https://github.com/go-home-admin/go-admin/blob/main/app/entity/demo/user_test.go
    dqzcwxb
        33
    dqzcwxb  
       122 天前   ❤️ 1
    @tairan2006 #13 我只想说,暴露 go 吹本质了
    "你不吹 go,go 吹就骂你"
    fournoas
        34
    fournoas  
       121 天前
    “又不是不能用”
    TWorldIsNButThis
        35
    TWorldIsNButThis  
       121 天前 via iPhone   ❤️ 1
    没有便捷语法或被广泛采用的库的支持,那么在实际上的业务开发里基本就等于没有这个功能
    kindjeff
        36
    kindjeff  
       121 天前
    新的风暴已经出现
    ufan0
        37
    ufan0  
       121 天前
    我还在上大学的时候看到部分公司开始使用 go 进行编写基础组件,感觉挺不错的。

    毕业后开始参加工作接触到金融业务复杂系统,就这,想不懂为什么用 go ,kpi or okr boy ?
    mxT52CRuqR6o5
        38
    mxT52CRuqR6o5  
       121 天前
    反向推销可还行
    arischow
        39
    arischow  
       121 天前
    啊,比 star ?
    icyalala
        40
    icyalala  
       121 天前
    @Hanggi 这么说用 C 写业务逻辑也有啊: https://facil.io/ ,把帖子里的 Go 换成 C 看看?
    litguy
        41
    litguy  
       121 天前   ❤️ 1
    这明显胡说八道了,不是说写不了,是写起来不 happy
    我们的产品是用 C++ 写 web 的
    上家公司是 C 写 web
    不是不能写,是工作量明显高于那些 web 专用语言
    KaynW
        42
    KaynW  
       121 天前   ❤️ 3
    又到了我最喜欢的语言大战环节
    tobepro
        43
    tobepro  
       121 天前   ❤️ 3
    Go 真要适合,你就不会来这么努力去证明了。有这精力还是好好去贡献点代码把,为 Go 社区做点贡献。到了真正强大的时候,不用你辩解大家也都会认为 Go 可以写复杂业务逻辑了。
    blless
        44
    blless  
       121 天前
    @Morii #31 对公司而言,人力也是资源,也是流动的。接手一个项目本来就要熟悉之前的封装,除非你一直都只写最基础的业务。别人经验我不清楚,但是 Go 的门槛确实低,基本上业务层面上封装概念搞懂就行。拿 Python 举例,我见过比较恶心的一些例子,使用类似 flask 的 requst 绑定线程的变量,数据结构全程动态生成,一些自定义的装饰器,locals()获取当前变量名当作 key/value ,诸如此类等等等等。每次碰到这些东西,我就觉得 Go 设计太特么好了
    nash
        45
    nash  
       121 天前
    真正的工程师是从来不屑争论这种话题的
    FightPig
        46
    FightPig  
       121 天前   ❤️ 1
    只要你喜欢,用汇编都没人管。我 rails 用的爽的,干嘛找虐用 go 来写,后面并发也没到那个程度。我用 go 写的最多的是小工具,web 自己写了一套生成工具,主要用来写个 cms ,给别人用的
    LeegoYih
        47
    LeegoYih  
       121 天前   ❤️ 1
    有点饭圈的味道了
    storyxc
        48
    storyxc  
       121 天前
    日经贴
    seaiaddca
        49
    seaiaddca  
       121 天前   ❤️ 2
    钱没赚几个 代码没写几行 吵架倒是一流
    victor
        50
    victor  
       121 天前   ❤️ 1
    star 数量能代表啥?中文资料收集类的 repo ,star 上万的有好多个。
    Hanggi
        51
    Hanggi  
    OP
       121 天前
    @tairan2006
    @lix7
    @Mexion
    答非所问,所以追问而已,如果觉得有攻击性,那我先说声抱歉了。
    我也说了,不管是痛苦还是什么,把场景说出来,分享一下。
    不是说我要去评判,而是分享出来,大家探讨一下。

    说人身攻击是指“编写的人的问题呢?”这句话吗?
    代码的质量跟编写的人经验和习惯相关(也跟项目进度等很多因素相关),
    如果用 PHP 老手和 Go 语言新手写出来的代码比较可读性,其实意义也不大,毕竟 Go 语言比较新。

    有人说过不能写吗,确实有人说了没法写,这也是我的疑问点。
    对于 C 语言,Go 的定位其实并不适合和 C 语言比较,且如果 Go 语言编写体验跟 C 语言差不多,那为什么要用 Go 语言呢,因为 C 语言性能更好。
    Hanggi
        52
    Hanggi  
    OP
       121 天前
    @fkdog
    问题背景很简单,

    很多人说 Go 语言写不了业务逻辑(或者写不好,或者写起来痛苦),
    但是又有很多人在问,有个项目到底用 Go 还是 PHP (或者 Java...)

    也就说明,有一些人,他看到 Go 语言很火,并且在后端领域有很多应用,想加入 Go 语言生态,
    但是又看到很多人说 Go 语言写不了,不适合写业务逻辑,而感到迷茫。

    所以,我发了个贴,希望那些说 Go 语言不适合写业务逻辑的人,
    把你们的场景分享出来,看看问题到底出在哪里。
    dbskcnc
        53
    dbskcnc  
       121 天前   ❤️ 2
    我来挺一下 lz, 不管有多少人不屑于 go ,事实就是越来越多的业务用 go 来写了。
    LeegoYih
        54
    LeegoYih  
       121 天前
    @Hanggi #52
    我觉得你可以把你认为写的优秀的业务代码示例贴出来,给大家学习一下应该如何优雅地写。
    只让别人分享代码,然后你轻描淡写一句“是你代码写的烂”,这没法让人信服吧?
    Slurp
        55
    Slurp  
       121 天前   ❤️ 3
    1. Go 语言性能高吹的成分居多,你列的 Gin 在 TechemPower 的排名里面排第 63 位,是第一名性能的 23%。Fiber 框架性能在 Go 里最高,然而 Star 不如 Gin 。整个 Go 的平均性能可能和 Java 差不了多少... 说 Star 数多少多少真心没啥意义…… Go 这么火,你还是要搞清楚一点不是他语言多厉害,纯纯的就是微服务撑起来的。

    2. Go 还可维护。动不动就是 codegen ,类型系统不是简约,是简陋。天天就是 if err != nil ,快赶上 C 了。隔壁 Rust 比你 Go 更 native ,怎么人的 Result 类型这么正常。都是现代语言,不要求你多高雅,正常一点总行吧。if err != nil ,这种模板代码,真的和 Java 里判空一样啰嗦……

    没有 native 命,却患 native 病,是对 Go 语言最好的描述。

    ---

    你用 Go 写写中间件挺好的,没人反对你。硬要扯业务代码全都用 Go 写,这不自虐。
    lifeintools
        56
    lifeintools  
       121 天前
    你喜欢就用呗。这还值得开个贴讨论吗?
    singerll
        57
    singerll  
       121 天前 via Android
    复杂的业务根本不是一两句话加几行代码都能说清的,你让大家举例根本就不现实
    Hanggi
        58
    Hanggi  
    OP
       121 天前
    @XCFOX
    确实 ORM 这块有这个问题,

    Typeorm 的查询方式感觉依然是弱类型,要么包一层 interface 不然也是有写错的可能性。

    GORM 确实有不少槽点,但是不管代码量还是心智上并没有太大负担(个人感觉),因为变量是未初始化的。
    不知道你怎么想。

    ent 的话通过 code generation 解决了类型安全问题,但是灵活性上也确实有损失。

    但是比起用 xml 定义这些,感觉这种方式还是可以接受的,至少编写起来没有太大压力。
    q474818917
        59
    q474818917  
       121 天前
    程序员都是一根筋,你咋不思考思考你为何不是北京人,在这方面较劲有啥用
    ChrisFreeMan
        60
    ChrisFreeMan  
       121 天前
    尝试说服别人是一件容易让自己发疯的事情,放弃说服他人,专注做好自己。
    Hanggi
        61
    Hanggi  
    OP
       121 天前
    @Slurp
    Go 语言的性能从来都不是他的最大亮点,因为 Go 有 GC ,性能在极端情况下是没法和 C/C++ 比的,和 Java 比一下还差不多。
    wdwwtzy
        62
    wdwwtzy  
       121 天前
    严重同意 1 楼 2 楼和 17 楼
    Hanggi
        63
    Hanggi  
    OP
       121 天前
    @singerll
    对,问题就在这,
    一两句话说不清楚复杂的业务逻辑,但是一两句话就可以定义一门语言写不了业务逻辑。
    而事实上很多人在写。
    Hanggi
        64
    Hanggi  
    OP
       121 天前
    @ChrisFreeMan
    对说服别人一点兴趣都没有,
    只是看到某种现象,发帖讨论一下。
    dog82
        65
    dog82  
       121 天前   ❤️ 2
    docker 、redis 、etcd 、tidb 都是用 go 写的,区块链也是 go 的天下

    但是 go 依然是很拗口的语言,特别是从 java 转过来的
    singerll
        66
    singerll  
       121 天前
    @Hanggi “一两句话说不清楚复杂的业务逻辑,但是一两句话就可以定义一门语言写不了业务逻辑。”
    你是 etc 吗
    Bazingal
        67
    Bazingal  
       121 天前   ❤️ 1
    不明白云原生跟 go 写业务有什么关系,没错 k8s 和 docker 都是用 go 写的,但是这跟你用 go 写业务有什么关系,难道用 go 写有加成?别的语言照样跑在 docker 、k8s 上,生态比你好,开发速度比你快,性能比你强,扯什么云原生有什么意义。go 之所以招黑就是因为很多 go 粉太双标,自己没有的就是又不是不能用,我们不需要,自己有的就吹得好像只有自己有一样
    yogogo
        68
    yogogo  
       121 天前
    工具而已,别那么较真
    allen9009
        69
    allen9009  
       121 天前
    语言不是界限,用啥语言看场景
    herozzm
        70
    herozzm  
       121 天前
    能写,痛苦而已
    keepeye
        71
    keepeye  
       121 天前
    脚本仔永远无法理解,他们只顾自己写的爽
    alteremliu
        72
    alteremliu  
       121 天前
    怎么可能不能写呢,java 已经写完了 CRUD ,你还在写 entity
    AprilNovember
        73
    AprilNovember  
       121 天前   ❤️ 4
    go 的魔怔人最多 真不是乱说的😅
    Hanggi
        74
    Hanggi  
    OP
       121 天前
    @Bazingal
    你这段话攻击性还是挺强的,本来这种话不太回的,就回一次。

    k8s 那么复杂一个系统,调控那么多容器,去除底层的一些 low level 逻辑,给用户提供的接口是没有业务逻辑的吗。
    难道只有 CRUD 才是业务逻辑。

    还有,好多人说什么 Go 吹,Go 粉,这种论调其实挺无趣的。
    写过 Go 语言的人哪个不是从其他语言过来的,现在已经很少有人会站某一门语言去怼其他语言,因为你站的语言和你怼的语言你都会,跟左右互搏有什么区别呢。
    只有那些只会一门语言,生怕自己的饭碗被抢走的人才会如此敏感吧。

    没什么其他意思,只想就事论事,讨论讨论问题,如果伤害到某些人,先说声抱歉。
    希望不要把问题带到奇怪的方向。
    Mexion
        75
    Mexion  
       121 天前   ❤️ 5
    @Hanggi 事实上这不是 ORM 的问题,本质上是 Go 这门语言的问题,Go 由于追求极致简陋抽象能力太差,支持的特性太少,在使用中可能遇到:要么多写大量重复代码,要么各种转型,要么丢失安全特性变成动态语言,要么各种 for 循环等等等......太多了,我都不想一一点出来,实在丑陋繁琐至极,毫无优雅可言,然后就是特性弱就算了,还非要强吹设计哲学,实际上挫的不行。当然,我也不否认 go 有它的优点,go 生来就不是做 web 的料,在它擅长的领域发光发热就好了,你要说做 web 可不可以,当然也可以,最重要的一点就是:又不是不能用!
    Bazingal
        76
    Bazingal  
       121 天前
    @Hanggi 攻击性很强是指把事实说出来吗?另外我没说 go 写不了业务,上面很多人也说了,能写不代表合适,c 和汇编也能写业务,但是你觉得合适吗
    interim
        77
    interim  
       121 天前   ❤️ 2
    @dog82 啊这,redis 怎么就成 go 写的了?
    Mexion
        78
    Mexion  
       121 天前   ❤️ 1
    @interim go 是要替代 c 的,所以 c 写的 == go 写的 ,没毛病
    ericguo
        79
    ericguo  
       121 天前
    @XCFOX > const article = await articleRepository.findOne({ title:"Tales of Ten Worlds",published:true });

    论优雅 Rails 还真没怕过谁。article = Article.find_by title: 'Tales of Ten Worlds', published: true
    yx1989
        80
    yx1989  
       121 天前
    Java 库的 github star 数量确实偏少。当年各种 Python 都好几万 star 的时候,Spring 的 star 才几千。

    不过 star 多并不能说明适合写业务逻辑,仅能说明这个库比较 成熟 or 热门。
    lancelock
        81
    lancelock  
       121 天前   ❤️ 1
    一股子饭圈味
    nyakoy
        82
    nyakoy  
       121 天前
    每月一战,这个月来的有点早。
    datafeng
        83
    datafeng  
       121 天前   ❤️ 1
    @nyakoy 这个月有点不调,嗯就喜欢这种帖子,顺便说一下 PHP 是最好的语言..
    pein
        84
    pein  
       121 天前
    web 方面,现在 Go 语言在性能上也已经比不过 php 了,看最新压测排行的第 35 位 https://www.techempower.com/benchmarks/#section=data-r21&test=fortune
    Kiriri
        85
    Kiriri  
       121 天前   ❤️ 1
    没有人说 go 写不了业务逻辑, 能写和写的舒服是两码事
    dqzcwxb
        86
    dqzcwxb  
       121 天前

    先有鸿钧后有天,golang 还在鸿钧前
    zapper
        87
    zapper  
       121 天前   ❤️ 2
    你们在吵的时候我一个叫小申的同事又手搓 01 并部署一套业务了,谁的问题?
    Al0rid4l
        88
    Al0rid4l  
       121 天前   ❤️ 3
    冷知识: Python 是强类型语言
    强类型弱类型静态类型动态类型都分不清楚...看到「强类型语言是比脚本语言好很多」就不想看下去了
    XCFOX
        89
    XCFOX  
       121 天前
    @Hanggi #58
    TypeScript 的类型系统是十分强大的。得益于 TypeScript 的装饰器与泛型系统,TypeORM 的查询参数是强类型的,无需包一层 interface ,在编译时就会有类型检查。
    相比之下,go 要实现比肩 TypeScript 的类型安全 就只能参考 ent 这种 code generation 的模式。
    raykle
        90
    raykle  
       121 天前
    袁隆平袁老的问题
    GeruzoniAnsasu
        91
    GeruzoniAnsasu  
       121 天前
    OP 如果搞得明白会在语言帖子里吵起来的都是些

    1. 没有权限或能力控制选型
    2. 搞不明白自己的系统需要什么特性
    3. 只接触过两三种语言写过一两种范式

    的人,就不会发这个帖子了



    「为什么用 go 写 web 」跟「为什么用 js 写 arduino 」 是完全一致的问题,想想为什么后者没人吵
    Sendya
        92
    Sendya  
       121 天前 via Android
    说句实话,写了几年,写 crud 多少有点痛苦。
    inframe
        93
    inframe  
       121 天前
    哪个能让我今天最早下班,我就用哪个;
    所以我选择 Python😎
    dhssingle
        94
    dhssingle  
       121 天前
    C# EF Core

    var article = await context.Articles.FirstOrDefaultAsync(x => x.Title == "Tales of Ten Worlds")
    Aloento
        95
    Aloento  
       121 天前
    写 curd 很痛苦
    then ,ASM 也能写,你用吗?
    limon
        96
    limon  
       121 天前   ❤️ 1
    去掉 Goroutines 这门语言我不会多看一眼,就这么简单
    Actrace
        97
    Actrace  
       121 天前   ❤️ 1
    我觉得业务问题倒是其次,之后可以通过迭代来增加功能以解决这些问题。

    go 现在最大的问题是过分依赖 github ,这是从语言层面的依赖,更具体一些,就是产品定位。
    作为一个工具,肯定不能去依赖一家商业公司来实现某些功能。没有哪家公司或者开发者会希望明天 github 没了,go 就不行了。这跟 serverless 的包袱几乎一致了。
    zggsong
        98
    zggsong  
       121 天前 via iPhone   ❤️ 1
    @dhssingle 有一说一,作为菜鸟我只写过 c#和 go ,crud 方面,操作数据方面 c#的确太舒服了
    ccppgo
        99
    ccppgo  
       121 天前
    @dog82 redis 什么时候成了 go 写的,我版本落后了?
    p1gd0g
        100
    p1gd0g  
       121 天前   ❤️ 1
    我一个全栈( c#,go )体会最深了,早点下班不香吗
    1  2  
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   5084 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 94ms · UTC 06:13 · PVG 14:13 · LAX 22:13 · JFK 01:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.