在Heroku上使用Rails调用Python脚本进行各种操作是否是个好主意?

在Heroku上使用Rails但通过Python脚本进行各种操作(包括机器学习)的优缺点是什么?我喜欢Rails,但如果Django长期来看更好,我愿意切换到Django。

我希望通过将问题定位为“优缺点”,这更符合Stack Overflow的规范…如果不是这样,我很抱歉。不过我真的很希望得到帮助。


回答:

我喜欢Rails,但是…

你喜欢Rails的什么地方?Rails很棒,但它提供了Django没有的什么功能?在一个项目中使用多种语言是很常见的,多种语言会被编译成相同的代码。有像’rupy’这样的库可以简化这一过程,如果你比Django更熟悉Rails,那么考虑这种方法是有用例的。一般来说会有一些问题,主要问题是架构上什么是最好的选择。

关于可能的缺点,让我们尝试探索在构建现实世界示例时可能出现的任何问题:

def init_py_script  parsed_output = JSON.parse(`cat #{file.path} | python3 lib/some_python_script.py`)end

为什么作者选择这样做?在我们的模型中,假设他们将Python代码的工作外包了,因为他们不知道如何用Ruby完成这项任务。也许他们没有时间学习如何用Ruby做这件事,只能找到一个能完成这项工作的Python开发者。

这没问题,但这里有一些问题。[注意这些问题可能/可能不适用于你]:

  1. 用户需要在他们的服务器上安装不同的依赖项来运行两种语言,这需要时间来理解和调试。
  2. 如果外包的开发者将代码上传到另一个存储库;大多数部署脚本将无法部署子模块代码,需要手动干预。
  3. 在服务器上维护多种语言并不容易,当升级包时,可能会出现问题,比如需要安装多个’libssl-dev’包,这会增加更多的持续工作量。
  4. Ruby和Rails传统上由TDD驱动。如果你仅依赖单元测试,不会有问题。如果你喜欢加入集成测试,获得完整覆盖将更加困难。
  5. 在编写代码时,作者应该考虑到读者的需求,并减少未来读者和开发者理解应用程序功能的认知负担。如果你包含更多语言,将限制未来能够参与整个项目的开发者数量,因为他们需要理解两种语言。如果他们只在一个小组件上工作,这可能不是问题。

TLDR:对于小项目来说是可以的。使用多种语言会导致基础设施问题,可能在未来引起版本冲突。升级可能会更加困难。如果你有好的文档和测试,代码的开发应该不会受到影响。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注