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

2022-01-21 14:10:48 +08:00
 binbinyouliiii

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

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

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

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

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

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

19633 次点击
所在节点    Java
204 条回复
lscho
2022-01-21 14:14:12 +08:00
“虽然有很多现成的,但是我更希望有一种规范或者 interface”

感觉是写 java 写多的后遗症。
Hanggi
2022-01-21 14:17:02 +08:00
这就是典型的告诉你该怎么做就怎么做,突然放开手脚就不知所措了。

你依然可以使用 Java 的那套开发模式去写 Go ,就是要理解下 Go interface 的一些特别之处。
murmur
2022-01-21 14:19:43 +08:00
这不是 interface 的问题,是 spring 的生态太庞大了,java 的 web 东西稍微凑一下都能凑近 spring 里
Qseven
2022-01-21 14:20:31 +08:00
面向过程,流水账,一把梭,十个工程十个样,是不是这感觉?
binbinyouliiii
2022-01-21 14:21:26 +08:00
@lscho @Hanggi
这个其实也可以算每个人不同的喜好了,我写过其他项目(前端,kotlin ,Rust )的时候,接手项目的时候,找 Bug 其实就得从头开始看了,非常耗费时间,因为每个人的想法都不一样,随着维护的人越来越多,项目就会杂糅每个人的思想,最后大概率还是会很难维护。
keepeye
2022-01-21 14:24:35 +08:00
继续回去用 java 框架就是了,也不指望你接触几天就能改变思维习惯
lscho
2022-01-21 14:26:03 +08:00
@binbinyouliiii 感觉不是不同喜好的问题,是只有 java 有这种大一统的框架,学 java 的人都会这个,所以换个人可以快速接受。别的语言没有这种大一统的框架,用什么的都有,所以看上去比较乱。

其实好不好维护看是看文档的,如果 golang 项目写的比较规范,同时文档齐全,换个人也可以很快理解上手。
Mark3K
2022-01-21 14:26:35 +08:00
那是因为你项目太小了,仅包括一些 CRUD ,打点的项目中 CRUD 和 HTTP 接口只是其中很小一块
Mark3K
2022-01-21 14:27:35 +08:00
echo1937
2022-01-21 14:29:11 +08:00
@lscho #6 别的语言照样有啊,Python Django ,Ruby on Rails ,PHP Laravel
liuxu
2022-01-21 14:30:36 +08:00
你写过 rust ,但是你觉得 go web 开发体验倒退了? rust 什么项目发出来我看看
anzu
2022-01-21 14:32:35 +08:00
可能其它公司关注的不是开发体验
binbinyouliiii
2022-01-21 14:32:37 +08:00
@liuxu #11 见我最后一句话,现在人戾气这么重?
chevalier
2022-01-21 14:37:28 +08:00
Javaer ? ❌
Springer ✅
binbinyouliiii
2022-01-21 14:39:19 +08:00
@Mark3K #8 emm...我觉得业务逻辑用什么语言写都差不多,不知道你说的大项目指什么
wonderfulcxm
2022-01-21 14:40:46 +08:00
正常,当你对一种新语言了解不够,本能的用熟悉的语言去套。很多人夸口一周甚至更短时间掌握一门语言,事实上掌握的只是语法。思维还没转过来,只会写出像 Java 一样的 go 代码,像 js 一样的 PHP 代码。
要多久才能掌握一门语言,有个我订阅的 YouTuber 说,至少用这门语言做五个不同项目。而且不是 hello world 级别的。
NoDocCat
2022-01-21 14:43:09 +08:00
请尝试说服自己: 大道至简.
如果你没有说服, 说明你不是目标用户
ytmsdy
2022-01-21 14:43:38 +08:00
java 最大的优势是规范,就算写的人水平再参差不齐,写出来的代码,不会太飘逸。大企业,大团队用这玩意儿确实有优势。毕竟顺利完成项目,并且项目可维护才是最重要的。
Go ,Python 这一类动态语言,就很考验写代码人的水平,以及写代码人的自律规范。代码飘逸起来,各种花式语法,后续维护,以及优化是一个很大的问题。但是重点是快,小团队,个人开发者用这玩意儿挺好。毕竟对个人开发者来说,效率是第一的!
monkeyWie
2022-01-21 14:45:30 +08:00
go 写业务代码就是难受,楼上一堆解释原因的真的是不是没写过复杂业务,但凡用过 java springboot 都知道 go 写业务多恶心吧,我自己也用 go 但是只写网络相关的东西,这才是 go 的方向
binbinyouliiii
2022-01-21 14:46:13 +08:00
@wonderfulcxm #16 其实我初上手一个新语言 web 项目,我更想知道最佳实践是什么,因为这个项目不光是我一个人维护,现在看起来很多 Go web 不同项目都有自己不同的风格。

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

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

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

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

© 2021 V2EX