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 这么火,越来越多的互联网公司用来支撑业务,照理来说生态和体验跟其他小众语言不是一个量级的了,但是用起来还是有些失望。

23363 次点击
所在节点    Java
204 条回复
drackzy
2022 年 1 月 22 日
不是体验的问题,是 go 不像 java 那样内卷,老人少。
zhennann
2022 年 1 月 22 日
也就很是好奇,都说开发业务系统什么的,也就没说业务系统要有工作流需求的。如果业务系统都是些增删改查+角色权限的功能,那么大多数语言的开发框架不都跟玩似的,有什么好比较的呢?那么,回到工作流引擎的诉求,java 有 activiti ,node 有 cabloy ,而这么多年过去了,go 、php 、python 、ruby 有什么呢?
winglight2016
2022 年 1 月 22 日
go 的确不适合用来做 web crud ,就我看来,在区块链开发上 go 倒是有点一统江湖的意思了,毕竟 geth 是大部分二三代应用的基础了
goalidea
2022 年 1 月 22 日
存在即合理,萝卜青菜各有所爱!
ZeroDu
2022 年 1 月 22 日
go 写业务 crud 确实难受,也没有相关整套框架来搞,是差点意思。写各种中间件、工具类的会比较好吧
james122333
2022 年 1 月 22 日
@tt0411

go 是有异常处理的 只是要封装
例如我就封装成类似

Error.Catch(func() {
Error.Throw("error!", func(err error) {
fmt.Println(err.Error())
})
})

捕获错误并根据 Throw 指定的 func 执行
写过 java try catch 会知道 try 内新的变量在外面是取得不到的
这特性如同函数内区域变量

不要动不动就说语言不行 先看一下自己是否行
zjsxwc
2022 年 1 月 22 日
@zhennann
各种基于 php 、ruby 的 oa 工作任务流转的开源项目不要太多,
就算是 redmine 的 issue ,也能魔改出当内部 erp oa 使用。
JDog
2022 年 1 月 22 日
国内 php 不景气,都转写 golang 了,说话的无非都是利益相关。
zjsxwc
2022 年 1 月 22 日
@zhennann
go 也有个 v 站网友开发的 ferry
https://study.congcong.us/t/709056
sealingpp
2022 年 1 月 22 日
有时候是这样子的,你习惯了一门语言给你带来的便利性,换了一种语言就觉得不方便,每个语言诞生的开发的思维流程不一样,不代表他不好,你应该尝试去理解一下其中的道理,而不是总是希望所有东西都跟自己熟悉或者习惯的一样,一来就觉得非常顺手
flood
2022 年 1 月 22 日
大道至简......陋
RuLaiFo
2022 年 1 月 22 日
占 Java 一票
debuggerx
2022 年 1 月 22 日
认同一些人说的,若是没有 spring 等框架,java 开发 web 也是垃圾,但是 go 开发 web 业务,却是连框架都救不了它的,就算有 spring 同等规模、积累、流行度的框架也是一样,这是语言特性决定的
james122333
2022 年 1 月 22 日
@debuggerx

没写之前我觉得应该是这样 因为很多人都这样觉得
真的写了觉得其实还不错 特别适合 DIY 用户 也可以很好维护
shawnwang340
2022 年 1 月 22 日
我是因为公司新项目需要开始搞 go 的,初上手的时候也是感觉哪哪都不习惯,每次写的时候总想着 java 那一套,现在我再写 go 的时候都极力忘记自己之前是写 java 的,哈哈哈,我感觉还是一个思维定势的问题吧,多写写就好了。
micean
2022 年 1 月 22 日
@debuggerx

你完全不了解 java 生态的可怕。。。。。spring 只是一个粘合剂,java 在 web 这块真的是要啥有啥,而且还有各种标准化的东西,减少心智负担。
abcbuzhiming
2022 年 1 月 22 日
@cassyfar 框架存在的意义,就是方便开发。否则程序界孜孜不倦的探索各种模式,各种模型,各种框架,是为了什么?动不动就说别人“能力差怪语言”的,那你干脆倒退回去用纸带打孔机开发好了,我绝对承认你能力超强,我做不到。

编程发展了这么久,一个大方向是没变的,就是想办法把更多的人拉进程序员的行列,哪怕他们能力比起前人来说差。编程整体是变的容易而不是变的困难。


@liuxu
go 还是个偏年轻的语言,生态圈还在探索中,不如成熟生态圈,这有什么不可以说的?说两句就是“带节奏?人差怪语言?”。那我作为一个 javaer 天天喷 java 语言特性陈旧,主流生态圈膨胀 spring 快赶上当年 Sun 那套傻大黑粗,算什么?语言不能比较?程序员不准抱怨?抱怨就是带节奏?
zhennann
2022 年 1 月 22 日
@zjsxwc 可以看一下 CabloyJS 的工作流引擎文档,就知道差距在哪里了: https://cabloy.com/zh-cn/articles/flow-introduce.html
iyaozhen
2022 年 1 月 22 日
现在写 go 就像之前写 php 一样

期待大统一框架吧

当然你要用 java 的惯性写 go 会很难受
james122333
2022 年 1 月 22 日
@abcbuzhiming

编程语言发展的到现在花的时间是更多 过度堆叠减少某些困难又增加了某些困难
然后出来的东西是增加的 如果没有网络资源 原作者回答 很多人都用不好
自己写的自己知道 如果写的不好是人的问题没错 就算用框架照样可以给你一驼
go 目前状况挺好的

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

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

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

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

© 2021 V2EX