在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

如何对SVC进行超参数调优?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

如何在初始训练后向模型添加训练数据?

我想在我的scikit-learn模型已经训练完成后再…

使用Google Cloud Function并行运行带有不同用户参数的相同训练作业

我正在寻找一种方法来并行运行带有不同用户参数的相同训练…

加载Keras模型,TypeError: ‘module’ object is not callable

我已经在StackOverflow上搜索并阅读了文档,…

在计算KNN填补方法中特定列中NaN值的”距离平均值”时

当我从头开始实现KNN填补方法来处理缺失数据时,我遇到…

使用巨大的S3 CSV文件或直接从预处理的关系型或NoSQL数据库获取数据的机器学习训练/测试工作

已关闭。此问题需要更多细节或更清晰的说明。目前不接受回…

发表回复

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