前端和后端之间的DRY原理

问题描述 投票:3回答:2

在我的编程实践中,我经常遇到客户端脚本和服务器端脚本之间的数据重复问题。在这种情况下,我们可以讨论客户端的JavaScript和服务器端的PHP或C#(ASP.NET)。

比方说,我有一个JavaScript代码,用于定义具有特定数据的常量(或数组或对象)。例如。它可以是引用应用程序业务规则的数据。此数据也应在后端使用,我必须在适当的脚本中定义此常量。

并且在此刻,当我们定义第二个变量时,我们违反了“不要重复自己”的原则。现在,当我在前端更改此常量时,也必须在后端更改此常量。

并且以这种方式耦合的数量会增长,将来我的代码将很难维护。

因此,我的问题是下一个问题:在客户端与服务器之间的通信中,是否有任何方法或良好实践来遵循DRY原则?例如,将此类数据保留在.settings文件中并同时在前端和后端读取它们是一种好习惯吗?

oop dry
2个回答
0
投票

DRY主体适用于逻辑上的重复,并不一定意味着在前端和后端之间不使用相同的变量。如果适用这种情况,则使用视图模型和DTO将破坏DRY主体。您需要将对UI的关注与其他层分开。您的UI可能会更改,但是您的业务逻辑不应与重复的代码分散在一起,而这可能会使可维护性成为噩梦。看一下自动映射器,了解对象映射的概念,这可能会消除您的困惑。


0
投票

基于维基百科,DRY表示为

每条知识都必须具有单一,明确, 系统内的权威表示]

因此,您在不同层中重复的知识违反了DRY。

在许多地方定义了这样的常数以后可能会是一个很大的问题。更糟糕的是,您想配置这些常量。幸运的是,您可以通过从服务器设置javascript变量来解决此问题。

例如在php中:

var constants = <?php echo JSONConstants($constants); ?>;
console.log(constants.companyName);

[您只需要确保在加载javascript中的任何业务逻辑脚本之前就已执行了脚本。此外,您需要注意将哪些常量(并以某种不错的结构构建),这些常量将传递给javascript,以便于开发。

© www.soinside.com 2019 - 2024. All rights reserved.