都说 Go 不是面向对象的语言,是面向接口的编程语言,不适合用来开发 web 。 但是 node 在小企业中,在 web 开发方面较 Go 却有着很多的天然优势。
前段时间 Go 基础已经学完了,当时学的时候停不下来,基础学完后却有点迷茫了。然后打开 boss 一看,招 nodeweb 的要多得多,工资也不低,更加迷茫了~。
请问 Go 未来的发展会不会增加对 Web 开发的支持,是继续深耕 node 还是一心一意转 Go 。
1
quella 2023-03-18 01:01:58 +08:00
不如讲讲你使用 Go Web 开发,遇到了哪些问题?
|
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 的编程风格的 |
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, 现在两行代码类似数据库即后台的服务就搞定了。 我现在觉得 编程语言之间的鸿沟 越来越小了。
|
5
unt OP @gogogo1203 如果只是为了实现业务,那什么语言都可以,但是我们大多数时候,决定我们学习方向的,是金钱💰。
人的精力有限,脑力有限,学太多东西的话,会遗忘,没有天赋的话势必会造成什么都会,什么都不精通的局面。 |
6
gogogo1203 2023-03-18 01:36:16 +08:00
我用了两天 chat4, 我只能说他的能力超乎想象。 让它实现 to-do list 拖拽功能, 他能直接推荐最成熟的库。 我记得我去年看这个库的 doc 看了半天, 他一分钟直接把所有功能吐出来了。 我不知道你该怎么选, 我只知道你应该仔细思考一下 AI 可能带来的改变。 btw, 你去看看 ardanlab service 3.0 的 repo. 我见过最强的 go web app ,把 engineering 做到了极致。
|
7
unt OP @gogogo1203 谢谢
|
8
sadfQED2 2023-03-18 01:42:32 +08:00 via Android 1
谁说的 go 不适合搞 web ,battmd 这里面每家公司都有大规模在拿 go 写 web ,国内我没听说过这里面有哪家公司大规模用 node 写 web
|
9
lessMonologue 2023-03-18 02:01:29 +08:00
@gogogo1203 简单看了一下 ardanlab service 3.0 ,貌似是一个课程,repo 只是一个简单的 web 服务,能否详细描述一下它如如何成为您心目中极致的 engineering 的?感激不尽
|
10
maigebaoer 2023-03-18 02:28:21 +08:00 via Android
两种不同方式处理并发问题,肯定都学啊,哪个能找到工作用哪个。
|
11
qianqian888 2023-03-18 02:29:22 +08:00 1
学 python 吧,能写 web,还有其他作用.
|
12
dcsuibian 2023-03-18 06:15:50 +08:00 via Android 1
go 感觉还是适合中间件啥的
web 呢,也不是不适合,但 java ,nodejs ,python ,C#,php 大家都能写 web ,也没啥优势 |
14
agdhole 2023-03-18 07:56:26 +08:00 4
不面向找工作的话,c# .net 是最舒服的语言和平台
|
15
ClericPy 2023-03-18 08:13:59 +08:00
学啥语言都绕不开学 JS 和 py 的吧...
要是真的只向钱看, 看你底子吧: 1. 计算机底子很好, 科班出身, 或者名校毕业, golang 起点和天花板一般都不低, 能拿到一个比较满意的薪水 2. 自学成才类型的, 走前端是产出收益比最大的选项之一了, 浏览器和小程序还有 App 生态已经成熟, 虽然有些卷, 但门槛低一些收入也足够高, 前两年算风口上的行业, 招聘需求很旺盛带着薪资也提上来了 一般情况下的开发者会先熟练掌握一门语言把它吃透, 一方面解决吃饭问题, 另一方面语言大都一门通门门通的趋势, 至于说某某语言是 XXX 不适合 XXX, 还是看个人能力水平, 毕竟以前也出现过 JS 写操作系统的大佬... 对于主力语言的选择, 还是看自己职业背景与发展方向吧 |
16
Nazz 2023-03-18 08:16:57 +08:00 via Android
从实用的角度看,当然是 go, uber 都转 go 了. 早些年 nodejs 的 mysql 驱动都有问题,不知道现在解决没; nodejs 多线程不成熟, 标准库远不如 go 强大; js 缺乏约束,即使上了 ts 也容易写成 AnyScript.
|
17
dw2693734d 2023-03-18 08:31:08 +08:00
golang 比较好
|
18
liuyibao 2023-03-18 09:09:37 +08:00
Go 写 web 的确没啥优势,写 CRUD 感觉很恶心。适合中间件 K8S 这些。
|
19
acthtml 2023-03-18 09:14:16 +08:00
初学不用考虑这个问题,选适合自己使用场景的就行,一门语言再深都深不到哪去,后面都是相通的。
|
20
gogogo1203 2023-03-18 10:19:47 +08:00
@lessMonologue 你可以去查一下 Bill Kennedy 是谁. 他的课程里面重点讲 app 的架构,怎么分 package, error handling, middleware, 什么 fundation layer 可以重复使用,app 的 business logic 放到哪里,数据库怎么测,怎么 versioning 。 然后所有的动作怎么加入 docker, 怎么写成 make command. 我已经是一年多以前学习的, 也超过 7 个月没有用过 go 了。 但这都不影响他的课程的牛 x 程度。 “简单的” web 服务, 你也可能是对的,毕竟你的水平应该比我高太多。
|
21
miv 2023-03-18 10:22:41 +08:00 via Android
go web 开发,很蛋疼啊,靠谱的 crud 都没有,更不要说很丰富的第三方组件了。不适合不适合。
|
22
gogogo1203 2023-03-18 10:25:45 +08:00
@liuyibao 我不停地用了两天 chat4 以后我反而觉得 go 写 web 会有一定的优势。 只有足够高质量的 go 代码,你直接丢给 chat 4 让它帮你模仿写出来新的你需要。go 的 type 和 error handling 这时候就会有优势了. 当然, 小小的业务根本用不上这些.
|
23
lzgshsj 2023-03-18 11:27:47 +08:00
有没有推荐的 Go 的 ORM ,大概体验类似 Node 的 TypeORM 和 Prisma 这样的
|
24
gogogo1203 2023-03-18 11:35:22 +08:00
@lzgshsj Bill Kennedy 推荐不要用 ORM. 不是很会 sql , 让 AI 帮忙就好了。
|
25
tairan2006 2023-03-18 11:40:16 +08:00
Go 是可以 OOP 的。
写 web 的话,ORM 就别用了,直接 sqlbuilder 完事. 至于楼上全部推荐用 AI 的…建议你还是别学,跳槽找不到工作的。 |
26
matrix1010 2023-03-18 11:49:38 +08:00 1
@gogogo1203 似乎就是个专门卖课搞培训的?也没参与过什么知名的开源项目。另外成熟的 go web 建议学习 grafana: https://github.com/grafana/grafana
|
27
yazinnnn 2023-03-18 11:54:47 +08:00
打听一下,对 go 的什么特性有好感?
|
28
QlanQ 2023-03-18 14:57:16 +08:00
+1 打听一下,对 go 的什么特性有好感?
|
29
macha 2023-03-18 15:07:49 +08:00
后端开发的最核心不应该是理解各种业务要怎么用现有轮子或套路去处理么?
个人觉得后端是对语言依赖最低的岗位。 |
30
xieren58 2023-03-18 15:19:32 +08:00 1
ts + rust ... 搞定一切, 没 go 什么事情...
|
32
zzzzzzZ 2023-03-18 15:26:03 +08:00
你有很多常识性的错误,不多废话纠正了。无脑选 go
对等 boss 直聘你应该搜《云原生后端开发工程师》或者某些厂里面深度的后端项目,一般小公司不怎么玩 go node 你其实应该直接对标《初级前端工程师》的上限和下限即可。 它只是个运行环境不是编程语言,编程语言是 JavaScript ,连架构都没涉及到,而且还局限于服务端。跑的前端代码,又提供 web 服务,普通运行环境一般都用 PM2 ,更别提套个容器跟云原生沾不上半点边。 说白了就是个架构师 /运维部署的常识环境,普通小开发基本上也不需要多少技能。不是很理解你把它作为一技之长有什么目的? |
33
Revenant 2023-03-18 21:44:12 +08:00
B 站不就是用 Go 开发吗
|
34
voidmnwzp 2023-03-18 22:25:58 +08:00 via iPhone
单纯写业务面对沉杂的 curd 和复杂的业务逻辑 go 的体验远不如 Java 但是要写也是可以写
|
35
dreamramon 2023-03-19 09:54:27 +08:00
现在 web 业务也是纯手撸
react+supabase+deno edge function 其他的麻烦的用 jdk19 的 vertx 写,体验无比的好。 |
36
zhangzEric 2023-03-19 10:51:35 +08:00
@gogogo1203 感谢推荐🙏
|
37
DamonLin 2023-03-20 17:17:42 +08:00
简单的 curd 没啥问题,复杂的业务逻辑写 go ,那真是蛋疼
|
38
IIInsomnia 2023-03-20 18:37:12 +08:00
ent 不是很好吗?
|
39
songray 2023-03-20 20:44:20 +08:00
Go 和 Node 现在都很"薄",没必要一定坚持哪一个做到底,都学学看看就行了。
|
40
xiaocaiji111 2023-03-22 12:10:29 +08:00
刚入门还早,写个东西试试吧。后端服务,还是 java ,go ,php 之流的多,国内 node 很少。
|
41
falcon05 2023-03-27 10:30:37 +08:00 via iPhone
Go 的上限很高,node 不行。
|