Grails “什么是”呢;“按惯例编码”;?

Grails “什么是”呢;“按惯例编码”;?,grails,groovy,Grails,Groovy,我一直在关注Grails上的Groovy,注意到底部有一行代码: Grails旨在将“按约定编码”范式引入Groovy 什么是按约定编码?这里有很多约定: 如何命名HTML元素,以便它们可以作为HTTP请求的参数轻松访问 如何将对象属性与数据库中的表名和列名关联 如何将项目安排到目录/包中 这是当你发现自己以一种特定的方式解决了一个常见的问题时所做的事情。你会注意到相似之处,并将它们编成某种自动化方案。这意味着,如果你坚持使用任何基于约定的框架定义的某些编码约定,你将免费获得许多功能。换句话说,

我一直在关注Grails上的Groovy,注意到底部有一行代码:

Grails旨在将“按约定编码”范式引入Groovy


什么是按约定编码?

这里有很多约定:

  • 如何命名HTML元素,以便它们可以作为HTTP请求的参数轻松访问
  • 如何将对象属性与数据库中的表名和列名关联
  • 如何将项目安排到目录/包中
    这是当你发现自己以一种特定的方式解决了一个常见的问题时所做的事情。你会注意到相似之处,并将它们编成某种自动化方案。

    这意味着,如果你坚持使用任何基于约定的框架定义的某些编码约定,你将免费获得许多功能。换句话说,如果您按照框架的期望构造应用程序,则可以节省大量工作

    查找按约定编码的优点和缺点是个好主意

    约定优于配置(又称按约定编码)是一种软件设计范式,旨在减少开发人员需要做出的决策数量,获得简单性,但不一定失去灵活性

    这个短语本质上意味着开发人员只需要指定应用程序的非常规方面。例如,如果模型中有一个类Sale,则默认情况下数据库中相应的表称为sales。只有当一个人偏离了这个惯例,比如称这个表为“products\u selled”,他才需要编写关于这些名称的代码

    当您使用的工具实现的约定与您期望的行为匹配时,您就可以享受这些好处,而无需编写配置文件。当您想要的行为偏离了实现的约定时,您就可以配置您想要的行为

    从。

    在Grails的上下文中,“按约定编码”意味着大量(繁琐且重复的)显式代码和/或配置被简单的命名和目录结构约定所取代。例如:

    • 在grails app/controllers目录中,任何名称以Controller结尾的类都会自动成为Spring控制器,其中定义的闭包将绑定到URL——您不必像使用纯Spring时那样在XML文件中配置它
    • taglibs(grails app/taglib目录)也是如此——不再需要繁琐的TLD文件了
    • grails app/Domain中的域类可能具有最多的“约定魔法”,自动映射到自动生成的DB模式,DB表和列名按照约定与域属性名相同

    按约定编码与按配置编码: 你对东西有特定的放置或命名约定,这样你就不必明确地告诉程序东西的位置或名称。
    例如,在ASP.NETMVC中,对于视图的存储位置和调用方式有一个约定。这意味着,当代码指示服务器返回视图时,运行时将在特定文件夹中查找具有特定命名结构的视图。请参阅中的第20页以了解更多信息


    另一个例子是方法的命名约定。例如,在事件驱动语言中,您可以选择显式声明哪个方法处理哪些事件,或者您可以依赖命名约定,例如…\u OnOpen或…OnClick,然后依赖运行时找出正确的方法来调用给定事件。

    请参阅。设计工具或框架的概念是将最常见的配置选项作为默认设置,因此对于绝大多数用户来说,不需要进行任何配置。

    今天的维基百科文章不是一个很好的例子。这里还有其他的答案需要考虑。维基百科今天的文章不是一个很好的例子。这里应该考虑其他答案。你的答案太抽象,没有例子。它只是重申了其他人所说的话。