问题标签 [boilerplate]

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 投票
4 回答
261 浏览

c# - 在显式实现接口时,是否有更好的方法在 C# 中编写这种重复的事件声明代码?

我有很多类似下面的代码,其中我显式地实现了接口所需的一些事件。

您可以看到其中大部分是样板文件。在 Ruby 中,我可以做这样的事情:

在 C# 中删除此样板文件是否有类似的更短的方法?


更新:我在示例中留下了一个非常重要的部分:即实现的事件是接口的一部分,我想显式地实现它。很抱歉之前没有提到这一点!

0 投票
2 回答
4684 浏览

java - Project Lombok 适合大型 java 项目吗?

有人在使用Project Lombok进行大规模生产系统吗?它如何影响您的编译过程(即它是否进行两次编译,减慢速度,使其更脆弱)?

0 投票
2 回答
159 浏览

java - 在数据模型之间转换时帮助消除样板的最佳方法

我正在做一个项目,其中有两组 XML 模式生成的对象,它们是两组完全不同的类,具有相似的结构。两组之间的转换包含大量的样板冗余编码(例如转换具有多个嵌套层集合的元素)。

我对可能能够采用一组声明性转换规则并生成必要代码的任何基于反射或字节码生成的工具感兴趣。

这是针对 Java 的。


仅供参考:我知道 commons-beanutils、copyProperties 字段名称、方法名称和包含的类类型都是不同的,但在最低级别,字符串、枚举、整数和日期都可以简单地转换。bean 模式副本将不起作用。

0 投票
4 回答
264 浏览

.net - 有什么方法可以减少 IDisposable 的样板代码量?

我的项目有许多读者和作家类。我开始实现 IDisposable,但我相信它为我的类添加了许多样板代码。对于每个类,我需要实现:

  • 一个析构函数。
  • 一个 Dispose() 方法。
  • 一个 Dispose(bool disposing) 方法。
  • “布尔处理”字段。
  • 检查对象是否已在每个公共方法上释放。
  • 文档(因为我启用了文档标志,否则编译器会发出警告)。

我的问题:

是否值得实施 IDisposable?以前,我使用我的课程,例如:

使用 IDisposable,它并没有太大改善:

我可以只实现 Dispose() 方法吗?

我的班级不使用非托管资源,因此 Dispose(false) 什么也不做。由于我正在清理的也是 IDisposable,因此在处理对象后调用我的方法应该抛出 ObjectDisposedException,因为我正在使用已经处理的对象。

如果您建议实施完整的 IDisposable 模式,有没有办法减少样板代码?

编辑:由于一些答案建议密封课程,我可以确认,事实上,密封课程没有任何问题。

0 投票
1 回答
392 浏览

haskell - 状态单子:用一种模式换另一种模式?

所以我正在用 Haskell 编写一个游戏,我将玩家的回合表达为一系列与不同回合阶段相关的状态改变函数。最初,这看起来像:

国家单一性的主要候选人,对吧?这导致更优雅:

但是,似乎我必须更改phase1, phase2, et al 以从样板“状态获取”步骤开始:

我希望有一种方法可以将其抽象出来,这样我就可以避免调用者和被调用者的样板文件。我太新了,不知道这种方式是什么(这是我的第一个真正的 Haskell 项目)。有什么建议吗?

0 投票
1 回答
593 浏览

metaprogramming - 使用变形代码减少样板文件

有没有人见过变质代码——即生成和运行指令的代码(包括 IL 和 Java 字节码,以及本机代码)——用于减少样板代码?

无论应用程序或语言如何,通常都有一些数据库代码来从数据库中获取行并返回对象列表。当然,根据您的数据库连接器,有无数种方法可以做到这一点。您最终可能会按索引访问行的单元格(很尴尬,因为将“SELECT Name, Age”更改为“SELECT Age, Name”会破坏您的代码,并且索引会混淆含义),或者使用 myObject.Age = resultRow. getValue("Age") (尴尬,因为这涉及简单地遍历每个字段以根据列设置其数据)。

与数据库主题保持一致,LINQ to SQL 非常棒。但是,定义数据模型就不那么棒了,尤其是当您的数据库有太多表以致 SSMS 无法在对象浏览器中列出所有这些表时。另外,我不喜欢的不是存储过程的编写或 SQL 的参与;只是对象与数据库的连接。

我实习的公司的某个人从我们的 SqlCommand 类(继承自 System 类)中编写了一个非常棒的方法,该方法使用 .NET 反射和 System.Reflection.Emit 来生成一个设置字段的方法(装饰有包含列名称的属性)在具有空构造函数的任何模型对象上。我会考虑这种变形,因为程序的特定部分编写了新方法。

这种从数据库生成对象的模式只是一个例子。两天前我遇到的一个是对 SWT 的数据绑定支持(通过 JFace)。我用 setAddress(Address address) 和 getName() 制作了这些非常干净的模型,现在我必须用 PropertyChangeSupport 发射器污染设置器并携带一个 PropertyChangeSupport 实例(即使它只是在抽象基类中)!然后我找到了 PojoBindables,现在我感觉自己像一个 80 级的数据绑定器,只是因为我需要写的更少。

具体来说,使用本机代码和类似这样的东西或Java 代理的东西会非常好。

0 投票
1 回答
959 浏览

c# - 如何配置 AutoMapper 将所有引用类型集合转换为整数集合?

假设我有以下实体:

换句话说,Store具有ProductsEmployees和 安全性的 a Cameras。我想将其转换StoreStoreDTO

换句话说,StoreDTO将只有实体 ID。

现在,我正在使用此代码进行设置AutoMapper

如您所见,这是很多样板代码。有没有办法配置AutoMapper自动将所有引用类型集合转换为整数集合?

0 投票
2 回答
8348 浏览

html - html5 样板代表什么?

就像它的 style.css 有 body 一样{background:transparent}。那么我应该保持背景透明,所以我总是做一个好的html5网站吗?这些是默认的吗?我应该根据我的网站覆盖它们吗?

0 投票
2 回答
11925 浏览

memory - 关于 OpenCL 中 cl_mem 的问题

我一直在我的一些 OpenCL 样板代码中使用 cl_mem,但我一直在通过上下文使用它,而不是对它到底是什么有一个清晰的理解。我一直将它用作我在板上和下推的内存的一种类型,到目前为止它一直是浮动的。我尝试查看 OpenCL 文档,但 cl_mem 没有出现(是吗?)。是否有任何文档,或者它是否简单并且有人可以解释。

0 投票
15 回答
207090 浏览

terminology - What is boilerplate code?

A coworker had never heard of this, and I couldn't provide a real definition. For me, it's always been an instance of 'I-know-it-when-I-see-it'.

Bonus question, who originated the term?