之前主要是在中厂用 java 做业务
目前进了虾皮用 go 做业务。
这一对比,感觉搞不懂 是脑抽了用 go 了吗?

接手的前几天就被无边无际的 json 属性文件恶心到了
和 java 一对比 加载简直就是原始人的烧火棍
写了 json 内容后 还需要自己去写对应的 config.go 文件 在里面增加对应的结构体
还得在代码里通过 io 去加载各种资源。

这个过程 ide 是感知不到的。你想通过属性文件看源码。。还得自己去手动搜索关键字
简直要人命。这都 21 世纪了 我感觉工具退回去到 20 世纪了。

包管理更是别说了
golang 设计者以 git 为包平台
我现在想找一些封装的 http 或者其他工具类
由于不像 maven 和 npm 有一个统一的平台打包

你想去搜 如果没有人在内部写对应的文档。根本找不到你想要的东西

更气的是 隔几行就出了一个 error.
也没有全局捕捉。。

准备明年溜了 人生苦短。我不适合用 go ,
现在才明白 java 真的不愧是世界第一语言

管他呢,能吃饭的就是好语言

json 转 struct ,可以试试这个

mholt.github.io/json-to-go/

那个啥,要不体验一下 C# ?

xd 这话没毛病。。但是好歹吃饭的家伙顺手点啊。

JAVA 只要脑子正常点,其实很难写出烂代码的

less is more
有时候意味着抽象 less ,代码 more

预测一下
"是你太菜,不是 go 不行"

各有优缺点,列举 java 缺点一样能举一堆。

莫名被楼主的 id 和帖子标题逗笑了....

没有烂的代码 只有烂的人

哈哈哈哈发现了盲点

这是前任的问题吧

被楼主恶心到了,你牛逼干嘛进用 Go 的公司?吃饱饭摔碗骂娘

虽然语言都是表相,但是每个语言都有自己擅长的领域。这种擅长小部分是因为语言特性,大部分是因为软件生态的建设。选择不适合的语言并不是把事情做不成,而是事倍而功半。

举几个例子,Python 适合炼丹,Java 适合复杂业务逻辑开发,Golang 适合中间件开发等等,这些并不是刻板印象~

离职大法好

习惯而已,要知道很多 Go 开发是从 Node.js 和 PHP 转过来的

害,反正语言只分两种,有人骂的和没人用的

你看 c#家的亲戚 f#,根本都不会有人看他一眼,即使这玩意儿非常牛逼

难道 java 新增配置不写 Configuration/Properties 吗?

笑而不语

我写 Java 的时候,我也一路骂到底。

问题是,我不会主动入职一个写 Java 的团队,然后去网上发帖骂 Java 。 非要被迫改几行 Java 代码,也是喷之前写 Bug 的人。

你可以试试我最近刚写的配置管理轮子: github.com/Yiling-J/piper 。只需要改配置文件其他自动生成。不过用这个你得把以前所有的配置方式都改掉🐶

  1. golang 需要改结构体 /新增结构体
  2. 如果是新文件的话 得通过 ioutils 加载文件流
  3. 加载过程 还得 判断个 error
  4. 写 json 文件 ide 不会有智能提示 属性文件多了。这谁知道 哪个结构体在用哪个属性 全靠猜了

java 的话哪需要这么多麻烦。。

直接写个 java 文件 加个 顺便带个 prefix 就智能匹配了
何况有 idea 提示

好家伙直接 java 世界第一语言,一时间不知道从哪开始喷你

那我改下 改成 后端第一语言 是 java

请开始你的反驳

你骂什么? 骂写的烂?还是

我不用反驳,你证明一下吧

当年 Android 系统进入国内才三四年时,各种烂,但本科毕业生能给到人均 1w...

看看你的 id ,真是个狗渣男。

人菜不要怪语言,要不就是你们公司框架烂

php:谁夺去了我第一的名号?

我觉得好有这些

  1. 搭配 maven 好用 最底层的依赖管理上可靠。maven 简单易学 可以说一天就学会 而且插件强大
  2. 搭配 spring 和 maven 任何框架能傻瓜式接入 第三方要是封得好一点。开箱即用 直接导入就可以使用了
  3. 面向对象设计 可以使用 aop & ioc 。
  4. 编译语言 常驻内存 可以做各种流式任务处理
    5.idea 强大

    要是之前我会认同这句话,但是现在我知道烂是不分语言的,优秀的语言并不一定保证写出优秀的代码,任何语言都一定可以写出烂代码


包管理更是别说了
golang 设计者以 git 为包平台
我现在想找一些封装的 http 或者其他工具类
由于不像 maven 和 npm 有一个统一的平台打包

居然没人喷。。。。

其实,我们用的不是 java ,我们用的是 spring 。

gowalker.org 那么好用,用 Go 还要手动写文档?

