区分任何常规代码和样板代码背后的动机是什么?

时间:2015-12-08 21:54:52

标签: c# boilerplate

根据在线提供的信息,不难理解什么是样板代码。我不明白为什么有必要将重复的代码部分命名为样板代码?如果有人为了它而创造了“样板代码”一词,我会感到惊讶。必须有一些我现在无法理解的原因。

是否意识到一段代码是样板文件以任何方式帮助开发人员?在编写样板代码时,开发人员需要注意什么?

examples of boilerplate code that I have seen中,似乎这段代码是不可避免的。如果代码是不可避免的并且由于仅仅是编码的事实而存在,那么强调它的动机是什么?

PS:C#中的示例答案非常有用。

1 个答案:

答案 0 :(得分:1)

在一行中,动机是可重用性和自动化

示例:在ORM中,数据库表中的属性将成为类的字段。因此,不必手动编写getter和setter(这将是样板代码),可以编写 代码来生成样板代码 并自动执行此过程。现在,一段时间后,表格被添加/减去列,然后将自动添加/删除相应的getter和setter。

更长版本,分别处理每个点:

  

我不明白为什么有必要将重复的代码部分命名为样板代码?

首先要明白这个"重复"代码部分并不意味着相同。这里重复将意味着可以由某些逻辑生成的代码类型。上面已经提到了一个最好的例子 - 类的每个字段的getter和setter,其中类映射到数据库表。

在了解之后,区分常规代码和样板代码的需求变得显而易见 - 重用以及自动生成样板代码。

  

是否意识到一段代码是样板文件以任何方式帮助开发人员?

是的,当然。开发人员可以选择自动化它。一个很好的例子是Template Metaprogramming。不要害怕这个术语 - 它涉及自动生成源代码。在ORM项目中很常见。

  

编写样板代码时,开发人员需要注意什么?

是。不要写它。而是编写代码以尽可能自动生成它。

  

在我看过的样板代码示例中,似乎这段代码是不可避免的。如果代码是不可避免的并且由于仅仅是编码的事实而存在,那么强调它的背后的动机是什么?

这个问题是因为你误解了样板代码到底是什么。现在,我希望,你的理解已经有所改善,所以你可能会猜到这个问题的答案就是这个答案的第一行(又名可重用性和自动化)。

另外,我建议你阅读@JerryJeremiah和@Marged关于你的问题的评论。通过更好地理解解决方案/项目/类中的所有代码段可以作为样板代码进行分解,您会发现它们的注释现在非常有用。