go 写网络基础, Python 写逻辑,两种语言如何结合写项目?
GO 比较适合来写网络交互的
但是写逻辑比较蛋疼
python 这样的语言适合写逻辑
所以想看看有什么方法把两种语言在项目中混合起来开发
但是以前没有做过,没有经验
大家有做过类似项目的,能指点下吗
可以考虑一下 go 编译成动态库,然后在 python 里面用
skylark 是 babel 用的语言, 是 python 的 subset. 如果只是写逻辑的话可以试一试, 做个 benchmark 看一看
但话又说回来,动态语言如果不认真写 unittest, 维护起来就很容易出问题了,因此也有人说 “动态一时爽,重构火葬场”,就是这个意思。
实际上的性能问题:DB 存取和外部 IO 一塌糊涂
1. RPC 这个是完完全全的方案,而且还涉及到旧代码屎山
2. 编译 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. 可能还需要做一个桥 链接两个项目的接口。
不要为了用 Go 而用,用了 Go 基本就不太需要其他语言了,
你去看看几个排名靠前的 Go 开源项目,基本都是纯 Go,
感觉你的思路没有理清楚,要么纯 Python,要么纯 Go 。
如果有个别库只有 Python 有,我会开一个 Python 的微服务,用 gprc 调用它。