1.java 也需要 JavaBean
2.java 新增文件难道不需要加载流吗
3.将配置序列化为结构体只需要判断一次 error(spring-boot 是因为提供了 default 配置,)
4.spring,Properties 智能提示是 idea 的功能, 和语言有什么关系

  1. 可能你需要 viper

我感觉你喷的不是 go, 只是 java 给了你太温馨的家园, 你就以为所有语言该是这个样子的

哈哈哈哈哈哈啊哈哈

你是不是觉得有 java 基础转到 go 就什么都不用学了

java is the best

我只想知道虾皮给的多吗?

差国内大厂差一些

同意 37L ,语言基建和语言本身是两码事,用不来基建不代表语言恶心。看多少人把 ohmyzsh 功能当 zsh 自身特性就知道了。

我投 Java 一票

毕业就没用 java 写过了,我没啥要喷的就说下简单的感受

1.maven 就是用 xml 那个吗,对 xml 很反感直接 pass 。。
2.spring 很强但是不喜欢大一统
3.面向对象不是银弹,干啥之前先来个 class 给我印象和你对 go err 的印象差不多
4.go 不也是吗
5.goland 也是这个公司的啊。。其次 idea 还收费,而且不喜欢 java 这种离开 ide 都不知道咋整的语言, 没有 emacs 的世界我无法接受

Java 和 go 几乎是两个极端,你不习惯很正常。
Java 过度抽象,复杂度堆到了极点,go 则是故意设计地陋。如果你接手屎山代码,go 可以有效降低心智负担。

关于 json 这东西我咋感觉是 lz 前人写的代码有问题。。。。。

我不喜欢 java 我也回一句垃圾 java 没意见吧

go 是谁,找他的上级投诉他
至少也要恶心恶心他

牛皮, 虾皮的钱多吗

确实恶心,来虾皮纯属技术扶贫。
看了下楼主主页,当时为啥不去亚马逊呢?

不爽辞啊,要不你让人家把代码改成用 java 写?

包管理个人觉得 go mod 比那种中心仓库的好用很多

为啥?

没有中心仓库 想找工具 就真纯靠口耳相传了

反正我在虾皮 我是没看到有人去集中管理

go 做中间件、云原生很爽,写业务的话就比较一般了。
自己接受的岗位,只能自己做完了,别一味的的抱怨,首先还是改变自己吧,go 也有自己的优势(虽然有时候是被迫的),建议 lz 先好好学学 go ,再来对比。
总是站在 java 或者总是以自己舒适的方式来看待 go ,是在是有失偏颇。
最后,存在即合理。

写了几个工具,go 给我的感觉...能用就行...至于方便不方便.那不在乎..

pkg.go.dev 不是可以搜包么

panic recover 不是可以做到全局捕捉么

Either you or your code can run is enough

goland 把 json 粘贴进去不是可以自动生成 struct 么。。。

其实,java 生态还是牛逼的,就写后端来说,spring 很爽啊 快速实现什么的,maven 太恶心了,都是用 gradle.
以及,我主要写 python 的,在我的角度比 java 好用多了,但真写代码,还是 java 不那么容易写出没法用的代码

你现在能理解 c#是怎么看 java 的了吧

脉脉发一次, 又来 v2 发一次? 你到底发了多少地方啊, 至于吗, 不爽就跑啊, 又没人逼着你用

以前写 PHP 很顺手,奈何饭吃不饱嘛 doge

我听下来感觉是不是说把应该 hard code 的东西写到 json 配置里去了
hard code 和 json 配置,我也是倾向于 hard code

看到那么多问待遇的 回复下:虾皮待遇中上 深圳那面有机会去新加坡 我姐她老公在那 4/5 年样子 然后全家去了新加坡总部了。。

马上都 2022 年了,还有人在玩“PHP 是最好的语言”的哏?

go 性能 nb 啊,我们的线上 dsp 和算法都是 go ,ssp 还是 java

你有没想过,除了 4 ,其他的本质是 SpringBoot 的强大,相反来说,只能说 Shopee 基础太弱了

只要待遇好,必须干到老。

笑死 自己菜怪狗

套用成功学的一句话“格局小了”

很有意思,我觉得只有国内这种 go 生态和 c#一样畸形的环境,才能有这种评论区。
我蛮想看若干年后,又出来个新语言和 go 玩办公室政治,洗 go 团队的时候,会是个什么画风。
不对,我赌这帮人已然被优化了,也没什么画风了。
我再赌那时候 Java 依旧稳坐业务王座。

[7 天用 Go 从零实现系列背后的故事-哔哩哔哩直播] b23.tv/ZdSdcHF

go 写复杂业务是真的不爽,简单的业务搞搞还是挺舒服的

骂写 bug 的人这种行为并不比骂语言这种行为更高尚

不要去这种不用世界上最好的编程语言的公司

我也不理解为啥要用 go 写业务,开发速度比 C 快不了多少,复杂业务用 go 写一遍的时间,我能用 ruby/js/python 各写三种不同的实现

go 挺好的啊

我只想知道虾皮给的多吗?

