Javaer 用了一下 Go web 开发,感觉开发体验倒退了

2022 年 1 月 21 日
 binbinyouliiii

之前一直用的 java 写 crud ,最近有项目要用 Go 写,然后我就用了 Go 尝试写了一个 web 程序

但是体验下来,其实开发体验并不怎么高,比如脚手架,虽然有很多现成的,但是我更希望有一种规范或者 interface ,就算是 java 多年前的纯 spring+servlet ,也会提供各种 interface 去规范。这样起码可以保证接手或者同时维护的人能够更快的理解和上手。

开发体验类似写命令行程序,从 main 函数一点点往上加功能,写了一天,看了一天文档,我才把 gin+gorm+zap+viper 配置好,花时间去组合。

crud 方面就不说了,还是比较原始,或者有什么奇淫巧计我不知道的。

上面说的几点只是我简单用了几天,感知比较大的几点。

其实上面说的同样可以放在其他语言上,我也不是对 Go 有什么偏见,而是觉得 GO 这么火,越来越多的互联网公司用来支撑业务,照理来说生态和体验跟其他小众语言不是一个量级的了,但是用起来还是有些失望。

23353 次点击
所在节点    Java
204 条回复
binbinyouliiii
2022 年 1 月 21 日
@QAO #59 我早些年是从 Java 裸 Servlet+JDBC 过来的,你有没有想过我为什么要说“体验倒退”吗?
liuxu
2022 年 1 月 21 日
@binbinyouliiii 我只教儿子,你真的想让我教你么
x940727
2022 年 1 月 21 日
为什么那么多人就是不能承认 Go 写 Web 、写业务就是不如 Java 呢?从脚手架完善程度,生态,可参考项目,到后期项目的维护性,代码的可读性,哪个方面 Go 能比得上 Java ?
liuxu
2022 年 1 月 21 日
媲美 Java web 本身就是个伪命题,非要用 java 思维写 golang
binbinyouliiii
2022 年 1 月 21 日
@liuxu #62 素质极差
5oiR5piv5YK76YC8
2022 年 1 月 21 日
当你手里拿着一个锤子的时候,看谁都像钉子。
svt
2022 年 1 月 21 日
干!干!干!干就完了
x940727
2022 年 1 月 21 日
@binbinyouliiii 和那种低水平低素质的人没必要讨论,讨论技术问题都要认爹,可想他当儿子当的有多憋屈。
banmuyutian
2022 年 1 月 21 日
"Less is more."Goland 是 more 在哪呢,真心求教
KagurazakaNyaa
2022 年 1 月 21 日
建议根据需求选语言,而不是一个语言到处用,不同的语言肯定有不同的优势,不然何必搞出这么多不同的语言呢
binbinyouliiii
2022 年 1 月 21 日
@XiLingHost #70 《领导的爱好》
liuxu
2022 年 1 月 21 日
@x940727 除了生态是和代码贡献人数有关,其他的维护性可读性都和软件工程设计问题,和语言一点关系都没有,就算是 ffmpeg 、linux kernel 这种项目,只要设计好了阅读起来一点问题都没有,不会真的有人觉得多了点 err :=就不可读了吧

“孩子看什么都不顺眼,多半是要打了”
Immortal
2022 年 1 月 21 日
lz 可以看下 kratos 和 go-zero 这些框架,可能更符合你之前的习惯
cloud107202
2022 年 1 月 21 日
看多了各种语言爱好者的争论,唯独 go 语言的偏执狂热粉比例很异常。随便一个涉及到 go 的讨论帖都有扑面而来的 go 里 go 气

难道是 go 的某个语法特质或社区的某种气质会聚集这样的人?
linzhipeng
2022 年 1 月 21 日
不知道我有没有理解对,就是新接触一个技术,希望有一份最佳实践能摆出来,就可以按照这份最佳实践去开发,然后进一步去学习这份最佳实践涉及到的东西,而不是在入门后,从网上搜一大堆解决方案,最后自己总结出一个最佳实践。
x940727
2022 年 1 月 21 日
其实什么语言,发展到大型项目,其实在规范上都大差不差。Go 语言的 kubernetes 自己去看看,和 Java 的大型项目有啥区别(比如 Hadoop ,Flink 之流)?
LoNeFong
2022 年 1 月 21 日
@x940727 月经贴, 习惯就好, 每个月都有人要来引战一下
x940727
2022 年 1 月 21 日
@liuxu 当然有关系,泛型,继承,重载,重写都是可以提高维护性和可读性的东西,但是相反的也对开发人员有了更高的要求,你语法缺失这些东西,就等于在某些场景下去需要做更多的代码判断,自然而然的会提高阅读难度。这很难理解吗?
ychost
2022 年 1 月 21 日
个人比较喜欢 js KOA 那一套约定,用起来很灵活且扩展性极强
nash
2022 年 1 月 21 日
为什么一定要对比语言呢,每种语言都有它自己的生态发展规律,有自己的市场需求场景,就像古代侠客,喜欢用什么武器就用什么武器,不能因为你有刀谱(sprint)有宝刀(java)就去否认剑(golang),还是提高自身的内功比较重要,不然不管是刀还是剑终究都是一块铁

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

https://study.congcong.us/t/829692

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

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

© 2021 V2EX