Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 为什么数据库文件是yml而不是rb_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 为什么数据库文件是yml而不是rb

Ruby on rails 为什么数据库文件是yml而不是rb,ruby-on-rails,ruby,Ruby On Rails,Ruby,在最近的一次采访中,我被问到为什么我们要将数据库作为yml文件而不是rb文件。起初,我对这个问题感到困惑,我试图给出一个答案,我们可以序列化和反序列化yml文件,但答案并不令人满意。因此,有人能分享他对它的看法吗?简言之,数据和代码应该分开,以保持理智。从功能的角度来看,数据在代码中扮演着不同的角色。这就是为什么我们将数据存储在数据库中,或者将它们序列化为JSON和YAML 来自YAML的配置是反序列化的。它是人类可读的,不必担心无关的语言问题,如果您想从旧的代码库迁移,当您有文本格式的配置时,

在最近的一次采访中,我被问到为什么我们要将数据库作为yml文件而不是rb文件。起初,我对这个问题感到困惑,我试图给出一个答案,我们可以序列化和反序列化yml文件,但答案并不令人满意。因此,有人能分享他对它的看法吗?

简言之,数据和代码应该分开,以保持理智。从功能的角度来看,数据在代码中扮演着不同的角色。这就是为什么我们将数据存储在数据库中,或者将它们序列化为JSON和YAML

来自YAML的配置是反序列化的。它是人类可读的,不必担心无关的语言问题,如果您想从旧的代码库迁移,当您有文本格式的配置时,它会更容易。由于可读性,YAML在这里优于JSON


Rails基于基于逻辑功能分离层的概念构建。MVC也是出于同样的原因而设计的。如果需要的话,您将在三个auth层中有一个单独的auth层。

简而言之,数据和代码应该分开以保持完整性。从功能的角度来看,数据在代码中扮演着不同的角色。这就是为什么我们将数据存储在数据库中,或者将它们序列化为JSON和YAML

来自YAML的配置是反序列化的。它是人类可读的,不必担心无关的语言问题,如果您想从旧的代码库迁移,当您有文本格式的配置时,它会更容易。由于可读性,YAML在这里优于JSON

Rails基于基于逻辑功能分离层的概念构建。MVC也是出于同样的原因而设计的。如果需要的话,您将拥有三个独立的auth层。

正如我所注意到的

  • YAML是JSON的超集。YAML在视觉上更易于查看和阅读
  • 我们可以使用“锚”来引用YAML中的其他数据,以便它能够处理关系数据
  • YAML在嵌入其他序列化格式(如JSON)方面更加健壮
  • 它将减少不必要的对象创建,如在
    .rb
    文件中完成
  • 因此,存储配置时,只有要存储的键值对由yaml文件备份。

    正如我注意到的

  • YAML是JSON的超集。YAML在视觉上更易于查看和阅读
  • 我们可以使用“锚”来引用YAML中的其他数据,以便它能够处理关系数据
  • YAML在嵌入其他序列化格式(如JSON)方面更加健壮
  • 它将减少不必要的对象创建,如在
    .rb
    文件中完成

  • 因此,在仅存储键值对的存储配置中,由yaml文件备份。

    从个人角度1。YAML中的配置将功能2上的代码和配置分开。YAML使用复杂的配置更容易阅读,而不必担心无关的代码部分,因为它专注于存储配置信息。反过来也是一样:想想,为什么需要序列化数据而不是将它们写入代码?从逻辑上讲,它们应该是分开的,并且序列化的纯文本更易于管理(其中没有多余的无关代码)。YAML中的配置将功能2上的代码和配置分开。YAML使用复杂的配置更容易阅读,而不必担心无关的代码部分,因为它专注于存储配置信息。反过来也是一样:想想,为什么需要序列化数据而不是将它们写入代码?从逻辑上讲,它们应该是分离的,并且序列化的纯文本更易于管理(其中没有多余的无关代码)。这里最常见的答案似乎是分离责任,但您提到的MVC框架在不强制另一种语言的情况下正是这样做的。这里最常见的答案似乎是分离责任,但是你提到的MVC框架在不强制使用另一种语言的情况下确实做到了这一点。你能详细介绍一下锚吗?@AniketShivamTiwari是的,请参考你能详细介绍一下锚吗?@AniketShivamTiwari是的,请参考