哈哈 还是水平不够吧, 以前现学的 go 同事不知道 json 和 HTML 都有现成解析器, 结果自己动手发明了一套语法... 多用用就习惯了, 反正我现在是学 go 但不用它, 早晚用的上

#54 歪个楼,这个是感觉是基建+维护的问题,但更像是业务太快没时间提技术优化需求。建议和产品、研发 leader 对一下,看看是逐步优化还是大版本优化。

中心仓库这个,个人见过的解决办法:
1 、自建私有源,保留历史版本(对应 java 的自建仓,不过 go 的更简单,gitlab 顺便存一下依赖库就解决了,也不需要多部署别的服务)
2 、运维团队在 1 的基础上审核并更新版本,merge 公司内使用的魔改版到最新版(避免恶意代码+适应特异性优化)
3 、公司内的文档工程师定期处理组内对外提供服务的工具文档(有云服务的基本都有,自己部门没有,可以去别的部门借一个临时用用)

其实老哥你换个思路,公司问题越多,你的机会也就越多。如果公司啥问题没有,那找咱们来干啥。。。

看了一下楼主贴子,感觉自己已经被 spring 惯坏了🤣虽然总嫌弃启动慢之类的,写起业务还是真香

作为 java 开发,java 启动,内存确实慢,但是开发起来确实是舒服😂

less is more 的精髓:少量语法大量代码

都是先入为主惹的祸

java 跟 go 本来就是两个相反的理念

假如你先写的 go, 再去写的 java,你会发现 无比繁重, 启动贼慢, 内存疯长,并发代码逻辑复杂还容易出问题

是一个道理..

就看你先熟悉哪个了

毕竟语言不同,他们的生态圈完全不一样, 所以都有个习惯的过程

就跟你现在在你这家公司待熟悉了.. 什么业务你都觉得有底

可是你入职了一家新公司, 你会发现前期很难熬,因为很多你不熟悉的,就觉得十分不习惯..

那说回原题 既然不习惯 go, 就跟你不喜欢这公司一样,不想习惯了,就换呗 太正常了

我以为楼主被 gou 恶心到了

盲生一下子就发现了华点

真牛逼,电商不用 Java 闹呢

你可以先写 Kotlin 恶心一下,然后再写 go 。

唉,没想到这种弱智言论也有这么多人赞同,V2EX 现在已经变成反智主义的中心了,Java 这种除了中国都没有地方用的语言也吹的出来

#17

我们公司现在就在招 F# 开发

要求非常低,甚至都不需要有 F# 工作经验,只要是科班硕士,能熟练使用任一 ML 方言,即可达到面试要求

对,所谓 Java 写 CRUD 写业务逻辑省事,大部分其实是在说 Spring……不严格地来讲(经不起咬文嚼字者抬杠),可以在某种程度上把 Spring 系列框架甚至 IDEA 的一些自动化功能看作是以 Java 为底层的 DSL……只就 Java 本身来说写业务有啥省事的,啰嗦致死。

现在在用 go 、Python ,之前 PHP JAVA Python 多一点

整体来说 go 还才起步,肯定很多问题

  1. json 属性文件,不管哪个语音都需要配置文件吧?不然怎么办 不喜欢 json 可以用 yaml
  2. 在里面增加对应的结构体,这个就是反序列化,这个难道 java 不用写一个 class ?
  3. 还得在代码里通过 io 去加载各种资源,额 哪个语言不都这样嘛?
  4. 这个过程 ide 是感知不到的 确实,只能看见定义的 struct ,但是配置中的具体内容看不见
  5. 统一的平台打包 pkg.go.dev/ 这个 其实还有个问题,go 包管理依赖 git ,但公司内部 git 都是有权限的,导致编译依赖要申请一堆权限,非常麻烦
  6. 如果没有人在内部写对应的文档 其实话又说回来,公司内部开发的话,工具链限制的非常死,orm mysql/redfis 啥的客户端都规定好了,估计你没找到文档,或者公司内部本来就没有
  7. 隔几行就出了一个 error. 有一说一,确实垃圾

JAVA 主要是还是得益于 spring 一桶江湖了。

要是 go 有个框架统一了,IDE 分分钟给你支持,要咋提示就咋提示

启动慢 这个我承认

但是 go 并发代码 我是表示怀疑

Java 的并发一般通过线程池 封装好的

Web 环境下开发的 Spring bean 都是无状态的
只要照猫画虎 完全可以不用担心

golang 的协程 随意创建 也没有统一的池来管理

一旦协程出了问题。一般人也不太敢去修

java 语言本身,除了啰嗦点,没啥太大的缺点了。几个所谓的语言缺陷,马上 loom ,值类型,泛型特例化都要修好了

不自己控制怎么显得自己牛逼呢

我记得你,极端 java hater 是真的敢扯淡…别的不说,Amazon 那么大一个主用 java 的公司被你吃了?

Java 適合做業務. Go 適合中間件.

前人總結過經驗教訓. 你又驗證了一次.