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

django-models - 在 Django 中干燥独特的对象

我想确保一个对象是唯一的,如果不是,当用户尝试保存它(例如通过管理员)时抛出错误?唯一,我的意思是对象的某些属性可能与其他对象的属性值相同,但它们不能都与另一个对象的值相同。

如果我没记错的话,我可以这样做:

但是每次我重构模型时(例如添加一个新字段,或更改现有字段的名称),我还必须编辑分配给unique_together的括号中的字段列表。使用简单的模型没关系,但如果使用大量模型,重构过程中就会变得非常麻烦。

如何避免在unique_together括号中重复输入字段名称列表?有没有办法将模型的字段列表传递给一个变量并将该变量分配给unique_together呢?

0 投票
6 回答
9679 浏览

ruby-on-rails - 在 Rails 中干燥视图 (number_to_currency)

我的代码类似于:

number_to_currency(line_item.price, :unit => "£")

在各种模型中乱扔我的观点。由于我的应用程序仅以英镑(£)交易,我是否应该将其移至我的每个模型中,以便line_item.price返回应为的字符串(即number_to_currency(line_item.price, :unit => "£")并且line_item.price是相同的。我认为要做到这一点,我应该:

但这不起作用。如果price模型中已经定义了,那么 Rails 会报告“堆栈级别太深”,当我更改def price为时def amount,它会抱怨number_to_currency未定义?

0 投票
4 回答
3683 浏览

ruby - 在 ruby​​ 中对数组进行排序的最简单代码?

我通常会做类似的事情

我应该怎么把它弄干?

0 投票
3 回答
370 浏览

oop - SOLID 原则集是否缺少额外的“D”?

虽然不是纯粹的OOD原则——在考虑SOLID原则时是否也应该包括DRY?如果不是 - 为什么不呢?

0 投票
1 回答
244 浏览

wpf - 在 WPF 中重用对话框的最佳方法?

我有一个带有几个用户控件和一些其他标准控件的 WPF 对话框。通过特定的调整,我们对这个对话框有很多用途。现在这个对话框管理所有的逻辑来调整自己。

我忍不住想,一定有更好的办法。我希望我能做这样的事情:

原始对话框

略有不同的对话框:

有没有办法做我正在尝试的事情,甚至是我没有考虑的更好的方法?

0 投票
2 回答
3903 浏览

ruby-on-rails - 用于创建和更新的 DRY 表单部分

我有一个 _form.html.erb 表单部分,它有助于干掉我的代码,但我需要表单具有不同的标签,具体取决于我是创建新用户还是更新现有用户。

这是我的部分表格。我不需要在更新期间显示 eula 复选框,我还需要在更新时将“创建我的帐户”提交按钮文本替换为更合适的内容。

以下哪一项是最好的方法?

  • 有 2 个单独的表单部分,一个用于创建,一个用于更新
  • 有 1 个表单,但有基于操作的条件标签(这可能吗?)
  • 将公共部分分解为部分并在创建和更新表单中重用

如果我要执行条件形式,我将如何检查正在执行的操作?

0 投票
3 回答
121 浏览

c# - Asp.net - 重构操作

我有这个“问题”,我在我的许多控制器操作中都有这样的代码:

您将如何将其重构为更干净的解决方案?我想干!

0 投票
4 回答
6459 浏览

c++ - 减少 operator= 和复制构造函数之间的代码重复

我有一个需要非默认复制构造函数和赋值运算符的类(它包含指针列表)。有没有什么通用的方法可以减少复制构造函数和赋值运算符之间的代码重复?

0 投票
4 回答
2092 浏览

asp.net-mvc - 从通用模板应用程序“继承” ASP.NET MVC 站点?(多租户)

我们正在构建大约 10 个 ASP.NET MVC 站点,这些站点具有一组通用功能(以及相应的 URL、路由、控制器、操作和视图)。这些站点还将共享一组基础域对象(例如用户、公司)和这些对象的基础属性(例如名称、地址等)。

但每个站点也将从基础高度定制和扩展。例如,我们的大型上市公司网站将在公司域对象上具有“子公司”和“股票代码”字段,而我们的初创公司网站将具有“风险投资公司”和“资金”属性。外观和感觉也会有很大的不同,尽管我们试图保持 HTML 尽可能一致(为额外的域对象属性取模额外的表单字段等)。我们还将谨慎地覆盖图像,例如,我们可以跨站点重复使用相同的按钮图形。

无论如何,我们正在尝试找出如何最好地分解和构建事物,以便我们可以重用尽可能多的代码和尽可能多的测试,而不会限制我们添加每个应用程序属性和改变应用程序之间 UI 的自由。

我熟悉如何处理像您在 StackOverflow/SuperUser/ServerFault(或 MSDN/TechNet 中)中找到的有限定制多租户,其中 UI 略有不同,数据模型或多或少完全相同的。但是当模型和 UI 非常不同(但继承自一个共同的基础)时,我不太确定如何继续。

我不太担心操作问题,因为我们可能会在单独的应用程序域中运行每个站点并将它们托管在单独的数据库中。我更担心降低长期代码维护成本,提高敏捷性(例如,在不破坏派生应用程序的情况下轻松地向基础添加新功能),以及在我们构建第二个时实现短期开发/测试成本节约,第三,第四等网站。

我正在寻找高级指导和建议,以及如何使用现代 ASP.NET MVC 实践使该指导成为现实的具体建议。

我意识到这是一个非常笼统的问题,但对于初学者来说,我正在寻找高级指导以及如何使用 ASP.NET MVC 应用该指导的具体技巧,包括以下内容:

  • 建议在 Visual Studio 项目中拆分基础/派生的位置
  • 避免分叉的源代码控制技巧
  • 数据库模式提示(FWIW,我们的数据库都很小——每张表不到 10K 行,因此开发/测试成本比数据库性能更成问题)
  • 关于重用控制器/视图/等的提示。对应于“基本”模型属性,尤其是重新使用 UI 来处理“新客户”表单之类的内容,这些表单将混合基本属性和派生属性。

有人对如何构建这样的多租户应用程序有很好的建议吗?

0 投票
1 回答
274 浏览

ruby-on-rails - 为 DRYness 重构控制器代码

在我的控制器的创建和更新操作中,我有很多这样的语句:

我想知道我是否可以重构这些以使我的代码更干。我敏锐地意识到它们可能属于模型(re:胖模型和瘦控制器),但不知道该怎么做。有人可以启发我吗?

在此先感谢您的时间,

加夫