问题标签 [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 投票
2 回答
2770 浏览

ruby-on-rails - 在 Rails 中使用 partials 的最佳实践

为了与 DRY 原则保持一致,我尝试在重复特定模式超过一次或两次时立即使用分音。结果,我的一些观点由十个或更多不同的部分组成。我担心这可能会对整体性能产生负面影响。一些编程书籍将部分的使用与方法的使用进行了比较。那么我应该使用相同的理由来确定何时使用它们吗?

关于 Rails 项目中部分的大小和数量的最佳实践是什么?

0 投票
2 回答
1769 浏览

c#-3.0 - 在 C# 中的接口上具有扩展方法的伪多重继承?

类似的问题,但不完全相同

我在想,使用与接口相同命名空间中的扩展方法,您可以获得与多重继承类似的效果,因为您不需要在 10 个不同的类中以相同的方式实现相同接口的重复代码。

这样做有什么缺点?我认为优点很明显,缺点通常会在以后回来咬你。

我看到的一个缺点是扩展方法不能是虚拟的,因此您需要确保您确实希望它们对每个实例都以相同的方式实现。

0 投票
6 回答
6858 浏览

php - 当 if-then-else 太多导致代码不可读时,如何坚持 Don't-Repeat-Yourself (DRY) 原则?

我想坚持 Don't-Repeat-Yourself 原则,但有时当我将 PHP 与 HTML 和 CSS 一起编写时,如果我在不同的情况下重复使用相同的代码,我的代码很快就会有很多 if- then-else 代码不容易维护。

如果使用Smarty这个模板引擎,这可能是一个更大的问题,因为大多数代码编辑器不会匹配{if} {else} {/if} 所以程序员需要直观地寻找匹配的标签,并不容易当有 3 或 4 层嵌套 {if} {else} {/if} 时。

在这种情况下,有没有办法坚持 DRY,但仍然有良好的可维护代码?

0 投票
2 回答
4042 浏览

javascript - 如何用 JS 悄悄地更新页面标题(在 Rails 中)

每当我使用 Ajax 将博客文章加载到页面上时,我都会将页面设置<title>为“我的博客 - BLOGPOST_TITLE”。

当然,“我的博客 -”也出现在我的应用程序布局中。

问题是,我如何告诉我的 Javascript 关于字符串“My Blog -”而不在我的代码中复制它?

0 投票
1 回答
2878 浏览

c# - IQueryable.Where() 的 Linq 动态参数

作为 C# 开发人员,我已进入第 8 天。

对于我正在处理的项目中的许多 DomainModel,我需要能够根据用户在审阅/搜索表单中提交的内容过滤表中的所有记录。

目前2美分的短途旅行是:

表单提交给 FooController/review。

Review 然后将所有键/值对从 Params['filter'] 抓取到一个字典中,并将其传递给一个名为 FooFinder.ByProperties 的助手类,它看起来非常类似于:

}

我想尽可能减少重复代码并尝试类似

但由于很多原因,这显然行不通……我想要完成的目标仍然存在。我真的很想通过使用某种动态帮助程序/实用程序来简化代码并加快过滤过程。

我尝试的其他想法是使用反射和那个工作的孩子进行直接比较,但是如何检查诸如 CreatedDatime 属性之类的东西,我希望所有记录都大于“r => CreatedDatetime > CreatedFrom”。

如果这些都没有意义,请发表评论,我会尽力解决任何问题。

0 投票
1 回答
5632 浏览

grails - RESTful grails 应用程序:DRYing up UrlMapping

假设我们有一个公开多个资源的 grails Web 应用程序。

  • 标签
  • 网址
  • 用户

该应用程序具有用户与之交互的经典网络界面和一些管理。我们希望通过 RESTful API 将应用程序中的资源公开给客户端,并且我们不希望应用程序的这一部分弄乱我们已经拥有的控制器和代码。所以我们想出了以下内容:

如果 Web 界面提供host/app_path/url/[list|show|create],我们希望 REST API 位于/host/app_path/rest/url.

所以我们最终得到了以下 UrlMappings 文件:

问题是,这并不是这里最干燥的东西。随着我们添加更多资源(例如标签),情况变得更糟。他们将转换为另外三个非常相似的代码块......

非crud功能将是诸如使用特定标准搜索之类的东西......

我们尝试使用循环生成映射闭包,但没有成功。我们在这里完全走错了吗?

0 投票
6 回答
1460 浏览

c++ - 防御性编程是否违反 DRY 原则?

免责声明:我是一个正在学习编程的外行。从来没有参与过一个项目,也没有写过超过 500 行的东西。

我的问题是:防御性编程是否违反了不要重复自己的原则?假设我对防御性编程的定义是正确的(让调用函数验证输入而不是相反),那不会对您的代码有害吗?

例如,这很糟糕吗:

与此相比:

同样,作为外行,我不知道就性能而言,有多少简单的逻辑语句对您不利,但防御性编程肯定对程序或灵魂不利。

0 投票
3 回答
1442 浏览

c# - 在 ASP.Net MVC 中保持 DRY

目前,我的第一个 ASP.Net MVC 应用程序大约有两个半星期的时间,到目前为止,我很喜欢它。

这个当前项目是 ASP.Net WebForms 项目的一个端口,我正在努力维护功能。一切顺利。

然而,我发现自己在重复……我自己。

例如,在我的 BaseController 类、BaseViewPage、BaseViewUserControl 和 BaseViewMasterPage 中,我有以下代码:

现在,这不是漂亮的代码。我想稍微修一下,但截至目前,我在四个地方修了它。事实上,它是几个错误的来源,这意味着要再次在所有四个地方修复它。

你会如何建议我保持这个系统干燥? 请注意,这两个对象都必须保留在会话中,原因不止两个。

0 投票
4 回答
771 浏览

php - 如何重构这个条件以避免重复?

这是可以按日期过滤的事件页面的一部分(使用预定义的日期范围或日期选择器)。

我想避免foreach ($days as $day_number)...为每个条件重复整个 etc. 循环。

我想整个循环可以移动到一个函数中,但我不确定如何实现它。

0 投票
5 回答
480 浏览

objective-c - 如何使以下代码变干?

如何使我的以下代码“干燥”(不要重复自己)

感谢您的提示。我只是想知道你们的想法,因为这个小片段在我的代码中看起来很可怕。