写 Go 真的好爽

2024-09-06 15:56:38 +08:00
 jlak
写 Go 一个月了,越写越爽,最近开始用上了 Ai 辅助后真倍爽
自己也没搞清楚为什么写 Go 就会特别爽
有可能是规范和提示,这点动态语言不太完善
(但是不知道为什么 TS 就不爱用)
即使给程序来个大改也比较轻松不容易出错
还有代码是真的容易看懂
自己写的也好别人写的也好从来没想过能这么容易懂
14459 次点击
所在节点    Go 编程语言
98 条回复
huangliu
2024-09-06 15:58:47 +08:00
有可能是因为功能越多,写得越花哨,就越难懂
hedwi
2024-09-06 16:00:16 +08:00
go 真的挺好 不知道很多喷 go 的人都用啥先进的语言
povsister
2024-09-06 16:03:27 +08:00
因为 go 最初设计就是,尽量抹平新手和老手之间的理解与认知 gap ,让一个团队里不同水平的工程师都可以互相合作。

简单点说就是下限和上限差别很大。这点在框架开发上其实蛮牢的,你要么接受设计者的哲学,要么就自己另起炉灶。
这可能也是 go 在社区口碑两极分化的原因,喜好的人很喜好,不喜欢的人就是不喜欢。
cmdOptionKana
2024-09-06 16:03:41 +08:00
心智负担低啊,一切都清清楚楚明明白白。

缺点是罗嗦、不够简洁,但优点也很明显,全透明,感觉很轻。

比如 Python 或 Java 里的类和对象,给人的感觉就很“重”,总感觉背着一大坨行李,也不透明,有时夹带魔法。
thoo61871
2024-09-06 16:07:46 +08:00
go 是世界上最好的语言
我支持 go ,你们可以打我了
LieEar
2024-09-06 16:08:49 +08:00
我觉得最爽的是直接生成可执行文件,方便部署。docker 镜像也不到 50MB
jlak
2024-09-06 16:09:54 +08:00
@cmdOptionKana 用上 AI 后啰嗦也不是缺点了,就一按 Tab 的功夫
wentx
2024-09-06 16:11:16 +08:00
@jlak #7 然后变成了 tab 工程师(狗头保命
povsister
2024-09-06 16:18:18 +08:00
@jlak
老实说,写 go 也五六年了,除了业务代码 AI 有点用以外,大多数情况我体感是 AI 只能帮倒忙。
尤其在写一些很底层的部分时,由于变量名称省略较多,经常都是 1-2 个字母的变量名,然后 AI 给你写的代码光给它 debug 就要费劲很多,还容易看错。
flytsuki
2024-09-06 16:19:50 +08:00
写过 go,还是觉得 c#舒服
csys
2024-09-06 16:20:03 +08:00
我自己的观点,写 go 爽一个是因为并发模型,如果之前没用过这方面做的比较好的语言(比如 java ),就能体会到比较大的进步
另一个是 go 的多态实现,之前用的是传统 oo 语言,就会觉得很简单直接
最后是非常简洁,就比如 if 语句不带括号,还是非常舒服的,写 python 也挺爽的

但是 go 也会有很不爽的时候,比如错误处理,比如缺少模式匹配,比如难用的泛型和 lambda ,比如只有 interfaces 而没有 traits

另外 go 项目大了也是挺难看懂的,go 的一个风格特点是命名非常简单,项目大了以后,一些名字使用的地方和定义的地方就会隔得比较远,到时候满眼都是 ch, g, m ,就难懂了
henix
2024-09-06 16:23:24 +08:00
我也觉得,心智负担低到甚至可以用记事本一遍写出可以通过编译的代码
jlak
2024-09-06 16:25:01 +08:00
@povsister 那可能是因为你用的不是 cursor 吧,我用下来在补全方面非常精准,和其他补全有很大差距。
基本简单的东西都不需要自己写了,比如最基础的 err!=nil 再也不用手动写了
liuliancao
2024-09-06 16:25:10 +08:00
经常点来点去的 比较像自然语言 会好懂点
body007
2024-09-06 16:31:39 +08:00
写 go ,有啥不懂直接点进去看源码,清清楚楚、明明白白。我写 python 时候那真是噩梦,标准库点进去只看到一个定义,想看参数用法只能找文档,还生怕用错了。被 *args 和 **kwargs 支配的恐惧,就像 go 写函数传参是 func test(arg map[string]any) 一样蛋疼。
jlak
2024-09-06 16:35:46 +08:00
@csys 我翻了自己几年前写的 Python oo 屎山直呼什么玩意看不懂
还好 Go 没 this ,self

简短的变量名官方规范好像是用在局部变量
像 for 里临时变量里,适用范围小应该还算可以吧
edisonwong
2024-09-06 16:36:38 +08:00
1. ai 敲 tab 出来的业务逻辑大多数不能用,排查费劲。
2. go 如果加个 fea 能控制 goroutine 的生命周期就好了。我最近在写 python+django ,那报错信息云里雾里,好几行误导。python mysql client 还依赖底层文件。在一些老系统里装底层依赖真是要了老命;要 java 的话各种 o ,命名还贼长。
8355
2024-09-06 16:37:06 +08:00
我的理解同一个逻辑需求大概率只有一种写法,不是很在意是否为最佳实践,其他语言在这方面包袱很重。
同时还有 Gofmt 自动格式化比较舒适,所有人的代码是一个格式,没有多余的无效引用和灰色的无用代码。
jlak
2024-09-06 16:38:39 +08:00
@edisonwong 业务逻辑肯定不能交给 tab ,我觉得他适合当作 snippets ,一个自动选择的,超大 snippets 集
vczyh
2024-09-06 17:10:50 +08:00
Build 后一个可执行文件可太爽了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1070765

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX