GO 语言适合开发企业的业务系统么?

2020-06-24 10:51:59 +08:00
 hahaFck

我的意思是企业的业务系统,不是底层中间件那种的,业务系统注重的是业务逻辑吧,业务逻辑复杂,增删改查什么的比较多,业务系统用 spring 的比较多吧。

那用 GO 开发 spring 这种的企业系统,痛点在哪呢,工具少,造轮子多?

9890 次点击
所在节点    Go 编程语言
40 条回复
zjsxwc
2020-06-24 10:54:27 +08:00
写么肯定可以写的,就是没有泛型写起来累
GeruzoniAnsasu
2020-06-24 10:58:44 +08:00
gorm 没有竞争对手,但 gorm 本身就很多坑

另外业务系统复杂性最终其实都压在了数据库、队列 /缓存、分布式上,而这些解决方案都是跨语言的,所以对 go 来说其实还好。还有一些边角小坑是可能会用到一些不知道有没有人维护的 package,不过这个规避起来相对简单

其它的还都挺香的,尤其是有 cgo 这个后手,实现性能计算的模块没有什么选型负担
chengxiao
2020-06-24 11:07:00 +08:00
感觉 go 还是挺适合写这种业务系统的,泛型是个问题但是问题不大,interface 能凑合着用
这两年 go 的库也逐渐多起来了,常用的基本都能找到

不过也有问题就是要考虑下,后续接手多人用不用 go
NCZkevin
2020-06-24 11:07:13 +08:00
当然可以,字节内部系统都是 go 开发的,就是开发起来确实没有 java 系的生态好,gorm 基本是个残废,很多复杂逻辑写起来没有 spring 方便。
MemoryCorner
2020-06-24 11:23:43 +08:00
适合。
rockyou12
2020-06-24 11:33:02 +08:00
没 java 合适,首先没有 flowable 那种流程引擎,orm 比不上 jpa 的各种框架。而且企业业务系统一般并发不高,难点都在业务上,go 没什么优势。
basefas
2020-06-24 11:35:51 +08:00
@GeruzoniAnsasu gorm 快要有 v2 版本了,据说重构了,等正式版发出来看看吧
ConradG
2020-06-24 11:39:10 +08:00
最后一句话很怪异,spring 就属于“底层中间件”的范畴,用 go 开发个 spring 说起来蛮适合的。

如果是业务系统也还是看具体,go 语言层面的主要短板是为了语法简洁大幅牺牲了语义表达能力。如果你的业务对象数据结构稳定,业务流程不很依赖于对象成员的值,那么 go 还是不错的。反之则不适合。
murmur
2020-06-24 11:56:05 +08:00
看什么企业,传统企业的要找后手维护,你能保证别人能招到 go 做二开?
chenqh
2020-06-24 11:59:27 +08:00
@chengxiao 有个问题, 像 `https://github.com/eddycjy/go-gin-example/blob/master/models/article.go` 这种每个 model 都基本是类似的方法,怎么用 interface 搞成只有一个呢?
TinyKube
2020-06-24 12:23:26 +08:00
ZSeptember
2020-06-24 12:38:33 +08:00
没必要
scnace
2020-06-24 13:27:45 +08:00
go 写业务要靠 generation orm 的话 ent 是个好的方向( Go2 之前
ben1024
2020-06-24 13:29:31 +08:00
不合适,人员变动项目都无法维护
youxiachai
2020-06-24 13:38:23 +08:00
java 技术栈人好找啊......你 go 开发完.后面维护.....不好招人啊...好的你给不起高价,差的是真不会..
chengxiao
2020-06-24 14:23:44 +08:00
@youxiachai Go 的好处是那种 好的差的 如果写业务逻辑的话 ,差距不会很大,语言限定的死,没有那么多黄花的语法糖,方便维护,但是需要这个人会 Go
dismonster
2020-06-24 14:26:21 +08:00
放心去用吧,亲自试过了,一点问题没有。就算公司程序员不会 go,一个星期也能直接上项目。除非程序员能力太差
chengxiao
2020-06-24 14:26:59 +08:00
@chenqh struct 嵌套啊
Hanggi
2020-06-24 14:34:44 +08:00
整体来说没有问题,但是!注意点很多。

比如,如果你用的是 gin 你要注意他不兼容 RESTful API,项目管理的时候要主要循环引入。
还有一些处理 JSON 的小坑,gorm 的一些坑。

这些都搞清楚了之后就会发现,开发效率和服务性能都很舒爽。
CoderGeek
2020-06-24 14:40:32 +08:00
用 go 是为了减少可替代性嘛

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

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

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

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

© 2021 V2EX