问题标签 [dry]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
7694 浏览

ruby-on-rails - 如何编写跨模型、控制器和视图的 Rails mixin

为了减少我的小 Rails 应用程序中的代码重复,我一直致力于将我的模型之间的通用代码放入它自己的单独模块中,到目前为止一切都很好。

模型的东西相当简单,我只需要在开始时包含模块,例如:

这工作正常,但是现在,我将有一些控制器和视图代码,这些代码在这些模型之间也将是通用的,到目前为止,我有这个用于我的可发送内容:

基本上我打算只为控制器和视图做一个包含 Sendable::Controller 和 Sendable::View (或等效的),但是,有没有更干净的方法来做到这一点?我正在寻找一种在我的模型、控制器和视图之间拥有一堆公共代码的简洁方法。

编辑:澄清一下,这只能在 2 或 3 个模型之间共享。

0 投票
5 回答
330 浏览

dry - 如何不在项目和/或语言中重复自己

我正在使用不同的编程语言从事几个不同但相关的项目。其中一些项目需要解析其他项目编写的文件名,并且需要某种文件名模式。

这种模式现在在多个地方和多种语言中进行了硬编码,使其成为维护炸弹。在给定项目中只定义一次这种模式是相当容易的,但是为所有项目和所有使用的语言一次性定义它的技术是什么?

0 投票
11 回答
24570 浏览

unit-testing - 在单元测试中重复代码是否更容易容忍?

前段时间我破坏了几个单元测试,当我经历并重构它们以使它们更加干燥时——每个测试的意图不再清晰。似乎测试的可读性和可维护性之间存在权衡。如果我在单元测试中留下重复的代码,它们更具可读性,但是如果我更改SUT,我将不得不追踪并更改重复代码的每个副本。

你同意这种权衡存在吗?如果是这样,你更喜欢你的测试是可读的还是可维护的?

0 投票
8 回答
4536 浏览

asp.net - DRY 原则在 ASP.NET MVC 中实际上是什么样的?

我一直听说 DRY 原则以及它在 ASP.NET MVC 中的重要性,但是当我在 Google 上进行研究时,我似乎不太了解它是如何应用于 MVC 的。

从我读到的内容来看,它并不是我认为的复制和粘贴代码的味道,但它不仅如此。

你们中的任何人都可以深入了解我如何在我的 ASP.NET MVC 应用程序中使用 DRY 原则吗?

0 投票
4 回答
119965 浏览

c - 如何从 C 宏的值生成 char 字符串?

例如,如何避免两次写入'func_name'?

我想遵循单点真理规则。

C预处理器版本:

0 投票
6 回答
2306 浏览

javascript - 在 JavaScript 中为全局变量列表赋值

嘿,现在我正在使用 jQuery,并且我有一些全局变量来保存一些预加载的 ajax 内容(预加载以使页面变得又好又快):

如您所见,我们严重违反了 DRY 原则,但是……我真的没有办法解决它……有什么想法吗?

也许是一个数组?

0 投票
1 回答
269 浏览

mysql - 如何保持 ActiveRecord 关联 DRY?

我在尝试让 AR 查找器在我的应用程序中保持干燥时遇到问题。我创建了一个博客应用程序,当用户第一次查看它时,它会获取博客的所有相关页面、帖子、链接、标签和类别。博客控制器的示例显示操作如下所示:

正如您所看到的,它不是很干燥,因为在控制器中还有其他操作会调用相同的实例变量,例如 @tags 等。

我怎样才能使这个更干燥?我尝试将它移动到博客模型中,但我仍然需要在控制器中调用各种实例变量,例如 @tags 等。

有没有办法在第一次调用博客时存储所有这些变量并在控制器和操作中重用它们?

谢谢你的任何建议。我正在使用 Rails 2.1

0 投票
5 回答
592 浏览

language-agnostic - 如何在语言之间共享配置信息或业务规则

我正在寻找在不同地方使用相同数据而不重复自己的最佳实践——这可能包括配置或业务规则。

示例 1. 您希望在客户端使用 javascript 进行验证的数据验证规则,但您希望通过在服务器上进行验证来确保。

示例 2. 您的 Web 服务器和您的 cronjobs 使用相同的密码、用户名的数据库访问。

易于处理和人类可读的解决方案将是一个优势。

0 投票
8 回答
769 浏览

.net - 如何在 C#.NET 中保持存储过程 DRY?

我们对数据库的每个查询都使用存储过程。这似乎令人难以置信的未干燥

  1. 设计桌子
  2. 为该表设计 CRUD 操作 SP
  3. 设计代码(最好是一个类)来填充参数并执行 CRUD SP

如果我们添加单个列或更改数据类型,我们必须在 .NET 的一个类中编辑表、少量 SP 和少量函数。

有哪些减少这种重复的技巧?

更新:

结合 Vinko 的想法,我发现了这个。这是我为需要它的人提出的一些代码(在 C# 中):

0 投票
3 回答
2887 浏览

flash - 为什么 Flash CS3 要求您在为 actionscript (as3) 导出时指定基类?

在库中,右键单击您为其编写了 ActionScript 类的影片剪辑,然后选择“链接...”。请注意,“基类”字段不为空(不能为空)。可能是flash.display.MovieClip,但也可能是其他东西,这取决于您的类继承自什么。只有在为 ActionScript 3 发布时才需要此基类字段。

那么谁能告诉我为什么 Flash CS3 坚持让我在 ActionScript 文件Linkage 对话框中都提供基类?如果两个位置之间的基类不同,它仍然可以毫无错误地发布,并且链接对话框似乎被忽略(只要它有效)。

基类字段有什么意义!?