1
dolorain 2023-02-03 17:28:51 +08:00
是的
|
2
lbp0200 2023-02-03 17:31:40 +08:00
增删改查,不要用 go 写,kotlin 真香
|
3
aw2350 2023-02-03 17:32:59 +08:00 1
也不是所有业务的最好选择,
但是大部分业务 go 都能做,且轻量,编译 启动的也快, 说都微服务时代了,还有什么业务拆分后不够原子化?原子化=简单。简单=高效 |
4
gazi 2023-02-03 17:35:19 +08:00
写过一段时间,基本上同感。 第三方好用的库太少。orm 也很难用 (相比于其他语言)。 等生态丰富以后再考虑了
|
5
yekern 2023-02-03 17:39:17 +08:00
最近都是拿 go 些一些 针对性的业务 , 200 一个 main 文件 200 行搞定那种, 编译好服务器一丢完活用着还是比较省心的.
或者写一些中间件,很少写数据库之类的 太麻烦了 |
6
cheng6563 2023-02-03 17:40:11 +08:00 1
你别想着 go 是 java ,c#同级产品,你把他想成 c 的优化版就行了。
用 c 写业务能吐血,换 go 不就爽得飞起? |
7
coderxy 2023-02-03 17:40:20 +08:00
go 是其它语言的不想转 java ,跟你玩换赛道的, 你一个已经在做 java 的凑这个热闹干嘛 🤣
|
8
fiypig 2023-02-03 17:42:52 +08:00
go hello() 就省事很多
|
10
sadfQED2 2023-02-03 17:45:28 +08:00 1
企业里面换语言主要还是方便 CTO 清理老人,除了 Go ,换 java 、php 、ruby 、python 任何语言都有人反对,但是 Go 可以。
另外 go 部署简单、语法简单、没有 jvm 那么多乱七八糟的调优,随便谁上来看几天就能写,这就是 Go 的优势。社区方面现在也很成熟了,基本上没有你找不到的轮子 |
11
julyclyde 2023-02-03 17:46:06 +08:00
升级啊
低版本、出身于 google 的各种软件,基本上就是 google 把自家十年前的弯路放出来祸害社会 |
13
securityCoding 2023-02-03 18:28:31 +08:00
挺好的,没那么多弯弯绕绕的花肠子,大家都一个风格
|
14
Actrace 2023-02-03 18:29:51 +08:00
做业务。。PHP 微笑路过。
|
15
DefoliationM 2023-02-03 18:37:25 +08:00 via Android
看人,喜欢什么用什么,我觉得都不如 rust
|
17
opengg 2023-02-03 19:33:50 +08:00 3
go 语言:
程序员的时间不值钱,比编译器的时间还贱价,所以活该程序员天天写 if err != nil 当然你可以用 snipets ,你甚至还可以用 chatgpt 来提升写代码的效率,那你看代码的时候脑子里还得带一个 parser 。 |
18
dgqypl 2023-02-03 19:37:50 +08:00
Go 1.18 开始支持泛型了
|
20
shore123 2023-02-03 19:44:45 +08:00 1
你不会唱跳还有 rap 没有用的
|
21
Mexion 2023-02-03 19:49:29 +08:00 via iPhone 1
先说我的观点:不是。
我也写了两年 GO 了,写业务比 Go 好的语言多的是,如果说能不能写那肯定能写,但就是各种不爽。 |
22
gowk 2023-02-03 20:00:35 +08:00
目前来说写业务确实比不上 Java C#,但是好在容易上手,学习成本极低
有 Go 老人带 + 项目结构清晰,用起来也不是不可以,起码代码人人都能读懂 用 Java ?现在的 Java + 各种库的学习成本太高了,写好不容易 新手写出来的代码惨不忍睹,我们团队就全面转 Go 了 |
23
xingjue 2023-02-03 20:08:36 +08:00
java 挺适合业务的
|
24
uiosun 2023-02-03 20:15:44 +08:00 1
|
25
xsen 2023-02-03 21:33:20 +08:00
我们用 go 有三年差不多了,复杂的业务其实也不少,不过基本都拆成不同的服务
服务之间是 rest api 或者 grpc ,也没太大的问题 目前看坑呢,一个是维护完善了一个工作流、内部自己实现了一套授权服务 别的感觉没太多的坑。上手容易,包括新手、新生,代码质量差不太多。开发、调试、部署相对简单(对于其它语言来说) |
26
neoblackcap 2023-02-03 22:38:33 +08:00
@uiosun 没有,这个是 golang 得标准错误处理,判断是必须判断的,否则就属于放弃错误处理。想不这样搞,那么就得去用别的语言
|
27
dcoder 2023-02-03 23:01:58 +08:00
有段时间没写 Go 了
Go 啥时候能简化满屏 if err != nil {return err}, 才好意思说自己方便写业务逻辑 -_- |
29
roundgis 2023-02-03 23:09:33 +08:00 via Android
抽插數據庫顯然 c# java 是更好的選擇
go 是 c with gc 用 c 寫業務也不是不可以 以前很多人都幹過 後來都用 java 了 |
30
GeruzoniAnsasu 2023-02-03 23:34:28 +08:00
repost: https://www.v2ex.com/t/845966#r_11550884 #15
|
31
iyaozhen 2023-02-03 23:36:17 +08:00
你 go 不用最新版,搞个蛋
本来生态就不行,还不升级 主要还是生态,如果你公司没有人牵头,用起来还是比较头疼 |
32
Valid 2023-02-03 23:50:41 +08:00
综合目前所有的业务场景,go 非常合适,非常灵活
|
33
night98 2023-02-04 00:52:33 +08:00
java ,kotlin ,觉得速度慢上 spring-navite ,还有个 quarkus ,go 的异常机制就决定了他本身压根不适合做业务
|
34
izzy27 2023-02-04 01:33:19 +08:00
好处是简单
缺点是生态弱,不过这个会改善的 |
35
izzy27 2023-02-04 01:34:10 +08:00
go 这个工具真的很简单易用,而且容易上手,实习的时候我看了三天直接上手写单测,一周后就开始做需求了。。
|
36
lujiaxing 2023-02-04 02:14:49 +08:00 1
个人感觉拿来写框架还是蛮好, 但是做业务还是算了吧. GO 的生态甚至不如 .NET Core
|
37
Akitora 2023-02-04 02:44:26 +08:00 via Android
个人认为 go 最适合写一些网络中间件,写起来又快又舒服。尝试着用 go 写过一些业务,虽然不是不能写但真是各种不舒服…包括项目架构和错误处理之类
|
38
fgwmlhdkkkw 2023-02-04 03:42:00 +08:00
@uiosun #24 有两种办法,都需要泛型的支持。
1 ,func Must[T any](v T, err error) T, Must2[T any, A any](v T, a A, err error) (T, A), ... 2, type Result[T any] struct { Error error Value T } |
39
kennylam777 2023-02-04 06:32:20 +08:00
Go 和 Kotlin 都用過,業務還是 Kotlin 好,一流的 Java 生態,語法糖簡單可靠。
Go 用來寫小巧的 infra 工具還好,但業務就算了吧,省下的計算資源是你自己的除錯時間。 |
40
realpg 2023-02-04 06:37:44 +08:00 1
golang 给猴子,一只猴都能写单机 12W QPS 的综合 api server ,套个负载均衡就能百万并发,单机进程使用内存不超过 1GB
java ?猴子还没整明白 jvm 参数呢 |
41
zed1018 2023-02-04 08:52:25 +08:00
不会选 go ,太丑,完全看不下去。点开 go 的源码血压一下就上来了。Dart 同理
|
43
tairan2006 2023-02-04 09:04:26 +08:00 via Android
凑合用,另外 go 的兼容性很好,我们一直用最新版。不知道你们坚持旧版本意义何在。
|
44
chendy 2023-02-04 09:23:04 +08:00 3
java 给猴子,一只猴都能在 120w 行代码的屎山上持续拉屎,再忽悠客户多买几套 license 多加几个服务器,直接与客户双赢
go ?猴子还没整明白业务逻辑呢 |
45
Breacher 2023-02-04 09:35:21 +08:00 1
我觉得非常合适。
本人是一个 Android 转 Go 的后端业务程序员,我能够顺利转过来,只因 Go 的优点让从写代码到部署投入使用的难度非常低:Go 开发环境搭建非常简单、Go 语法非常简洁、上手 Go 时不用学习框架、应用跑起来就能给客户端使用,不用考虑配置 Nginx 之类、要部署到服务器也就 go build 然后 scp 等等,这些都让我上手后端的过程中没有遇到难度和阻碍。 多年体验下来,我觉得 Go 的优点有: - `语法简洁`:Go 中共有 25 个关键字,很容易上手 Go 编程。 - `灵活`:Go 属于编译型的静态语言,但是 Go 的很多特性使得用 Go 编程像使用动态脚本语言一样的灵活,比如使用 `:=` 初始化变量。 - `标准库齐全`:Go 拥有一个比较齐全的标准库,`net/http` + `encoding/json` 组合即可快速开始 API 开发,`testing` 包是 Go 的使用得最多的单元测试库,等等。 - `多平台支持`:Go 环境支持 Linux 、macOS 、Windows, 在 Linux 、macOS 平台还支持 amd64 和 arm64 CPU 指令。 - `跨平台编译` :支持交叉编译,可以方便地在一个平台打包构建另一个平台的二进制文件。 - `编译时间短`:Go 的编译速度非常快。 - `二进制`:程序编译结果是一个二进制文件,Go 程序生成的二进制可执行文件常常拥有以下优点: - 程序部署速度快,无运行时环境搭建的需求 - 启动快 - 执行速度快 - 内存消耗少 - `内置并发支持` :使用 go 关键字即可启动一个新的 goroutine ,相比 Java 的 Thread/Runnable 快速方便。 - `社区`:Go 拥有一个活跃和回应快速的社区,社区贡献了大量高质量的第三方库包和应用。 - `版本的升级和演化`:Go 官方团队对 Go 语言的特性升级和演化非常谨慎,Backwards Compatibility 非常好,这避免了 Python 和 Java 等语言的版本悲剧。 - `工程化`:与其他作为学术实验开始的语言不同,Go 代码的设计是务实的。每个功能和语法决策都旨在让程序员的生活更轻松。 - `代码格式`:由于单一的标准代码格式,Go 通常被认为比其他语言更具可读性。 - `容器化` :Go 程序的镜像体积小,更加容易分发,更适合用来开发容器化应用。 语言有它的用户之地,Go 适合用在: - API/RPC services ,Go 2020 的调查问卷公布的结果 - CLI 工具开发 - Infra - ... 然后多个语言可能在某个具体的应用场景有竞争,比如 Go/PHP/Python/Java 都可以用来开发后端服务,然后就有了做后端用哪个好的讨论。。。 但每个语言都有它自己的不可替代的地方: - Go (简洁 /一流的 Backwards Compatibility/全流程高效率(指的是编译、部署、运行)) - Java 大数据领域( Android ?) - Python (脚本,数据分析...) - PHP (说不太上,可能是更加快速的后端 MVP 服务交付?) |
47
wdwwtzy 2023-02-04 11:22:50 +08:00 via iPhone 11
推荐用 go 写业务的人,有一个算一个,不是蠢就是坏
|
48
yazinnnn 2023-02-04 11:25:51 +08:00
如人饮水,冷暖自知
在条件允许的情况下, 自然是选择自己用着最舒服的工具干活 一些人用着 kotlin 觉的非常甜, 自然就有另一些人非常讨厌 kotlin 的语法糖 go 也一样, 一些人喜欢 go 简单的语法, 自然也有另一些人觉的其丑陋 一般业务基本默认 io 密集型, jvm 用户在没有使用 loom 或 netty 或其他 nio 底层的框架时性能是肯定不如 go 的 想跟 go 比性能除非生产中用 jdk19(基本不可能)或者使用异步框架 vertx,quarkus,spring reactive 等, 学习这些东西的成本+复杂的响应式业务比 java 用户转 go 成本也许差不了多少 |
49
leonshaw 2023-02-04 11:49:16 +08:00
原生支持有栈协程的语言真没几个,不知道 Java 的虚线程用起来咋样。
|
50
Nazz 2023-02-04 14:45:47 +08:00 via Android
1.18 就支持泛型,现在已经到了 1.20 了. 很多东西完全可以自己造轮子,比如说 ArrayList, 三元操作符
|
51
brucedone 2023-02-04 15:49:29 +08:00
推荐用 go 写业务的人,有一个算一个,不是蠢就是坏
=== 这话放任何语言都合适 |
52
des 2023-02-04 16:09:16 +08:00 via iPhone
建议各位讨论说说你指的是什么业务
顺便 50 楼说的 ArrayList 、三元操作符也需要自己造轮子是真的吗? |
53
hedwi 2023-02-04 16:21:34 +08:00
go 很完美了 觉得 go 不好的可能是写代码太少了
|
54
ilylx2008 2023-02-04 16:46:20 +08:00
|
55
fkdog 2023-02-04 16:53:27 +08:00 1
其实你不搞 controller service dao 分层,Java 倒也不会太复杂。
DBUtils crud 也是几句话的事。 java 写久了,有时候的确很容易把 java 那种写法代入到其他语言里。 其实国内这些互联网服务,瓶颈往往都是在架构层面,而非语言层面。 所以分库分表、分布式事务、异构数据同步等一类的架构方案,java 相关解决方案真的是太多了。 业务层真的没什么好的理由去换 go 。 |
56
maigebaoer 2023-02-04 17:02:08 +08:00 via Android
看时什么业务吧,php 我也觉得很好,短平快
|
57
clownpiece 2023-02-04 17:12:18 +08:00
我真的觉得很奇怪,在一个公司里难道还能想转语言就转的吗。不都是得看公司的基础架构支持哪个语言就用哪个吗,就算支持多种也有个主语言,支持的功能更多更好。
假设你是个绝顶高手,举个例子换 rust 写业务逻辑并发是以前的 10 倍,监控、配置中心、各种储存的中间件全部都自己来写吗,还是说准备裸的直接上了。 |
58
realpg 2023-02-04 20:41:22 +08:00
|
59
Nazz 2023-02-04 20:54:36 +08:00 via Android
@des 有内置的动态数组,简单包装下就是 ArrayList 了; go 几乎没有语法糖,对符号的使用非常谨慎,所以没有三元操作符,现在有泛型了解决方法很简单.
|
64
djoiwhud 2023-02-04 23:21:02 +08:00 via Android
go 实现业务处于谁都不服谁的状态。不同的公司,方案差异极大。
|
65
LostPrayers 2023-02-05 00:32:21 +08:00 1
不好,我写 go 写出了内存泄漏,这是以前写 java 遇不到的🤣🤣
|
66
Dogtler 2023-02-05 00:38:47 +08:00 via iPhone
不好,业务选择建议 node 或 php
如果服务不在 k8s 容器化,那么是有些鸡肋 |
68
findex 2023-02-05 19:41:21 +08:00
看大家说 go 和其他语言的比较。大多是在比较 java ,有没有比较一下 python 的?
或者比较一下 dart ,都是出自 google 。dart 特性和 go 很相似,但是 dart 语言更更小众了。很多方面还没有 go 完善,但是你要说写逻辑,哪个语言都行吧。就看你想达到什么目的。dart 现阶段的 dart vm 类似 java vm ,性能会比 standalone executable 二进制文件效率高,由于 vm 对系统资源调度优化。这点和 java vm 学的很不错。但是在一些数学计算上,以及大数据量处理上就不行了,还没学到 go 的精髓。再看 benchmark ,总觉得不如 c++优化好。再追求极致一点,还是 C 速度快一点。然后 rust 还能出来打一下,然后还有 zig 语言。 看看这个比较,https://programming-language-benchmarks.vercel.app/dart-vs-go go 更后端一点。数据量一大,dart 就 timeout 了。其实这只是片面的 dart exe 和 go exe 比较,如果这时候用 dart vm vs go 比较,dart 的性能不会至于这么尴尬。 我要吐槽一句,你刚看完的 dart 教程可能在下个版本的 dart 里面没用了。迭代更新速度很快。 |
69
WhoMercy 2023-02-05 20:10:39 +08:00
用 go 会有问题,但问题不在 go
|
70
aladdinding 2023-02-06 10:56:34 +08:00
不会做抽象么 照着逻辑硬写当然不舒服(想写屎山那没办法)
|
71
xiaocaiji111 2023-02-06 13:51:19 +08:00
不好,复杂业务写着确实累,还不优雅,很多东西要手撸一遍。很多人推荐写业务估计局限于 go 有限得语法和生态,可能没有写过其他语言。
但是如果小项目(几个 api 接口),工具类我会优先选择 go ,总不能把 java 那一套搬上来吧。 都是码农,根据项目情况来选择就行,当然上班,那就公司用啥你写啥嘞。 |
72
vitoliu 2023-02-06 15:04:23 +08:00
Java 这么简单都没学明白,学着相比下不够成熟的 Go 一边说 Go 真牛逼,真的好吗?
|
73
xuyang2 2023-02-06 16:48:56 +08:00
感觉 Go 的接口和组合,比 Java 容易被滥用的继承,可读性和可维护性高很多
|
74
unknowsun 2023-05-21 10:39:03 +08:00
@Breacher 你好,方便留个联系方式吗, 我目前也是 Android 转 Go , 还在学习中, 想了解一下后续找工作的话应该怎么,简历应该怎么写
|
75
Breacher 2023-05-21 12:43:59 +08:00 via iPhone
@domain9065 用 Telegram 吧,Base64 解码这个得到我的 username:QHh1YW55dWVsaW5ncWk=
|