用Go写了一个程序,朋友说Java味太浓了。。。

。。。。。。不知道为什么会这么觉得,是怎么看出来的???

虽然我是写Java的,但是感觉写Go也没那么明显吧,社区的大佬帮忙看看,是否真的很浓。

如果是真的,怎么才能改善?


代码地址 https://github.com/fzdwx/burst

1 个赞

项目结构都是根据 https://github.com/golang-standards/project-layout 来的,简直完美复刻的。

没看出来,乍一看还以为 Yale style haskell

1 个赞

很标准的 go 写法(或者说 go 根本也没啥花哨的写法,go 代码都差不多),不知道所谓的 java 味是指啥

1 个赞

我问他,他也说不出来,也许是对我的偏见。我已经在很用力的使用go的一些语法了。

那就不要在意了,写 go,你根本没啥选择的余地,不是说你想怎么写,而是你只能这么写,不管是 OO 还是函数式,基本就是那个写法,可以去简单看看 k8s 的源码,go 代码可读性都很高

这个强度会不会有点大,有没有什么切入点推荐?

那可以先读一读一些标准库实现,比如 net/http,对理解 go 代码我觉得还是挺帮助的

burst/proxyInfo.go at e4358a0e8f0149e7ae43e85848d5daf8fd10bf97 · fzdwx/burst (github.com)

这页感觉用map 包装这个ProxyInfos 感觉有java 的味道,其他没细看 :rofl:

1 个赞

这个go/net 用起来确实挺方便的,我发现比较流行的go web的框架都是基于这个来封装的,确实可以。

函数的命名吗,哈哈,用习惯了,写这个map主要是不想每次都强转,go 的泛型用的还是不舒服。。。

以我的经验来说,java味越浓,架构的越好。

java基本上把工程架构的所有套路都玩到非常成熟的地步了,其他语言想把架构这方面往好了整,最终结果就是java味越来越浓

但是现在大多数公司都是微服务架构了,每个服务的职责和代码量级都大大降低了。单个服务把架构往好了整,带来的复杂性和收益,性价比大大下降,服务间架构的价值反而更高。

所以现在go做后端大家都是糙快猛,管你什么架构,最后必然腐化,先出效果,能跑就不要动,kpi不够再用重构来凑

1 个赞

哈哈,那我这可能还谈不上Java味了,顶多就是用写Java来写go了。

我怎么觉得挺正常的,(我没有写过java

1 个赞

也许是我命名之类的?


提一个新问题: 就是在go里面,需要分controller和service之类的吗?目前我是没有分的,相当于在controller里面处理了。