go 写网络基础, Python 写逻辑,两种语言如何结合写项目?

2020-11-17 13:31:45 +08:00
 zzlettle
最近开发一个后端服务器,游戏的
GO 比较适合来写网络交互的
但是写逻辑比较蛋疼
python 这样的语言适合写逻辑
所以想看看有什么方法把两种语言在项目中混合起来开发
但是以前没有做过,没有经验
大家有做过类似项目的,能指点下吗
4604 次点击
所在节点    Go 编程语言
32 条回复
magiclz233
2020-11-17 17:09:04 +08:00
为啥不直接都用 go 呢,业务用 python 的好处是啥,go+python 比纯 go 的优点在哪
Vegetable
2020-11-17 17:12:08 +08:00
绝大部分性能损耗在逻辑上,这么做没意义,你想做的可能是中台?中间件?
PEIENYKYK
2020-11-17 17:12:12 +08:00
现在就在这么开发项目,说一下我的处理逻辑吧

1. RPC 这个是完完全全的方案,而且还涉及到旧代码屎山
2. 编译 Go 直接 Python 调用
Leigg
2020-11-17 17:15:34 +08:00
你想加班吗?
zzzzzzggggggg
2020-11-17 17:29:38 +08:00
闲的。。。
aincvy
2020-11-17 17:43:01 +08:00
方案一: go 调用 python 代码。
参考项目: https://github.com/sbinet/go-python

方案二:python 调用 go 的模块
参考阅读: https://cloud.tencent.com/developer/article/1568553
http://chingchuan-chen.github.io/posts/201804/2018-04-16-python-call-go.html

方案三:c/c++ 调用 go && python
1. 把 go 项目编译成动态链接库。
2. c/c++ 调用上一步生成的动态链接库, 外加调用 python 的库,建立 python 的脚本环境。
3. 可能还需要做一个桥 链接两个项目的接口。
zzlettle
2020-11-17 20:06:17 +08:00
是不是 rpc 比较适合简单的整合。
感觉可能适合我。
Hanggi
2020-11-17 20:13:43 +08:00
Go 写业务怎么蛋疼了?如果无法用 Go 写业务建议去掉 Go,因为你不需要它。

不要为了用 Go 而用,用了 Go 基本就不太需要其他语言了,
你去看看几个排名靠前的 Go 开源项目,基本都是纯 Go,
感觉你的思路没有理清楚,要么纯 Python,要么纯 Go 。

如果有个别库只有 Python 有,我会开一个 Python 的微服务,用 gprc 调用它。
lasuar
2020-11-18 09:58:42 +08:00
项目中,go 一般和 C/CPP 结合,没见过和 py 结合的
zzlettle
2020-11-18 14:13:26 +08:00
@Hanggi 好吧,我试试看用纯 GO 来写
我发现我用 GO 写的项目,基本写的我头昏脑胀,出问题,或者根本不知道问题到底在哪里
用 python 写的,我都很轻松,很少出问题
sunshinev
2020-11-27 17:59:33 +08:00
请关注下 chat.osinger.com 最近写的,在 v2 上也好多朋友去看过
sunshinev
2020-11-27 17:59:58 +08:00
@sunshinev 前端 Vue+canvas+websocket+protobuf,后端 Golang+websocket+protobuf+goroutine

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

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

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

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

© 2021 V2EX