初学 go 语言,经常看到有网友说某某 go 代码一股 Java 味

2020-12-16 20:31:40 +08:00
 hihanley

小白想问问:

  1. 为什么说他一股 java 味
  2. 什么样的 go 代码是优雅的、好的
10116 次点击
所在节点    Go 编程语言
85 条回复
sharpy
2020-12-17 09:58:52 +08:00
@learningman 当初学 go 的时候,说的是云计算的 c
lostpg
2020-12-17 10:11:40 +08:00
@cco 不是一个东西,go 的 src 是 gopath 时代用来存放所有 golang 的源码库的文件夹,和 src 文件夹平级的 pkg 和 bin 分别存放依赖和编译生成。一个源码库里面理论上不出现 src 文件夹,直接以 package 的形式区分。
guyeu
2020-12-17 10:17:07 +08:00
主要写 java 也写过 go,真想学一下咋把 go 写出 java 味。。
anonydmer
2020-12-17 10:22:40 +08:00
@lewis89 #36, 没写过测试代码都这样,没必要跟他们急
itskingname
2020-12-17 10:31:17 +08:00
写 Java 的人转 Python,写出来的 Python 代码也是一股浓浓的 Java 味。

所谓 Java 味,就是明明一两个文件就能写完的逻辑,非要嵌套十几而是层文件夹,例如,你发下有一个人写的 Go 代码是这样的:

com/xxx/yyy/zzz/mm/impl/abc.go
com/aaa/bbb/ccc/ddd/eee/fff/xyz.go

这就叫做 Java 味。

还有一种是大量使用 get/set 。当我们用 Go 初始化一个已知数据的数据的时候,一般这样写:

a := []string{"aaa", "bbb", "ccc"}

但是 Java 味会这样写:

var a []string
a = append(a, "aaa")
a = append(a, "bbb")
a = append(a, "ccc")
namelosw
2020-12-17 10:54:21 +08:00
Java 味不光在 Go 常见,在哪都常见,典型的就是到处糊设计模式。

设计模式是语言缺陷的体现,换了个语言很多时候就不需要某些设计模式了。比如有 multi methods 就很少需要 visitor 了,但是有的人还跑过来一个劲地写 visitor,这就是所谓的某种‘味’。
Suddoo
2020-12-17 10:59:50 +08:00
直接写 go func 就行了,非要搞个空 struct,然后把方法写到这个空 struct 下
huayumo
2020-12-17 11:10:26 +08:00
程序能跑,能赚钱,管他什么语言,管他优雅不优雅,哪怕是中文写的函数呢
learningman
2020-12-17 11:13:36 +08:00
@zengming00 都一样,C 的 enum 也恶心
whyso
2020-12-17 11:21:21 +08:00
我见过一段变量名以$开头的代码,这是不是 PHP 味的?
huobazi
2020-12-17 11:23:28 +08:00
我就喜欢看大家各种抬杠 O(∩_∩)O 哈哈~
bzw875
2020-12-17 11:24:17 +08:00
借楼问一下,macos 没有管理员权限下安装 go lang
tinyuu
2020-12-17 11:27:42 +08:00
对 java 是异教徒 ,大家回到 1996 去干掉异教徒,发布 1996 go 。
baozijun
2020-12-17 11:38:14 +08:00
@itskingname #44 java 是这样写 String[] a = new String[]{"aaa","bbb","ccc"};万物皆对象. java 也没有切片,数据直接赋值即可.能不能找点编程语言非共通的点来黑呢.
baozijun
2020-12-17 11:39:55 +08:00
@acmore #26 大佬是不屑于讨论这些的.你在这里看到的回复可能(应该)100%都是菜鸟(包括我)
charlie21
2020-12-17 12:18:15 +08:00
@itskingname 这个是按行数算 KPI 工作绩效的吧
dk7952638
2020-12-17 12:52:32 +08:00
某些人对自己理解不了的事情或驾驭不了的技能都会扣上各种帽子,比如说 XX 味
decimalbell
2020-12-17 13:01:59 +08:00
@lewis89 正解
decimalbell
2020-12-17 13:04:07 +08:00
@sagaxu 预期只有一个实现的主要原因是不写测试
bk201
2020-12-17 13:05:58 +08:00
优雅又不能当饭吃,你搞个私人项目随你怎么优雅

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

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

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

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

© 2021 V2EX