莫名~~我就喜欢你!对 Go 有莫名好感,请问 web 开发 Go 和 node 深耕哪个比较好 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
unt
V2EX    Go 编程语言
  •  
  •   unt 2023-03-18 00:27:18 +08:00 6674 次点击
    这是一个创建于 968 天前的主题,其中的信息可能已经有所发展或是发生改变。

    都说 Go 不是面向对象的语言,是面向接口的编程语言,不适合用来开发 web 。 但是 node 在小企业中,在 web 开发方面较 Go 却有着很多的天然优势。

    前段时间 Go 基础已经学完了,当时学的时候停不下来,基础学完后却有点迷茫了。然后打开 boss 一看,招 nodeweb 的要多得多,工资也不低,更加迷茫了~。

    请问 Go 未来的发展会不会增加对 Web 开发的支持,是继续深耕 node 还是一心一意转 Go 。

    41 条回复    2023-03-27 10:30:37 +08:00
    quella
        1
    quella  
       2023-03-18 01:01:58 +08:00
    不如讲讲你使用 Go Web 开发,遇到了哪些问题?
    quella
        2
    quella  
       2023-03-18 01:03:35 +08:00
    https://go.dev/doc/faq#Is_Go_an_object-oriented_language
    Yes and No 。Go 是允许 OO 的编程风格的
    unt
        3
    unt  
    OP
       2023-03-18 01:09:58 +08:00
    @quella 谢谢,这些文章我看看
    gogogo1203
        4
    gogogo1203  
       2023-03-18 01:15:41 +08:00   1
    最初学的 go, 然后搞前端,然后 go+react, 然后 go+react+docker, 然后 react+supabase , 上个星期以前 react+supabase+deno edge function , 现在 chatgpt 撸一切。 语言什么其实不重要,我越来越觉得对我来说部署最快的就是最好的。 以前 go 写一大堆东西, 再架个 sql, 现在两行代码类似数据库即后台的服务就搞定了。 我现在觉得 编程语言之间的鸿沟 越来越小了。
    unt
        5
    unt  
    OP
       2023-03-18 01:23:40 +08:00 via iPhone
    @gogogo1203 如果只是为了实现业务,那什么语言都可以,但是我们大多数时候,决定我们学习方向的,是金钱。
    人的精力有限,脑力有限,学太多东西的话,会遗忘,没有天赋的话势必会造成什么都会,什么都不精通的局面。
    gogogo1203
        6
    gogogo1203  
       2023-03-1 01:36:16 +08:00
    我用了两天 chat4, 我只能说他的能力超乎想象。 让它实现 to-do list 拖拽功能, 他能直接推荐最成熟的库。 我记得我去年看这个库的 doc 看了半天, 他一分钟直接把所有功能吐出来了。 我不知道你该怎么选, 我只知道你应该仔细思考一下 AI 可能带来的改变。 btw, 你去看看 ardanlab service 3.0 的 repo. 我见过最强的 go web app ,把 engineering 做到了极致。
    unt
        7
    unt  
    OP
       2023-03-18 01:39:13 +08:00 via iPhone
    @gogogo1203 谢谢
    sadfQED2
        8
    sadfQED2  
       2023-03-18 01:42:32 +08:00 via Android   1
    谁说的 go 不适合搞 web ,battmd 这里面每家公司都有大规模在拿 go 写 web ,国内我没听说过这里面有哪家公司大规模用 node 写 web
    lessMonologue
        9
    lessMonologue  
       2023-03-18 02:01:29 +08:00
    @gogogo1203 简单看了一下 ardanlab service 3.0 ,貌似是一个课程,repo 只是一个简单的 web 服务,能否详细描述一下它如如何成为您心目中极致的 engineering 的?感激不尽
    maigebaoer
        10
    maigebaoer  
       2023-03-18 02:28:21 +08:00 via Android
    两种不同方式处理并发问题,肯定都学啊,哪个能找到工作用哪个。
    qianqian888
        11
    qianqian888  
       2023-03-18 02:29:22 +08:00   1
    学 python 吧,能写 web,还有其他作用.
    dcsuibian
        12
    dcsuibian  
       2023-03-18 06:15:50 +08:00 via Android   1
    go 感觉还是适合中间件啥的
    web 呢,也不是不适合,但 java ,nodejs ,python ,C#,php 大家都能写 web ,也没啥优势
    hello2090
        13
    hello2090  
       2023-03-18 07:22:54 +08:00
    @unt 有天赋不是应该啥都会啥都精通吗?没天赋是只能精通一个,还是只会一个,但也精通不了?
    agdhole
        14
    agdhole  
       2023-03-18 07:56:26 +08:00   4
    不面向找工作的话,c# .net 是最舒服的语言和平台
    ClericPy
        15
    ClericPy  
       2023-03-18 08:13:59 +08:00
    学啥语言都绕不开学 JS 和 py 的吧...

    要是真的只向钱看, 看你底子吧:

    1. 计算机底子很好, 科班出身, 或者名校毕业, golang 起点和天花板一般都不低, 能拿到一个比较满意的薪水

    2. 自学成才类型的, 走前端是产出收益比最大的选项之一了, 浏览器和小程序还有 App 生态已经成熟, 虽然有些卷, 但门槛低一些收入也足够高, 前两年算风口上的行业, 招聘需求很旺盛带着薪资也提上来了

    一般情况下的开发者会先熟练掌握一门语言把它吃透, 一方面解决吃饭问题, 另一方面语言大都一门通门门通的趋势, 至于说某某语言是 XXX 不适合 XXX, 还是看个人能力水平, 毕竟以前也出现过 JS 写操作系统的大佬...

    对于主力语言的选择, 还是看自己职业背景与发展方向吧
    Nazz
        16
    Nazz  
       2023-03-18 08:16:57 +08:00 via Android
    从实用的角度看,当然是 go, uber 都转 go 了. 早些年 nodejs 的 mysql 驱动都有问题,不知道现在解决没; nodejs 多线程不成熟, 标准库远不如 go 强大; js 缺乏约束,即使上了 ts 也容易写成 AnyScript.
    dw2693734d
        17
    dw2693734d  
       2023-03-18 08:31:08 +08:00
    golang 比较好
    liuyibao
        18
    liuyibao  
       2023-03-18 09:09:37 +08:00
    Go 写 web 的确没啥优势,写 CRUD 感觉很恶心。适合中间件 K8S 这些。
    acthtml
        19
    acthtml  
       2023-03-18 09:14:16 +08:00
    初学不用考虑这个问题,选适合自己使用场景的就行,一门语言再深都深不到哪去,后面都是相通的。
    gogogo1203
        20
    gogogo1203  
       2023-03-18 10:19:47 +08:00
    @lessMonologue 你可以去查一下 Bill Kennedy 是谁. 他的课程里面重点讲 ap 的架构,怎么分 package, error handling, middleware, 什么 fundation layer 可以重复使用,app 的 business logic 放到哪里,数据库怎么测,怎么 versioning 。 然后所有的动作怎么加入 docker, 怎么写成 make command. 我已经是一年多以前学习的, 也超过 7 个月没有用过 go 了。 但这都不影响他的课程的牛 x 程度。 “简单的” web 服务, 你也可能是对的,毕竟你的水平应该比我高太多。
    miv
        21
    miv  
       2023-03-18 10:22:41 +08:00 via Android
    go web 开发,很蛋疼啊,靠谱的 crud 都没有,更不要说很丰富的第三方组件了。不适合不适合。
    gogogo1203
        22
    gogogo1203  
       2023-03-18 10:25:45 +08:00
    @liuyibao 我不停地用了两天 chat4 以后我反而觉得 go 写 web 会有一定的优势。 只有足够高质量的 go 代码,你直接丢给 chat 4 让它帮你模仿写出来新的你需要。go 的 type 和 error handling 这时候就会有优势了. 当然, 小小的业务根本用不上这些.
    lzgshsj
        23
    lzgshsj  
       2023-03-18 11:27:47 +08:00
    有没有推荐的 Go 的 ORM ,大概体验类似 Node 的 TypeORM 和 Prisma 这样的
    gogogo1203
        24
    gogogo1203  
       2023-03-18 11:35:22 +08:00
    @lzgshsj Bill Kennedy 推荐不要用 ORM. 不是很会 sql , 让 AI 帮忙就好了。
    tairan2006
        25
    tairan2006  
       2023-03-18 11:40:16 +08:00
    Go 是可以 OOP 的。

    写 web 的话,ORM 就别用了,直接 sqlbuilder 完事.

    至于楼上全部推荐用 AI 的…建议你还是别学,跳槽找不到工作的。
    matrix1010
        26
    matrix1010  
       2023-03-18 11:49:38 +08:00   1
    @gogogo1203 似乎就是个专门卖课搞培训的?也没参与过什么知名的开源项目。另外成熟的 go web 建议学习 grafana: https://github.com/grafana/grafana
    yazinnnn
        27
    yazinnnn  
       2023-03-18 11:54:47 +08:00
    打听一下,对 go 的什么特性有好?
    QlanQ
        28
    QlanQ  
       2023-03-18 14:57:16 +08:00
    +1 打听一下,对 go 的什么特性有好感?
    macha
        29
    macha  
       2023-03-18 15:07:49 +08:00
    后端开发的最核心不应该是理解各种业务要怎么用现有轮子或套路去处理么?
    个人觉得后端是对语言依赖最低的岗位。
    xieren58
        30
    xieren58  
       2023-03-18 15:19:32 +08:00   1
    ts + rust ... 搞定一切, 没 go 什么事情...
    dqzcwxb
        31
    dqzcwxb  
       2023-03-18 15:22:52 +08:00
    @QlanQ 盲猜协程百万并发
    zzzzzzZ
        32
    zzzzzzZ  
       2023-03-18 15:26:03 +08:00
    你有很多常识性的错误,不多废话纠正了。无脑选 go

    对等 boss 直聘你应该搜《云原生后端开发工程师》或者某些厂里面深度的后端项目,一般小公司不怎么玩 go

    node 你其实应该直接对标《初级前端工程师》的上限和下限即可。

    它只是个运行环境不是编程语言,编程语言是 Javascript ,连架构都没涉及到,而且还局限于服务端。跑的前端代码,又提供 web 服务,普通运行环境一般都用 PM2 ,更别提套个容器跟云原生沾不上半点边。

    说白了就是个架构师 /运维部署的常识环境,普通小开发基本上也不需要多少技能。不是很理解你把它作为一技之长有什么目的?
    Revenant
        33
    Revenant  
       2023-03-18 21:44:12 +08:00
    B 站不就是用 Go 开发吗
    voidmnwzp
        34
    voidmnwzp  
       2023-03-18 22:25:58 +08:00 via iPhone
    单纯写业务面对沉杂的 curd 和复杂的业务逻辑 go 的体验远不如 Java 但是要写也是可以写
    reamramon
        35
    dreamramon  
       2023-03-19 09:54:27 +08:00
    现在 web 业务也是纯手撸
    react+supabase+deno edge function

    其他的麻烦的用 jdk19 的 vertx 写,体验无比的好。
    zhangzEric
        36
    zhangzEric  
       2023-03-19 10:51:35 +08:00
    @gogogo1203 感谢推荐
    DamonLin
        37
    DamonLin  
       2023-03-20 17:17:42 +08:00
    简单的 curd 没啥问题,复杂的业务逻辑写 go ,那真是蛋疼
    IIInsomnia
        38
    IIInsomnia  
       2023-03-20 18:37:12 +08:00
    ent 不是很好吗?
    songray
        39
    songray  
       2023-03-20 20:44:20 +08:00
    Go 和 Node 现在都很"薄",没必要一定坚持哪一个做到底,都学学看看就行了。
    xiaocaiji111
        40
    xiaocaiji111  
       2023-03-22 12:10:29 +08:00
    刚入门还早,写个东西试试吧。后端服务,还是 java ,go ,php 之流的多,国内 node 很少。
    GG668v26Fd55CP5W
        41
    GG668v26Fd55CP5W  
       2023-03-27 10:30:37 +08:00 via iPhone
    Go 的上限很高,node 不行。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5373 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 07:45 PVG 15:45 LAX 23:45 JFK 02:45
    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